From 851df2f57be91fd8e9bf1142958b8fe341aa02e0 Mon Sep 17 00:00:00 2001 From: sobhan-s Date: Wed, 27 May 2026 10:46:07 +0530 Subject: [PATCH] fix(core): fix the parent to child data passing behaviour via props --- packages/core/dist/TextIgniter.d.ts | 1 + packages/core/dist/TextIgniter.js | 15 + packages/core/dist/index.js | 2 +- packages/core/src/TextIgniter.ts | 19 + packages/example/react/src/App.tsx | 35 +- packages/react/dist/index.js | 18 +- packages/react/dist/index.js.map | 2 +- packages/react/dist/index.mjs | 18 +- packages/react/dist/index.mjs.map | 2 +- packages/react/src/components/TextIgniter.tsx | 30 +- packages/web-component/dist/index.cjs | 1841 ++++++++++++----- packages/web-component/dist/index.cjs.map | 2 +- packages/web-component/dist/index.js | 1841 ++++++++++++----- packages/web-component/dist/index.js.map | 2 +- .../src/component/TextIgniterComponent.ts | 29 +- 15 files changed, 2899 insertions(+), 958 deletions(-) diff --git a/packages/core/dist/TextIgniter.d.ts b/packages/core/dist/TextIgniter.d.ts index 8ff92af..caaca91 100644 --- a/packages/core/dist/TextIgniter.d.ts +++ b/packages/core/dist/TextIgniter.d.ts @@ -86,5 +86,6 @@ declare class TextIgniter extends EventEmitter { }) => void): void; getContent(): string; getTextContent(): string; + loadHtmlContent(html: string): void; } export { TextIgniter }; diff --git a/packages/core/dist/TextIgniter.js b/packages/core/dist/TextIgniter.js index a697e89..303913d 100644 --- a/packages/core/dist/TextIgniter.js +++ b/packages/core/dist/TextIgniter.js @@ -1436,6 +1436,21 @@ class TextIgniter extends EventEmitter { var _a; return ((_a = this.editorContainer) === null || _a === void 0 ? void 0 : _a.textContent) || ''; } + loadHtmlContent(html) { + this.undoRedoManager.saveUndoSnapshot(); + this.htmlToJsonParser = new HtmlToJsonParser(html); + const jsonOutput = this.htmlToJsonParser.parse(); + this.document.blocks = jsonOutput; + if (jsonOutput.length > 0) { + this.document.dataIds[0] = jsonOutput[0].dataId; + this.document.selectedBlockId = jsonOutput[0].dataId; + } + else { + this.document.dataIds = []; + this.document.selectedBlockId = null; + } + this.document.emit('documentChanged', this.document); + } } window.TextIgniter = TextIgniter; export { TextIgniter }; diff --git a/packages/core/dist/index.js b/packages/core/dist/index.js index 16bf18f..7561c46 100644 --- a/packages/core/dist/index.js +++ b/packages/core/dist/index.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TextIgniter={})}(this,function(t){"use strict";class e{constructor(){this.events={}}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}emit(t,e){this.events[t]&&this.events[t].forEach(t=>t(e))}}class n{constructor(t,e={}){this.text=t;const n=document.getElementById("fontFamily"),s=document.getElementById("fontSize");let i="Arial",o="16px",l=document.getElementById("fontColorPicker"),a=document.getElementById("bgColorPicker");n&&(i=n.value),s&&(o=s.value);const r=e.fontColor||(l?l.value:"#000000"),d=e.bgColor||(a?a.value:"#ffffff");this.attributes={bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,subscript:e.subscript||!1,superscript:e.superscript||!1,undo:e.undo||!1,redo:e.redo||!1,fontFamily:e.fontFamily||i,fontSize:e.fontSize||o,hyperlink:e.hyperlink||!1,fontColor:r,bgColor:d}}isBold(){return this.attributes.bold}setBold(t){this.attributes.bold=t}isItalic(){return this.attributes.italic}isUndo(){return this.attributes.undo}isRedo(){return this.attributes.redo}setItalic(t){this.attributes.italic=t}isUnderline(){return this.attributes.underline}setUnderline(t){this.attributes.underline=t}isStrikethrough(){return this.attributes.strikethrough||!1}setStrikethrough(t){this.attributes.strikethrough=t}setUndo(t){this.attributes.undo=t}setRedo(t){this.attributes.redo=t}clone(){return new n(this.text,Object.assign({},this.attributes))}hasSameAttributes(t){return this.attributes.bold===t.attributes.bold&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&(this.attributes.strikethrough||!1)===(t.attributes.strikethrough||!1)&&(this.attributes.subscript||!1)===(t.attributes.subscript||!1)&&(this.attributes.superscript||!1)===(t.attributes.superscript||!1)&&this.attributes.undo===t.attributes.undo&&this.attributes.redo===t.attributes.redo&&this.attributes.fontFamily===t.attributes.fontFamily&&this.attributes.fontSize===t.attributes.fontSize&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&this.attributes.hyperlink===t.attributes.hyperlink&&this.attributes.fontColor===t.attributes.fontColor&&this.attributes.bgColor===t.attributes.bgColor}getHyperlink(){return this.attributes.hyperlink||!1}setHyperlink(t){this.attributes.hyperlink=t}}class s extends e{get selectedBlockId(){return this._selectedBlockId}set selectedBlockId(t){if(this._selectedBlockId!==t){this._selectedBlockId=t;const e=document.querySelector('[id="editor"]'),n=document.querySelector('[data-id="'+t+'"]');if(e&&n){const t=this.getCursorOffset(e),s=this.getCursorOffset(n);this.currentOffset=t-s}else this.currentOffset=0}}constructor(){super(),this.dataIds=[],this.selectAll=!1,this._selectedBlockId=null,this.pieces=[new n("")],this.blocks=[{type:"text",dataId:"data-id-1734604240404",class:"paragraph-block",alignment:"left",pieces:[new n("​")]}],this.selectedBlockId="data-id-1734604240404",this.currentOffset=0}setEditorView(t){this.editorView=t}getPlainText(){return this.pieces.map(t=>t.text).join("")}setUndoRedoManager(t){this.undoRedoManager=t}insertAt(t,e,s,i="",o=0,l="",a="",r=!1){r||"batch"===a||this.undoRedoManager.saveUndoSnapshot(),console.log("inserted,",{start:s,text:t}),console.log("inserted,",this.blocks);let d=0,c=[],h=!1,u=0;if(""===i||null===i)return;if(u=this.blocks.findIndex(t=>t.dataId===i),-1===u||!this.blocks[u].pieces)return;d=this.currentOffset;for(let i of this.blocks[u].pieces){const o=d+i.text.length;if(!h&&s<=o){const o=s-d;o>0&&c.push(new n(i.text.slice(0,o),Object.assign({},i.attributes))),c.push(new n(t,{bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,hyperlink:e.hyperlink||!1})),ot.dataId===s),-1===r||!this.blocks[r].pieces)return;a=i;let c=-1;if(o&&t===a&&r>0&&e===t&&(c=r-1>=0&&"image"===this.blocks[r-1].type?r-2:r-1,c>=0&&this.blocks[c]))for(let t of this.blocks[c].pieces)l.push(t.clone()),d=!0;for(let s of this.blocks[r].pieces){const i=a+s.text.length,o=a;if(i<=t||o>=e)l.push(s.clone());else{const a=s.text;if(t>o){const e=a.slice(0,t-o);e.length>0&&l.push(new n(e,Object.assign({},s.attributes)))}if(e0&&l.push(new n(t,Object.assign({},s.attributes)))}}a=i}let h=this.mergePieces(l),u=!1;d&&c>=0?(!this.blocks[r]||"ol"!==this.blocks[r].listType&&"li"!==this.blocks[r].listType||(u=!0),this.blocks[c].pieces=h,this.blocks.splice(r,1)):0===h.length?this.blocks.length>1?(!this.blocks[r]||"ol"!==this.blocks[r].listType&&"li"!==this.blocks[r].listType||(u=!0),this.blocks.splice(r,1)):(h=[new n(" ")],this.blocks[r].pieces=h):this.blocks[r].pieces=h,u&&this.updateOrderedListNumbers(),this.emit("documentChanged",this)}deleteBlocks(){const t=this.blocks.some(t=>this.dataIds.includes(t.dataId)&&("ol"===t.listType||"li"===t.listType));this.blocks=this.blocks.filter(t=>{if(!this.dataIds.includes(t.dataId))return t}),this.dataIds=[],this.selectAll=!1,0===this.blocks.length&&this.blocks.push({dataId:`data-id-${Date.now()}`,class:"paragraph-block",type:"text",pieces:[new n("​")]}),t&&this.updateOrderedListNumbers(),this.emit("documentChanged",this)}getSelectedTextDataId(){const t=window.getSelection();if(!t||0===t.rangeCount)return null;const e=t.getRangeAt(0).startContainer,n=(e.nodeType===Node.TEXT_NODE?e.parentElement:e).closest("[data-id]");return(null==n?void 0:n.getAttribute("data-id"))||null}getAllSelectedDataIds(){var t;const e=window.getSelection();if(!e||0===e.rangeCount)return[];const n=e.getRangeAt(0),s=[],i=document.createNodeIterator(n.commonAncestorContainer,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let o;for(;o=i.nextNode();)if(n.intersectsNode(o)){const e=o.nodeType===Node.TEXT_NODE?o.parentElement:o,n=null===(t=null==e?void 0:e.closest("[data-id]"))||void 0===t?void 0:t.getAttribute("data-id");n&&!s.includes(n)&&s.push(n)}return this.removeExclusiveEndBlock(n,s),this.dataIds=s,console.log("selected id 3",this.dataIds,s),s}handleCtrlASelection(){const t=[],e=document.getElementById("editor");if(e){e.querySelectorAll("[data-id]").forEach(e=>{const n=e.getAttribute("data-id");n&&!t.includes(n)&&t.push(n)})}return this.dataIds=t,console.log("selected id 2",this.dataIds,t),t}getSelectedDataIds(){const t=window.getSelection();if(!t||0===t.rangeCount)return[];const e=t.getRangeAt(0),n=[],s=e.startContainer,i=e.endContainer,o=this.getDataIdFromNode(s),l=this.getDataIdFromNode(i);return o&&!n.includes(o)&&n.push(o),l&&!n.includes(l)&&n.push(l),this.removeExclusiveEndBlock(e,n),this.dataIds=n,console.log("selected id 1",this.dataIds,n),n}getDataIdFromNode(t){var e;const n=t.nodeType===Node.TEXT_NODE?t.parentElement:t;return(null===(e=null==n?void 0:n.closest("[data-id]"))||void 0===e?void 0:e.getAttribute("data-id"))||null}getCursorOffset(t){const e=window.getSelection();if(!e||0===e.rangeCount||!t)return-1;const n=e.getRangeAt(0);let s=0;const i=t=>{if(t===n.startContainer)return s+=n.startOffset,!0;t.nodeType===Node.TEXT_NODE&&(s+=(t.textContent||"").length);for(const e of Array.from(t.childNodes))if(i(e))return!0;return!1};return i(t),s}formatAttribute(t,e,s,i){console.log("formatAttribute",t,e,s,i);let o=[],l=0,a=-1;if(""===this.selectedBlockId||null===this.selectedBlockId)return;if(a=this.blocks.findIndex(t=>t.dataId===this.selectedBlockId),-1===a||!this.blocks[a].pieces)return;l=this.currentOffset;for(let r of this.blocks[a].pieces){const a=l+r.text.length;if(a<=t||l>=e)o.push(r.clone());else{const a=l,d=r.text,c=Math.max(t-a,0),h=Math.min(e-a,d.length);c>0&&o.push(new n(d.slice(0,c),Object.assign({},r.attributes)));const u=new n(d.slice(c,h),Object.assign({},r.attributes));("bold"!==s&&"italic"!==s&&"underline"!==s&&"strikethrough"!==s&&"subscript"!==s&&"superscript"!=s&&"undo"!==s&&"redo"!==s&&"hyperlink"!==s||"boolean"!=typeof i)&&("fontFamily"!==s&&"fontSize"!==s&&"hyperlink"!==s&&"fontColor"!==s&&"bgColor"!==s||"string"!=typeof i)||(u.attributes[s]=i),o.push(u),he.dataId===t);if(-1===n)return;const s=this.blocks[n];"ol"===s.listType||"li"===s.listType?(s.listType=null,s.listStart=void 0,s.parentId=void 0):(s.listType="ol",s.listStart=1,s.parentId=s.dataId),this.updateOrderedListNumbers(),this.emit("documentChanged",this)}getHeadingFontSize(t){switch(t){case"h1":return"32px";case"h2":return"24px";case"h3":return"18px";case"h4":default:return"16px";case"h5":return"13px";case"h6":return"11px"}}toggleHeading(t,e){var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1===s)return;const i=this.blocks[s];i.heading=e;const o=this.getHeadingFontSize(e);if(Array.isArray(i.pieces)){i.pieces.every(t=>""===t.text.trim()||"​"===t.text)&&e?i.pieces=[{text:`Heading ${e.replace("h","")}`,attributes:Object.assign(Object.assign({},null===(n=i.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:o})}]:i.pieces.forEach(t=>{t.attributes.fontSize=o})}this.emit("documentChanged",this)}toggleHeadingForMultipleBlocks(t,e){t.forEach(t=>{var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1!==s){const t=this.blocks[s];t.heading=e;const i=this.getHeadingFontSize(e);if(Array.isArray(t.pieces)){t.pieces.every(t=>""===t.text.trim()||"​"===t.text)&&e?t.pieces=[{text:`Heading ${e.replace("h","")}`,attributes:Object.assign(Object.assign({},null===(n=t.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:i})}]:t.pieces.forEach(t=>{t.attributes.fontSize=i})}}}),this.emit("documentChanged",this)}toggleOrderedListForMultipleBlocks(t){if(0===t.length)return;const e=t.sort((t,e)=>this.blocks.findIndex(e=>e.dataId===t)-this.blocks.findIndex(t=>t.dataId===e));if(e.every(t=>{const e=this.blocks.find(e=>e.dataId===t);return e&&("ol"===e.listType||"li"===e.listType)}))e.forEach(t=>{const e=this.blocks.find(e=>e.dataId===t);e&&(e.listType=null,e.listStart=void 0,e.parentId=void 0)});else{const t=e[0];e.forEach((e,n)=>{const s=this.blocks.find(t=>t.dataId===e);s&&(0===n?(s.listType="ol",s.listStart=1,s.parentId=t):(s.listType="li",s.listStart=n+1,s.parentId=t))})}this.updateOrderedListNumbers(),this.emit("documentChanged",this)}toggleUnorderedList(t){const e=this.blocks.findIndex(e=>e.dataId===t);if(-1===e)return;const n=this.blocks[e];n.listType="ul"===n.listType?null:"ul",this.emit("documentChanged",this)}updateOrderedListNumbers(){let t=1,e=null;for(let n=0;nt.focus(),0)}else this.editorView.container.focus();const s=window.getSelection();if(!s)return;const i=document.createRange();let o=0;const l=[this.editorView.container];let a;const r=(null===(n=this.editorView.container.textContent)||void 0===n?void 0:n.length)||0;if(!(t<0||t>r)){for(;a=l.pop();)if(3===a.nodeType){const e=a,n=o+e.length;if(t>=o&&t<=n){i.setStart(e,Math.min(t-o,e.length)),i.collapse(!0);break}o=n}else if("BR"===a.tagName){if(t===o){i.setStartBefore(a),i.collapse(!0);break}o++}else{const t=a;let e=t.childNodes.length;for(;e--;)l.push(t.childNodes[e])}s.removeAllRanges(),s.addRange(i)}}toggleBoldRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"bold");this.formatAttribute(t,e,"bold",!s)}toggleItalicRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"italic");this.formatAttribute(t,e,"italic",!s)}toggleUnderlineRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"underline");this.formatAttribute(t,e,"underline",!s)}toggleStrikethroughRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"strikethrough");this.formatAttribute(t,e,"strikethrough",!s)}toggleSubscriptRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"subscript");s||this.formatAttribute(t,e,"superscript",!1),this.formatAttribute(t,e,"subscript",!s)}toggleSuperscriptRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"superscript");s||this.formatAttribute(t,e,"subscript",!1),this.formatAttribute(t,e,"superscript",!s)}toggleUndoRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"undo");this.formatAttribute(t,e,"undo",!s)}toggleRedoRange(t,e){const n=this.isRangeEntirelyAttribute(t,e,"redo");this.formatAttribute(t,e,"redo",!n)}applyFontColor(t,e,n,s=""){tt.dataId===this.selectedBlockId);if(-1===o||!this.blocks[o].pieces)return!1;for(let l of this.blocks[o].pieces){const o=s+l.text.length;if(o>t&&st+e.text.length,0);if(s.dataId==e){let e=null;for(let i of s.pieces){const s=n,o=s+i.text.length;if(t>=s&&tt.dataId===e);n&&(n.alignment=t,this.emit("documentChanged",this))}getHtmlContent(t=!1){const e=document.getElementById("editor");if(!e)return void console.error("Editor container not found.");const n=e.innerHTML;return t&&navigator.clipboard.writeText(n).then(()=>{console.log("HTML copied to clipboard!")}).catch(t=>console.error("Failed to copy HTML:",t)),n}getCursorOffsetInParent(t){var e;console.log("textPosition -1:vicky",t);const n=document.querySelector(t);if(!n)return null;const s=window.getSelection();if(!s||0===s.rangeCount)return null;const i=s.getRangeAt(0);if(!n.contains(i.startContainer))return null;let o=0,l=null;const a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let r=null;for(;a.nextNode();){const t=a.currentNode;if(console.log(t,"textPosition - currentNode: vicky"),t===i.startContainer){o+=i.startOffset,l=t,r=t.parentElement;break}o+=(null===(e=t.textContent)||void 0===e?void 0:e.length)||0}return console.log({offset:o,childNode:l,innerHTML:r.innerHTML,innerText:r.innerText},"textPosition - return values: vicky"),{offset:o,childNode:l,innerHTML:r.innerHTML,innerText:r.innerText}}removeExclusiveEndBlock(t,e){if(e.length<=1)return;const n=t.endContainer,s=t.endOffset;let i=!1;if((n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE)&&(i=0===s),!i)return;const o=this.getDataIdFromNode(n);if(!o)return;if(o!==this.getDataIdFromNode(t.startContainer)&&e.includes(o)){const t=e.lastIndexOf(o);t>-1&&e.splice(t,1)}}}function i(t){const e=window.getSelection();if(!e||0===e.rangeCount)return null;const n=e.getRangeAt(0),s=n.cloneRange();s.selectNodeContents(t),s.setEnd(n.startContainer,n.startOffset);const i=s.toString().length;s.setEnd(n.endContainer,n.endOffset);return{start:i,end:s.toString().length}}function o(t,e){if(!e)return;let n=0;const s=document.createRange();s.setStart(t,0),s.collapse(!0);const i=[t];let o,l=!1,a=!1;for(;!a&&(o=i.pop());)if(3===o.nodeType){const t=o,i=n+t.length;!l&&e.start>=n&&e.start<=i&&(s.setStart(t,e.start-n),l=!0),l&&e.end>=n&&e.end<=i&&(s.setEnd(t,e.end-n),a=!0),n=i}else if("BR"===o.tagName)l||e.start!==n||(s.setStartBefore(o),l=!0),l&&e.end===n&&(s.setEndBefore(o),a=!0),n++;else{const t=o;let e=t.childNodes.length;for(;e--;)i.push(t.childNodes[e])}const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(s))}function l(t){const e=i(t.container);return e?[e.start,e.end]:[0,0]}const a=/((https?:\/\/|www\.)[\w\-._~:\/?#[\]@!$&'()*+,;=%]+|\b[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[\w\-._~:\/?#[\]@!$&'()*+,;=%]*)?)/g;function r(t,e){return e>0&&"@"===t[e-1]}function d(t){if(!t)return t;let e=t.trim();const n=e.match(/^https?:\/\/[\w.-]+(?::\d+)?\/(https?:\/\/.*)$/);return n&&(e=n[1]),/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)?e:e.startsWith("//")?"https:"+e:"https://"+e}class c{constructor(t,e){this.container=t,this.document=e}setImageHandler(t){this.imageHandler=t}render(){const t=i(this.container);this.container.innerHTML="",this.document.blocks.forEach(t=>{var e;if(""!==t.dataId){let n;if("table"===t.type||"layout"===t.type||"math"===t.type)return void(t.element&&this.container.appendChild(t.element));if("image"===t.type){if(n=document.createElement("div"),n.setAttribute("data-id",t.dataId),n.setAttribute("class",t.class),n.setAttribute("type",t.type),n.style.textAlign=t.alignment||"left",t.image)if(this.imageHandler&&"function"==typeof this.imageHandler.createImageFragment)n.appendChild(this.imageHandler.createImageFragment(t.image,t.dataId));else{const e=document.createElement("img");e.src=t.image,n.appendChild(e)}}else if("code"===t.type){n=document.createElement("div"),n.setAttribute("data-id",t.dataId),n.setAttribute("class","code_block_wrapper"),n.setAttribute("type","code"),n.setAttribute("data-language",t.language||"text"),n.addEventListener("mousedown",t=>{t.preventDefault()});const e=document.createElement("div");e.className="code_block_header";const s=document.createElement("span");s.className="code_block_language",s.innerText=t.language||"text";const i=document.createElement("span");i.className="code_block_hint",i.innerText="double-click to edit";const o=document.createElement("button");o.className="code_block_cancel",o.innerHTML="×",o.title="Remove block",o.addEventListener("mousedown",t=>{t.stopPropagation()}),o.onclick=e=>{e.stopPropagation(),e.preventDefault(),n.remove();const s=this.document.blocks.findIndex(e=>e.dataId===t.dataId);-1!==s&&(this.document.blocks.splice(s,1),this.document.selectedBlockId===t.dataId&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))},e.appendChild(s),e.appendChild(i),e.appendChild(o);const l=document.createElement("pre");l.className="code_block_content";const a=document.createElement("code");a.textContent=t.code||"",l.appendChild(a),n.appendChild(e),n.appendChild(l)}else if("ol"===t.listType||"li"===t.listType?(n=document.createElement("ol"),n.setAttribute("start",(null===(e=null==t?void 0:t.listStart)||void 0===e?void 0:e.toString())||"1")):n="ul"===t.listType?document.createElement("ul"):document.createElement(t.heading||"div"),n.setAttribute("data-id",t.dataId),n.setAttribute("class",t.class),n.setAttribute("type",t.type),n.style.textAlign=t.alignment||"left",Array.isArray(t.pieces))if("ol"===t.listType||"ul"===t.listType||"li"===t.listType){const e=document.createElement("li");t.pieces.forEach(t=>{e.appendChild(this.renderPiece(t))}),n.appendChild(e)}else t.pieces.forEach(t=>{n.appendChild(this.renderPiece(t))});this.container.appendChild(n)}}),o(this.container,t)}renderPiece(t){const e=t.text.split("\n");return this.wrapAttributes(e,t.attributes)}wrapAttributes(t,e){const n=document.createDocumentFragment();return t.forEach((s,i)=>{let o=document.createTextNode(s);if(e.strikethrough){const t=document.createElement("s");t.appendChild(o),o=t}if(e.underline){const t=document.createElement("u");t.appendChild(o),o=t}if(e.italic){const t=document.createElement("em");t.appendChild(o),o=t}if(e.bold){const t=document.createElement("strong");t.appendChild(o),o=t}if(e.subscript){const t=document.createElement("sub");t.appendChild(o),o=t}if(e.superscript){const t=document.createElement("sup");t.appendChild(o),o=t}const l=document.getElementById("fontFamily"),a=document.getElementById("fontSize");let r="Arial",c="16px";l&&(r=l.value),a&&(c=a.value);const h=document.createElement("span");if(h.style.fontFamily=e.fontFamily||r,h.style.fontSize=e.fontSize||c,e.fontColor&&"string"==typeof e.fontColor&&(h.style.color=e.fontColor),e.bgColor&&"string"==typeof e.bgColor&&(h.style.backgroundColor=e.bgColor),e.hyperlink&&"string"==typeof e.hyperlink){const t=document.createElement("a");t.href=d(e.hyperlink),t.appendChild(o),o=t}h.appendChild(o),o=h,n.appendChild(o),i{t.addEventListener("mousedown",t=>{t.preventDefault()})}),this.container.addEventListener("click",t=>{const e=t.target.closest("button");if(e){const t=e.getAttribute("data-action");t&&this.emit("toolbarAction",t)}})}updateActiveStates(t){if(this.container.querySelectorAll("button").forEach(e=>{const n=e.getAttribute("data-action");let s=!1;"bold"===n&&t.bold&&(s=!0),"italic"===n&&t.italic&&(s=!0),"underline"===n&&t.underline&&(s=!0),"strikethrough"===n&&t.strikethrough&&(s=!0),"hyperlink"===n&&t.hyperlink&&(s=!0),"undo"===n&&t.undo&&(s=!0),"redo"===n&&t.redo&&(s=!0),e.classList.toggle("active",s)}),this.container.querySelectorAll("select").forEach(e=>{const n=e.getAttribute("data-action");"fontFamily"===n&&t.fontFamily&&(e.value=t.fontFamily),"fontSize"===n&&t.fontSize&&(e.value=t.fontSize)}),t.fontColor){const e=document.getElementById("fontColorPicker");e&&(e.value=t.fontColor,e.dispatchEvent(new Event("input",{bubbles:!0})))}if(t.bgColor){const e=document.getElementById("bgColorPicker");e&&(e.value=t.bgColor,e.dispatchEvent(new Event("input",{bubbles:!0})))}}}const u={TOOLBAR_CLASSNAME:"toolbar",TOOLBAR_ID:"toolbar",EDITOR_CLASSNAME:"editor",EDITOR_ID:"editor",EDITOR_ELEMENT_NT_FOUND:"Editor element not found or incorrect element type.",FONT_FAMILY_SELECT_ID:"fontFamily",FONT_SIZE_SELECT_ID:"fontSize",HEADING_SELECT_ID:"heading",FONT_COLOR_WRAPPER_ID:"fontColorWrapper",FONT_COLOR_ID:"fontColor",FONT_COLOR_PICKER_WRAPPER_ID:"colorWrapper",FONT_COLOR_PICKER_ID:"fontColorPicker",FONT_COLOR_RESET_ID:"colorResetFont",BG_COLOR_WRAPPER_ID:"bgColorWrapper",BG_COLOR_ID:"bgColor",BG_COLOR_PICKER_WRAPPER_ID:"colorBgWrapper",BG_COLOR_RESET_ID:"colorResetBG",BG_COLOR_PICKER_ID:"bgColorPicker",GET_HTML_BUTTON_ID:"getHtmlButton",LOAD_HTML_BUTTON_ID:"loadHtmlButton",HYPERLINK_CONTAINER_ID:"hyperlink-container",HYPERLINK_INPUT_ID:"hyperlink-input",HYPERLINK_PLACEHOLDER:"Enter a URL...",HYPERLINK_APPLY_BTN_ID:"apply-hyperlink",HYPERLINK_CANCEL_BTN_ID:"cancel-hyperlink",VIEW_HYPERLINK_CONTAINER_ID:"hyperlink-container-view",VIEW_HYPERLINK_LABEL_ID:"hyperlink-view-span",VIEW_HYPERLINK_ANCHOR_ID:"hyperlink-view-link",TEMPORARY_SELECTION_HIGHLIGHT_CLASS:"temporary-selection-highlight",PARAGRAPH_BLOCK_CLASS:"paragraph-block",IMAGE_CROSS_CLASS:"image-cross",TEST_HTML_CODE:'
ajsh diujaksdajsh diujaksdajsh
diujaksdasd 98hasiudasdh 98
This is a t this is a test work
This is a test work. this is a test work
da90 uasd y98asiodoiasda90 uasd y98asiodoiasda90 uasd y98asioda
sdjasdjasdja9sudoija9sudoija9sudoija90sdoa90sdoa90sdo
',TEST_BLOG_POST_HTML_CODE:'
Blog Post Title
Start writing your post here...
',TEST_NEWSLATER_HTML_CODE:'
Weekly Newsletter
Hello subscribers,
',TEST_RESUME_HTML_CODE:'
John Doe
Experience
• Role 1
',TEST_EMAIL_HTML_CODE:'
Subject: Important Update
Hi Team,
',TEST_MEETING_HTML_CODE:'
Meeting Minutes
Attendees:
Action Items:
',POPUP_TOOLBAR_CLASSNAME:"popup-toolbar",POPUP_TOOLBAR_ID:"popup-toolbar",TOAST_ID:"ti-toast",TOAST_SHOW_CLASS:"ti-toast--show",TOAST_DEFAULT_MESSAGE:"HTML copied to clipboard",TOAST_DEFAULT_DURATION_MS:2e3};class p{constructor(t,e,n){this.savedSelection=null,this.clickOutsideHandler=null,this.editorContainer=t,this.editorView=e,this.document=n}setUndoRedoManager(t){this.undoRedoManager=t}hanldeHyperlinkClick(t,e,n,s,i){const o=this.getCommonHyperlinkInRange(t,e,n,s,i);this.showHyperlinkInput(o)}getCommonHyperlinkInRange(t,e,n,s,i){let o=n,l=0;s&&(l=i.findIndex(t=>t.dataId===s));const a=i[l].pieces;let r=null;for(let n of a){const s=o+n.text.length;if(s>t&&o0){const t=c.getRangeAt(0);let i=null;if(t&&"function"==typeof t.getBoundingClientRect)i=t.getBoundingClientRect();else if(t&&"function"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);i=n&&n.length?n[0]:null}(!i||Number.isNaN(i.top)&&Number.isNaN(i.left))&&(i=this.editorView.container.getBoundingClientRect());const l=(null===window||void 0===window?void 0:window.scrollY)||0,a=(null===window||void 0===window?void 0:window.scrollX)||0;o.style.top=`${(null!==(n=i.bottom)&&void 0!==n?n:i.top)+l+5}px`,o.style.left=`${(null!==(s=i.left)&&void 0!==s?s:0)+a}px`}l.value=t||"",this.savedSelection=i(this.editorView.container),this.highlightSelection(),l.focus(),a.onclick=null,r.onclick=null;const h=this.document.dataIds,u=()=>{const t=d(l.value.trim());t&&this.applyHyperlink(t,h),o.style.display="none"};a.onclick=u,l.onkeydown=t=>{"Enter"===t.key&&(t.preventDefault(),u())},r.onclick=()=>{this.removeHyperlink(h),o.style.display="none"}}}highlightSelection(){this.removeHighlightSelection();const t=window.getSelection();if(t&&t.rangeCount>0){const e=t.getRangeAt(0),n=document.createElement("span");n.className=u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS,n.appendChild(e.extractContents()),e.insertNode(n),t.removeAllRanges();const s=document.createRange();s.selectNodeContents(n),t.addRange(s)}}removeHighlightSelection(){var t;const e=null===(t=this.editorContainer)||void 0===t?void 0:t.querySelectorAll(`span.${u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS}`);null==e||e.forEach(t=>{const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)}})}applyHyperlink(t,e){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),o(this.editorView.container,this.savedSelection);const[n,s]=l(this.editorView);if(n1?this.document.blocks.forEach(t=>{if(e.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.formatAttribute(s,e,"hyperlink",i)}}):this.document.formatAttribute(n,s,"hyperlink",i),this.editorView.render();const o=window.getSelection();o&&o.removeAllRanges(),this.editorView.container.focus()}this.savedSelection=null}removeHyperlink(t){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),o(this.editorView.container,this.savedSelection);const[e,n]=l(this.editorView);e1?this.document.blocks.forEach(n=>{if(t.includes(n.dataId)){this.document.selectedBlockId=n.dataId;let t=0;n.pieces.forEach(e=>{t+=e.text.length});let s=e-t;this.document.formatAttribute(s,t,"hyperlink",!1)}}):this.document.formatAttribute(e,n,"hyperlink",!1),this.editorView.render(),o(this.editorView.container,this.savedSelection),this.editorView.container.focus()),this.savedSelection=null}addClickOutsideListener(t){this.removeClickOutsideListener(),this.clickOutsideHandler=e=>{t&&!t.contains(e.target)&&this.hideHyperlinkViewButton()},setTimeout(()=>{"undefined"!=typeof document&&document.addEventListener("click",this.clickOutsideHandler)},100)}removeClickOutsideListener(){this.clickOutsideHandler&&(document.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null)}showHyperlinkViewButton(t){var e,n,s;const i=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID),o=document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID);if(i&&o){i.style.display="block";const l=window.getSelection();if(l&&l.rangeCount>0){const t=l.getRangeAt(0);let o=null;if(t&&"function"==typeof t.getBoundingClientRect)o=t.getBoundingClientRect();else if(t&&"function"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);o=n&&n.length?n[0]:null}o||(o=this.editorView.container.getBoundingClientRect());const a=(null===window||void 0===window?void 0:window.scrollY)||0,r=(null===window||void 0===window?void 0:window.scrollX)||0;o&&(i.style.top=`${(null!==(n=o.bottom)&&void 0!==n?n:o.top)+a+5}px`,i.style.left=`${(null!==(s=o.left)&&void 0!==s?s:0)+r}px`)}t&&(o.innerText=t,o.href=d(t))}this.addClickOutsideListener(i)}hideHyperlinkViewButton(){const t=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID);t&&(t.style.display="none"),this.removeClickOutsideListener()}}function m(t){return g((new DOMParser).parseFromString(t,"text/html").body,{bold:!1,italic:!1,underline:!1,hyperlink:!1})}function g(t,e){let s=Object.assign({},e);const i=[];if(t instanceof HTMLElement){if("A"===t.tagName){const e=t.getAttribute("href");e&&(s.hyperlink=e)}"STRONG"!==t.tagName&&"B"!==t.tagName||(s.bold=!0),"EM"!==t.tagName&&"I"!==t.tagName||(s.italic=!0),"U"===t.tagName&&(s.underline=!0),t.childNodes.forEach(t=>{i.push(...g(t,s))})}else if(t instanceof Text){const e=t.nodeValue||"";""!==e.trim()&&i.push(new n(e,Object.assign({},s)))}return i}const f={bold:'\n Bold\n \n ',italic:'\n Italic\n \n ',underline:'\n Underline\n \n ',strikethrough:'\n Strikethrough\n \n ',subscript:'\n \n ',superscript:'\n \n ',left_align:'\n Left Align\n \n ',center_align:'\n Center Align\n ',right_align:'\n Right Align',justify:'\n Justify\n ',bullet_list:'\n Bullet List',numbered_list:'\n Numbererd List\n \n ',insert_table:'\n \n \n \n \n \n \n \n ',insert_layout:'\n Insert Layout\n \n ',heading:'\n Heading\n \n ',hyperlink:'\n Hyperlink\n \n \n ',image:'\n Insert Image\n \n ',stop_microphone:' \n \n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n \n \n ',start_microphone:'\n \n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n \n \n ',close_icon:'\n \n ',emoji:'\n Emoji\n \n \n \n \n ',insert_math:'\n \n ',textToSppech:'\n \n \n \n \n Icon_24px_TexttoSpeech_Color\n \n \n \n \n \n \n \n ',speaker_on:'\n \n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n \n \n ',speaker_off:'\n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n '},b={dropdowns:["fontFamily","fontSize","heading"],colors:["fontColor","bgColor"],formatting:["bold","italic","underline","strikethrough"],alignment:["alignLeft","alignCenter","alignRight"],lists:["unorderedList","orderedList"],media:["hyperlink","image","emoji","insert_math"],utility:["getHtmlContent","loadHtmlContent"]};function y(){const t=document.createElement("div");return t.className="toolbar-separator",t}function C(t,e){const n=u.EDITOR_ID,s=u.TOOLBAR_ID,i=u.POPUP_TOOLBAR_ID,o=["Arial","Times New Roman","Courier New","Verdana"],l=["12px","14px","16px","18px","20px"],a=document.getElementById(t);if(!a)throw new Error(u.EDITOR_ELEMENT_NT_FOUND);a.classList.add("editor-container");const r=document.createElement("div");r.className=u.TOOLBAR_CLASSNAME,r.id=s,a.appendChild(r),!1===(null==e?void 0:e.showToolbar)&&(r.style.display="none");const d=document.createElement("div");d.id=n,d.className=u.EDITOR_CLASSNAME,d.contentEditable="true",d.spellcheck=!0,d.lang="en",a.appendChild(d);const c={bold:"B",italic:"I",underline:"U",hyperlink:"🔗",alignLeft:"⇤",alignCenter:"↔",alignRight:"⇥",unorderedList:"•",orderedList:"1.",fontFamily:"fontFamily",fontSize:"fontSize",fontColor:"A",subscript:"X2",superscript:"X2",justify:"⇄",insert_table:"⊢",insert_layout:"❐",insert_math:"Σ",heading:"H",image:"📷",colors:"🎨"},h={bold:"Bold (Ctrl+B)",italic:"Italic (Ctrl+I)",underline:"Underline (Ctrl+U)",strikethrough:"Strikethrough",hyperlink:"Insert Link (Ctrl+H)",alignLeft:"Align Left (Ctrl+L)",alignCenter:"Align Center (Ctrl+E)",alignRight:"Align Right (Ctrl+R)",unorderedList:"Bullet List",orderedList:"Numbered List",fontColor:"Text Color",bgColor:"Highlight Color",image:"Insert Image",emoji:"Emoji",getHtmlContent:"Get HTML",loadHtmlContent:"Load HTML",insert_table:"Insert table",insert_math:"Insert Equation",textToSpeech:"Text To Sppech"},p=[{feature:"alignLeft",id:"alignLeft",icon:f.left_align},{feature:"alignCenter",id:"alignCenter",icon:f.center_align},{feature:"alignRight",id:"alignRight",icon:f.right_align},{feature:"unorderedList",id:"unorderedList",icon:f.bullet_list},{feature:"orderedList",id:"orderedList",icon:f.numbered_list},{feature:"hyperlink",id:"hyperlink",icon:f.hyperlink},{feature:"emoji",id:"emoji",icon:f.emoji},{feature:"strikethrough",id:"strikethrough",icon:f.strikethrough},{feature:"insert_table",id:"insert_table",icon:f.insert_table},{feature:"insert_math",id:"insert_math",icon:f.insert_math},{feature:"subscript",id:"subscript",icon:f.subscript},{feature:"superscript",id:"superscript",icon:f.superscript},{feature:"textToSpeech",id:"textToSpeech",icon:f.speaker_on}],m=(t,e)=>{const n=document.createElement("select");return n.dataset.action=t,n.id=t,e.forEach(t=>{const e=document.createElement("option");e.value=t,e.textContent=t,n.appendChild(e)}),n},g=document.createElement("div");g.id=i,g.className=u.POPUP_TOOLBAR_CLASSNAME,g.style.display="none",a.appendChild(g),e.popupFeatures&&e.popupFeatures.forEach((t,e)=>{e>0&&"hyperlink"===t&&g.appendChild(y());const n=p.find(e=>e.feature===t)||{icon:c[t]||t},s=document.createElement("button");s.dataset.action=t,s.innerHTML=n.icon,s.dataset.tooltip=h[t]||t.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "),g.appendChild(s)});let C=null;e.features.forEach((t,n)=>{const s=function(t){for(const[e,n]of Object.entries(b))if(n.includes(t))return e;return null}(t);if(n>0&&s&&C&&s!==C&&r.appendChild(y()),C=s,"fontFamily"===t){const t=m(u.FONT_FAMILY_SELECT_ID,o);r.appendChild(t)}else if("fontSize"===t){const t=m(u.FONT_SIZE_SELECT_ID,l);r.appendChild(t)}else if("fontColor"===t){if(document.getElementById(u.FONT_COLOR_WRAPPER_ID))return;const t=document.createElement("span");t.id=u.FONT_COLOR_WRAPPER_ID,t.style.display="inline-flex",t.style.alignItems="center",t.style.position="relative",t.style.gap="4px";const e=document.createElement("button");e.id=u.FONT_COLOR_ID,e.type="button",e.dataset.tooltip=h.fontColor,e.innerHTML='A',t.appendChild(e);const n=document.createElement("div");n.id=u.FONT_COLOR_PICKER_WRAPPER_ID,n.style.display="none",n.style.position="absolute",n.style.top="100%",n.style.left="0",n.style.marginTop="4px",n.style.zIndex="1000",n.style.backgroundColor="#ffffff",n.style.border="1px solid #d1d1d1",n.style.borderRadius="4px",n.style.padding="8px",n.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)",n.style.width="135px";const s=document.createElement("input");s.type="color",s.id=u.FONT_COLOR_PICKER_ID,s.setAttribute("data-action","fontColor"),s.style.width="100%",s.style.height="32px",s.style.border="1px solid #d1d1d1",s.style.borderRadius="4px",s.style.cursor="pointer",s.style.marginBottom="8px",s.value="#000000",n.appendChild(s);const i=document.createElement("button");i.id=u.FONT_COLOR_RESET_ID,i.type="button",i.textContent="Reset",i.style.display="block",i.style.width="100%",i.style.padding="6px 12px",i.style.fontSize="12px",i.style.border="1px solid #000000",i.style.borderRadius="4px",i.style.backgroundColor="#f8f8f8",i.style.cursor="pointer",i.style.transition="background-color 0.2s",i.onmouseenter=()=>i.style.backgroundColor="#e8e8e8",i.onmouseleave=()=>i.style.backgroundColor="#f8f8f8",n.appendChild(i),t.appendChild(n),r.appendChild(t)}else if("bgColor"===t){if(document.getElementById(u.BG_COLOR_WRAPPER_ID))return;const t=document.createElement("span");t.id=u.BG_COLOR_WRAPPER_ID,t.style.display="inline-flex",t.style.alignItems="center",t.style.position="relative",t.style.gap="4px";const e=document.createElement("button");e.id=u.BG_COLOR_ID,e.type="button",e.dataset.tooltip=h.bgColor,e.innerHTML='B',t.appendChild(e);const n=document.createElement("div");n.id=u.BG_COLOR_PICKER_WRAPPER_ID,n.style.display="none",n.style.position="absolute",n.style.top="100%",n.style.left="0",n.style.marginTop="4px",n.style.zIndex="1000",n.style.backgroundColor="#ffffff",n.style.border="1px solid #000000",n.style.borderRadius="4px",n.style.padding="8px",n.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)",n.style.width="135px";const s=document.createElement("input");s.setAttribute("data-action","bgColor"),s.type="color",s.id=u.BG_COLOR_PICKER_ID,s.style.width="100%",s.style.height="32px",s.style.border="1px solid #000000ff",s.style.borderRadius="4px",s.style.cursor="pointer",s.style.marginBottom="8px",s.value="#ffffff",n.appendChild(s);const i=document.createElement("button");i.id=u.BG_COLOR_RESET_ID,i.type="button",i.textContent="Reset",i.style.display="block",i.style.width="100%",i.style.padding="6px 12px",i.style.fontSize="12px",i.style.border="1px solid #d1d1d1",i.style.borderRadius="4px",i.style.backgroundColor="#f8f8f8",i.style.cursor="pointer",i.style.transition="background-color 0.2s",i.onmouseenter=()=>i.style.backgroundColor="#e8e8e8",i.onmouseleave=()=>i.style.backgroundColor="#f8f8f8",n.appendChild(i),t.appendChild(n),r.appendChild(t)}else if("getHtmlContent"===t){const t=document.createElement("button");t.id=u.GET_HTML_BUTTON_ID,t.type="button",t.textContent="Get HTML",t.dataset.tooltip=h.getHtmlContent,r.appendChild(t)}else if("loadHtmlContent"===t){const t=document.createElement("select");t.id=u.LOAD_HTML_BUTTON_ID,t.dataset.action="loadHtmlContent",t.dataset.tooltip=h.loadHtmlContent,t.style.cursor="pointer",t.style.padding="4px 8px",t.style.border="1px solid #ccc",t.style.borderRadius="4px",t.style.backgroundColor="#f9f9f9",t.style.fontSize="13px",t.style.outline="none",t.style.color="#333",t.style.height="28px",t.addEventListener("mouseenter",()=>{t.style.backgroundColor="#eaeaea"}),t.addEventListener("mouseleave",()=>{t.style.backgroundColor="#f9f9f9"});const n=document.createElement("option");n.value="",n.textContent="Templates...",n.disabled=!0,n.selected=!0,t.appendChild(n);[...[{name:"Default Test",html:u.TEST_HTML_CODE},{name:"Blog Post",html:u.TEST_BLOG_POST_HTML_CODE},{name:"Newsletter",html:u.TEST_NEWSLATER_HTML_CODE},{name:"Resume",html:u.TEST_RESUME_HTML_CODE},{name:"Email",html:u.TEST_EMAIL_HTML_CODE},{name:"Meeting Notes",html:u.TEST_MEETING_HTML_CODE}],...e.templates||[]].forEach((e,n)=>{const s=document.createElement("option");s.value=n.toString(),s.dataset.html=e.html,s.textContent=e.name,t.appendChild(s)}),r.appendChild(t)}else if("heading"===t){const t=document.createElement("select");t.id=u.HEADING_SELECT_ID,t.dataset.action="heading",t.dataset.tooltip=h.heading||"Heading",t.style.cursor="pointer",t.style.padding="4px 8px",t.style.border="1px solid #ccc",t.style.borderRadius="4px",t.style.backgroundColor="#f9f9f9",t.style.fontSize="13px",t.style.outline="none",t.style.color="#333",t.style.height="28px",t.addEventListener("mouseenter",()=>{t.style.backgroundColor="#eaeaea"}),t.addEventListener("mouseleave",()=>{t.style.backgroundColor="#f9f9f9"});const e=document.createElement("option");e.value="",e.textContent="Normal",t.appendChild(e),["H1","H2","H3","H4","H5","H6"].forEach((e,n)=>{const s=document.createElement("option");s.value=e.toLowerCase(),s.textContent=`Heading ${n+1}`,t.appendChild(s)}),r.appendChild(t)}else if(p.map(t=>t.feature).includes(t)){const e=p.find(e=>e.feature===t),n=document.createElement("button");n.id=t,n.dataset.action=t,n.innerHTML=(null==e?void 0:e.icon)||"",n.dataset.tooltip=h[t]||t,r.appendChild(n)}else{const e=document.createElement("button");e.dataset.action=t,e.innerHTML=c[t]||t,e.id=t,e.dataset.tooltip=h[t]||t.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "),r.appendChild(e)}});const k=document.createElement("div");k.id=u.HYPERLINK_CONTAINER_ID,k.style.display="none";const v=document.createElement("input");v.type="text",v.id=u.HYPERLINK_INPUT_ID,v.placeholder=u.HYPERLINK_PLACEHOLDER;const x=document.createElement("button");x.id=u.HYPERLINK_APPLY_BTN_ID,x.textContent="Link";const I=document.createElement("button");I.id=u.HYPERLINK_CANCEL_BTN_ID,I.textContent="Unlink",k.appendChild(v),k.appendChild(x),k.appendChild(I),r.appendChild(k);const E=document.createElement("div");E.id=u.VIEW_HYPERLINK_CONTAINER_ID,E.style.display="none";const w=document.createElement("span");w.id=u.VIEW_HYPERLINK_LABEL_ID,w.innerHTML="Visit URL : ";const _=document.createElement("a");return _.id=u.VIEW_HYPERLINK_ANCHOR_ID,_.href="",_.target="_blank",E.appendChild(w),E.appendChild(_),r.appendChild(E),{mainEditorId:n,toolbarId:s,popupToolbarId:i}}class k{constructor(t){this.htmlString=t,this.doc=(new DOMParser).parseFromString(t,"text/html")}parse(){const t=this.doc.body.children;let e=[];return Array.from(t).forEach((t,n)=>{const s=this.parseElement(t);console.log(t,"element parse",n,s),e.push(s)}),console.log(e,"element--jsondata"),e}parseElement(t){const e=t.getAttribute("data-id")||`data-id-${Date.now()}-${Math.floor(1e3*Math.random())}`,n=t.className||"paragraph-block",s=t.style.textAlign||"left";let i=null,o=null;"UL"===t.tagName?i="ul":"OL"===t.tagName&&(i="ol",o=parseInt(t.getAttribute("start")||"1",10));let l=[];i?this.parseListItems(t,l):this.parseParagraphText(t,l);const a=t.tagName.toLowerCase(),r=a.match(/^h[1-6]$/)?a:null;return Object.assign(Object.assign(Object.assign(Object.assign({dataId:e,class:n,alignment:s,pieces:l},i?{listType:i}:{}),null!==o?{listStart:o}:{}),{}),r?{heading:r}:{})}parseListItems(t,e){t.querySelectorAll("li").forEach(t=>{const s=this.extractTextAttributes(t);s&&e.push(new n(s.text,s.attributes))})}parseParagraphText(t,e){const s=t.querySelectorAll("span"),i=new Map;s.forEach(t=>{const e=this.extractTextAttributes(t);if(console.log(e,"piece parseParagraphText span",t.textContent,t.style.color),e){const t=i.get(e.text);t?(t.attributes.bold=t.attributes.bold||e.attributes.bold,t.attributes.italic=t.attributes.italic||e.attributes.italic,t.attributes.underline=t.attributes.underline||e.attributes.underline,t.attributes.fontFamily=e.attributes.fontFamily||t.attributes.fontFamily,t.attributes.fontSize=e.attributes.fontSize||t.attributes.fontSize,t.attributes.fontColor=e.attributes.fontColor||t.attributes.fontColor,t.attributes.bgColor=e.attributes.bgColor||t.attributes.bgColor):i.set(e.text,Object.assign({},e))}}),i.forEach(t=>{e.push(new n(t.text,t.attributes))}),console.log(e,"pieces--parseParagraphText (merged)")}extractTextAttributes(t){var e;const n=t.textContent||"";return n?(console.log("extractTextAttributes node",t,t.style.color),{text:n,attributes:{bold:null!==t.querySelector("b, strong"),italic:null!==t.querySelector("i, em"),underline:null!==t.querySelector("u"),undo:!1,redo:!1,fontFamily:t.style.fontFamily||"Arial",fontSize:t.style.fontSize||"12px",hyperlink:!!t.querySelector("a")&&(null===(e=t.querySelector("a"))||void 0===e?void 0:e.getAttribute("href")),fontColor:t.style.color,bgColor:t.style.backgroundColor}}):null}rgbToHex(t,e=!1){const n=t.match(/\d+/g);if(!n||n.length<3)return null;const s=n.map(t=>{const e=parseInt(t);return e<0||e>255?"00":e.toString(16).padStart(2,"0")}).join("");return e||"000000"!==s?`#${s}`:null}}class v{constructor(t,e){this.editor=t,this.document=e,this.isImageHighlighted=!1,this.highLightedImageDataId="",this.currentCursorLocation=0,this.isCrossIconVisible=!1}setEditorView(t){this.editorView=t}insertImage(){const t=document.createElement("input");t.type="file",t.accept="image/*",t.click(),t.onchange=()=>{const e=t.files?t.files[0]:null;if(e){const t=new FileReader;t.onload=t=>{var e;const n=null===(e=t.target)||void 0===e?void 0:e.result;this.insertImageAtCursor(n)},t.readAsDataURL(e)}}}insertImageAtCursor(t){if(!t)return;const[e,n]=l(this.editorView);n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId),this.insertImageAtPosition(t,e,this.document.selectedBlockId)}setCursorPostion(t,e){if("number"!=typeof t||!e)return;const n=document.querySelector(`[data-id="${e}"]`);n&&("function"==typeof n.focus&&n.focus(),setTimeout(()=>{const e=document.createRange(),s=window.getSelection();if(n.firstChild)e.setStart(n.firstChild,t);else{const t=document.createTextNode("");n.appendChild(t),e.setStart(t,0)}e.collapse(!0),null==s||s.removeAllRanges(),null==s||s.addRange(e)},0))}insertImageAtPosition(t,e,s){if(!t||"number"!=typeof e||!this.editorView)return;console.log(t,e,s,"vicky insertImageAtPosition",this.document.blocks);const i=`data-id-${Date.now()}-${1e3*Math.random()}`,o=`data-id-${Date.now()}-${1e3*Math.random()}`,l=`data-id-${Date.now()}-${1e3*Math.random()}`,a={dataId:i,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(" ")],type:"image",image:t},r={dataId:o,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(" ")],type:"text"};let d=this.document.selectedBlockId;const c=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);let h=[];const{remainingText:p,piece:m}=function(t,e){const n=window.getSelection();if(!n||0===n.rangeCount)return{remainingText:"",piece:null};const s=n.getRangeAt(0).startContainer;let i="";const o=e.blocks.filter(e=>{if(e.dataId===t)return e});if(!o[0]||!o[0].pieces)return{remainingText:"",piece:null};const l=document.querySelector(`[data-id="${t}"]`),a=e.getCursorOffsetInParent(`[data-id="${t}"]`);let r=[],d=0;if(o[0].pieces.forEach((t,e)=>{i+=t.text,(null==a?void 0:a.innerText)===t.text&&(d=e,r.push(t))}),o[0].pieces.length>1&&o[0].pieces.forEach((t,e)=>{d0){const t=p.split(" ");let e=[];""!==t[0]||void 0!==t[1]?1===m.length?e=[new n(g,m[0].attributes)]:(e.push(new n(" "+t[0]+" ",m[0].attributes)),m.length>=2&&m.forEach((t,n)=>{0!==n&&e.push(t)})):e=[new n(" ")],console.log(this.document.selectedBlockId,"uniqueId3 extractTextFromDataId-vicky",l),f=function(t,e,n){const s=t.findIndex(t=>t.dataId===e);return-1===s?(console.error(`Block with dataId "${e}" not found.`),t):[...t.slice(0,s+1),n,...t.slice(s+1)]}(this.document.blocks,this.document.selectedBlockId||"",{dataId:l,class:u.PARAGRAPH_BLOCK_CLASS,pieces:e,type:"text"})}this.document.blocks=f,this.document.deleteRange(this.currentCursorLocation,this.currentCursorLocation+p.length,this.document.selectedBlockId,this.document.currentOffset),this.document.blocks.length>c+1?this.document.blocks.forEach((t,e)=>{h.push(t),e===c?h.push(a):d===this.document.selectedBlockId&&(d=t.dataId)}):(h=[...this.document.blocks,a,r],d=r.dataId),this.document.blocks=h,this.editorView.render(),this.document.selectedBlockId=d;const b=document.querySelector(`[data-id="${d}"]`);b.focus(),setTimeout(()=>{const t=document.createRange(),e=window.getSelection();if(b.firstChild)t.setStart(b.firstChild,1);else{const e=document.createTextNode("");b.appendChild(e),t.setStart(e,0)}t.collapse(!0),null==e||e.removeAllRanges(),null==e||e.addRange(t)},0)}createImageFragment(t,e){if(!t||!e)return document.createDocumentFragment();const n=document.createDocumentFragment(),s=document.createElement("img");s.src=t,s.style.maxWidth="30%",s.setAttribute("contenteditable","false"),n.appendChild(s);const i=document.createElement("span");return i.setAttribute("contenteditable","false"),i.appendChild(n),s.addEventListener("click",()=>this.addStyleToImage(e)),i}addStyleToImage(t){if(t&&!this.isCrossIconVisible){const e=document.querySelector(`[data-id="${t}"]`),n=null==e?void 0:e.querySelector("span");n&&(n.style.position="relative");const s=null==e?void 0:e.querySelector("img");s&&(s.style.border="2px solid blue");const i=document.createElement("div");i.className=u.IMAGE_CROSS_CLASS,i.innerHTML="x",Object.assign(i.style,{position:"absolute",top:"0",left:"50%",transform:"translate(-50%, 0)",background:"#fff",borderRadius:"50%",width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",border:"3px solid blue",zIndex:"999"}),i.addEventListener("mouseover",()=>i.style.border="3px solid black"),i.addEventListener("mouseout",()=>i.style.border="3px solid blue"),i.addEventListener("click",t=>{t.stopPropagation(),this.deleteImage()}),null==n||n.appendChild(i),this.isImageHighlighted=!0,this.highLightedImageDataId=t,this.isCrossIconVisible=!0}}clearImageStyling(){if(!this.highLightedImageDataId)return;const t=document.querySelector(`[data-id="${this.highLightedImageDataId}"]`);if(t){const e=t.querySelector("span");null==e||e.removeAttribute("style");const n=null==e?void 0:e.querySelector("img");n&&n.removeAttribute("style");const s=null==e?void 0:e.querySelector(`.${u.IMAGE_CROSS_CLASS}`);null==s||s.remove(),this.highLightedImageDataId=""}this.isCrossIconVisible=!1}deleteImage(){this.highLightedImageDataId&&(this.document.blocks=this.document.blocks.filter(t=>t.dataId!==this.highLightedImageDataId),this.highLightedImageDataId="",this.isImageHighlighted=!1,this.clearImageStyling(),this.document.emit("documentChanged",this))}}class x{constructor(t,e){this.snapshotUndoStack=[],this.snapshotRedoStack=[],this.maxSnapshots=5e3,this.document=t,this.editorView=e}createSnapshot(){const[t,e]=l(this.editorView);return{blocks:JSON.parse(JSON.stringify(this.document.blocks)),dataIds:[...this.document.dataIds],selectedBlockId:this.document.selectedBlockId,currentOffset:this.document.currentOffset,selection:this.getCurrentSelection(),cursorPosition:t}}getCurrentSelection(){const t=i(this.document.editorView.container);return t?{start:t.start,end:t.end}:{start:0,end:0}}saveUndoSnapshot(){const t=this.createSnapshot();console.log("Saving snapshot:",t.cursorPosition,"Stack length:",this.snapshotUndoStack.length),this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift(),this.snapshotRedoStack=[]}restoreSnapshot(t){this.document.blocks=t.blocks,this.document.dataIds=t.dataIds,this.document._selectedBlockId=t.selectedBlockId,this.document.currentOffset=t.currentOffset;for(let t of this.document.blocks)t.pieces&&Array.isArray(t.pieces)&&(t.pieces=t.pieces.map(t=>new n(t.text,t.attributes)));this.document.emit("documentChanged",this.document),setTimeout(()=>{this.document.setCursorPosition(t.cursorPosition||0)},0)}undo(){if(console.log("UNDO - Undo stack length:",this.snapshotUndoStack.length),console.log("UNDO - Redo stack length:",this.snapshotRedoStack.length),0===this.snapshotUndoStack.length)return;const t=this.createSnapshot();this.snapshotRedoStack.push(t),this.snapshotRedoStack.length>this.maxSnapshots&&this.snapshotRedoStack.shift();const e=this.snapshotUndoStack.pop();e&&(console.log("UNDO - Restoring cursor position:",e.cursorPosition),this.restoreSnapshot(e))}redo(){if(0===this.snapshotRedoStack.length)return;const t=this.createSnapshot();this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift();const e=this.snapshotRedoStack.pop();e&&this.restoreSnapshot(e)}}class I extends e{constructor(t){super(),this.container=t,this.setupButtons()}setupButtons(){this.container.addEventListener("mousedown",t=>{t.preventDefault()}),this.container.addEventListener("click",t=>{const e=t.target.closest("button");if(e){const t=e.getAttribute("data-action");t&&this.emit("popupAction",t)}})}show(t){const e=t.getRangeAt(0).getBoundingClientRect();if(0===e.width&&0===e.height)return void this.hide();this.container.style.display="flex";const n=this.container.offsetWidth,s=this.container.offsetHeight;let i=e.top+window.scrollY-s-8,o=e.left+window.scrollX+e.width/2-n/2;i{const n=e.getAttribute("data-action");let s=!1;"bold"===n&&t.bold&&(s=!0),"italic"===n&&t.italic&&(s=!0),"underline"===n&&t.underline&&(s=!0),"strikethrough"===n&&t.strikethrough&&(s=!0),"hyperlink"===n&&t.hyperlink&&(s=!0),e.classList.toggle("active",s)})}}class E{constructor(){this.linkElement=null,this.createPopup()}setCallbacks(t,e){this.onOpenClick=t,this.onUnlinkClick=e}createPopup(){this.popup=document.createElement("div"),this.popup.className="link-popup",this.popup.style.cssText="\n position: absolute;\n background: #000;\n border-radius: 4px;\n padding: 2px;\n box-shadow: 0 1px 4px rgba(0,0,0,0.5);\n z-index: 1000;\n ",this.popup.style.display="none";const t=this.createButton("Open","🔗"),e=this.createButton("Unlink","✕");t.addEventListener("click",()=>this.handleOpenClick()),e.addEventListener("click",()=>this.handleUnlinkClick()),this.popup.appendChild(t),this.popup.appendChild(e),document.body.appendChild(this.popup)}createButton(t,e){const n=document.createElement("button");return n.innerHTML=`${e}`,n.title=t,n.style.cssText="\n background: transparent;\n color: white;\n border: none;\n padding: 4px;\n margin: 0 1px;\n border-radius: 2px;\n cursor: pointer;\n font-size: 16px;\n transition: background 0.1s;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n ",n.addEventListener("mouseenter",()=>{n.style.background="#333"}),n.addEventListener("mouseleave",()=>{n.style.background="transparent"}),n}handleOpenClick(){this.linkElement&&this.onOpenClick&&this.onOpenClick(this.linkElement.href)}handleUnlinkClick(){this.onUnlinkClick&&this.linkElement&&this.onUnlinkClick(this.linkElement)}show(t,e,n){this.linkElement=t;const s=t.getBoundingClientRect();this.popup.style.left=`${s.left+window.scrollX}px`,this.popup.style.top=`${s.bottom+window.scrollY+5}px`,this.popup.style.display="flex",this.popup.style.opacity="0",this.popup.style.transform="translateY(-2px)",requestAnimationFrame(()=>{this.popup.style.transition="opacity 0.1s ease-in-out, transform 0.1s ease-in-out",this.popup.style.opacity="1",this.popup.style.transform="translateY(0)"})}hide(){"none"!==this.popup.style.display&&(this.popup.style.transition="opacity 0.1s ease-in-out, transform 0.1s ease-in-out",this.popup.style.opacity="0",this.popup.style.transform="translateY(-2px)",setTimeout(()=>{this.popup.style.display="none",this.popup.style.transition=""},100))}isPopup(t){return this.popup.contains(t)}isVisible(){return"none"!==this.popup.style.display}}class w{constructor(t,e,n,s){this.isRecording=!1,this.silenceTimer=null,this.document=t,this.editorView=e,this.onStateChange=n,this.insertText=s;const i=window.SpeechRecognition||window.webkitSpeechRecognition;i?(this.recognition=new i,this.recognition.continuous=!0,this.recognition.interimResults=!1,this.recognition.onresult=t=>{const e=t.results[t.results.length-1];if(e.isFinal){const t=e[0].transcript+" ";this.insertText(t)}},this.recognition.onerror=t=>{console.error("Speech recognition error:",t.error),"no-speech"!==t.error&&this.stopRecording()},this.recognition.onend=()=>{this.stopRecording()}):console.warn("Speech Recognition API not supported in this browser.")}toggleRecording(){this.isRecording?this.stopRecording():this.startRecording()}startRecording(){if(this.recognition)try{this.recognition.start(),this.isRecording=!0,this.onStateChange(!0)}catch(t){console.error("Failed to start speech recognition:",t)}}stopRecording(){if(this.recognition&&this.isRecording){try{this.recognition.stop()}catch(t){console.warn("Some problem occur during the stop recording . . . ",t)}this.isRecording=!1,this.onStateChange(!1),this.silenceTimer&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}}}class _{constructor(t,e){this.modal=null,this.activeTable=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openTableModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement("div");t.className="table_modal",t.id="table_modal";const e=document.createElement("div");e.className="main_modal",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-label","Insert Table");const n=document.createElement("div");n.className="main_modal_header";const s=document.createElement("h3");s.className="main_modal_title",s.textContent="Insert Table";const i=document.createElement("button");i.className="main_modal_close",i.setAttribute("aria-label","Close"),i.innerHTML=f.close_icon,i.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(i);const o=document.createElement("div");o.className="main_modal_body";const l=document.createElement("div");l.className="main_modal_inputs";const a=document.createElement("div");a.className="all_input";const r=document.createElement("label");r.textContent="Rows",r.className="input_label",r.setAttribute("for","modal_input_row");const d=document.createElement("input");d.type="number",d.id="modal_input_row",d.className="modal_inputs",d.placeholder="Enter the row number 1 to 20",d.min="1",d.max="20",d.value="3",a.appendChild(r),a.appendChild(d);const c=document.createElement("div");c.className="all_input";const h=document.createElement("label");h.textContent="Columns",h.className="input_label",h.setAttribute("for","modal_input_col");const u=document.createElement("input");u.type="number",u.id="modal_input_col",u.className="modal_inputs",u.placeholder="Enter the coloumn number 1 to 20",u.min="1",u.max="20",u.value="3",c.appendChild(h),c.appendChild(u),l.appendChild(a),l.appendChild(c);const p=document.createElement("div");p.className="main_modal_footer";const m=document.createElement("button");m.className="modal_close_button modal_close_button_secondary",m.textContent="Cancel",m.type="button",m.onclick=()=>this.closeModal();const g=document.createElement("button");g.className="modal_close_button modal_close_button_primary",g.textContent="Insert Table",g.type="button",g.onclick=()=>{const t=Math.max(1,Math.min(20,parseInt(d.value)||3)),e=Math.max(1,Math.min(20,parseInt(u.value)||3));this.insertTable(t,e),this.closeModal()},p.appendChild(m),p.appendChild(g),o.appendChild(l),e.appendChild(n),e.appendChild(o),e.appendChild(p),t.appendChild(e),t.addEventListener("click",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add("table_modal_visible")})}closeModal(){this.modal&&(this.modal.classList.remove("table_modal_visible"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertTable(t,e){const s=`data-id-${Date.now()}`,i=`data-id-${Date.now()+1}`,o=document.createElement("div");o.className="table_wrapper",o.setAttribute("data-type","tbl"),o.setAttribute("data-id",s),o.setAttribute("contenteditable","false");const l=document.createElement("div");l.className="table_controls";const a=document.createElement("button");a.className="table_delete_button",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))},l.appendChild(a),o.appendChild(l);const r=document.createElement("table");r.className="tbl";const d=document.createElement("thead"),c=document.createElement("tr");for(let t=0;tt.dataId===this.document.selectedBlockId);-1!==t&&(u=t+1)}const p={dataId:s,type:"table",element:o},m={dataId:i,type:"text",class:"paragraph-block",pieces:[new n("​",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(u,0,p,m),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit("documentChanged",this.document),setTimeout(()=>{const t=o.querySelector(".tblCell");t&&(t.focus(),this.setActiveTable(o.querySelector("table")))},0)}setupCellEvents(t){t.addEventListener("focus",()=>{const e=t.closest("table");e&&this.setActiveTable(e),t.classList.add("tblCell_focused")}),t.addEventListener("blur",()=>{t.classList.remove("tblCell_focused")}),t.addEventListener("keydown",e=>{var n;const s=e;if("Tab"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest("table"))||void 0===n?void 0:n.querySelectorAll(".tblCell"))||[]),i=e.indexOf(t);if(s.shiftKey)i>0&&(e[i-1].focus(),this.selectAllInCell(e[i-1]));else if(i{e!==t&&e.classList.remove("tbl_active")}),t.classList.add("tbl_active"),this.activeTable=t}clearTableActive(){this.activeTable&&(this.activeTable.classList.remove("tbl_active"),this.activeTable=null)}setupClickOutsideListener(){document.addEventListener("click",t=>{const e=t.target,n=null!==e.closest(".table_wrapper"),s=null!==e.closest("#table_modal");n||s||this.clearTableActive()},!0),document.addEventListener("focusin",t=>{t.target.closest(".table_wrapper")||this.clearTableActive()},!0)}}const T=[{label:"Smileys & People",items:[{char:"😀",name:"grinning face",shortcode:":grinning:"},{char:"😃",name:"big eyes smile",shortcode:":smiley:"},{char:"😄",name:"smiling eyes grin",shortcode:":smile:"},{char:"😁",name:"beaming grin",shortcode:":grin:"},{char:"😆",name:"squinting laugh",shortcode:":laughing:"},{char:"😅",name:"sweat smile",shortcode:":sweat_smile:"},{char:"🤣",name:"rolling floor laughing",shortcode:":rofl:"},{char:"😂",name:"tears of joy",shortcode:":joy:"},{char:"🙂",name:"slightly smiling",shortcode:":slightly_smiling_face:"},{char:"😊",name:"smiling eyes blush",shortcode:":blush:"}]}],L="recent_emojies";class A{constructor(){this.isOpen=!1,this.popup=this.buildPopup(),this.gridArea=this.popup.querySelector(".emoji_grid"),this.searchInput=this.popup.querySelector(".emoji_serch"),document.body.appendChild(this.popup),document.addEventListener("mousedown",t=>{if(this.isOpen&&!this.popup.contains(t.target)){t.target.closest('[data-action="emoji"]')||this.close()}})}onSelect(t){this.onSelectCallback=t}open(t){const e=t.getBoundingClientRect();let n=e.left+window.scrollX;n+320>window.innerWidth-8&&(n=window.innerWidth-320-8);const s=e.bottom+window.scrollY+4;this.popup.style.left=`${n}px`,this.popup.style.top=`${s}px`,this.popup.style.display="flex",this.isOpen=!0,this.searchInput.value="",this.renderGrid("")}close(){this.popup.style.display="none",this.isOpen=!1}getIsOpen(){return this.isOpen}buildPopup(){const t=document.createElement("div");t.style.cssText="\n position: absolute;\n display: none;\n flex-direction: column;\n width: 320px;\n max-height: 380px;\n background: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 10px;\n box-shadow: 0 6px 24px rgba(0,0,0,0.14);\n z-index: 9999;\n overflow: hidden;\n font-family: system-ui, -apple-system, sans-serif;\n ";const e=document.createElement("div");e.style.cssText="\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fafafa;\n ";const n=document.createElement("input");n.type="text",n.placeholder="🔍 Search emojis or :shortcode:",n.className="emoji_serch",n.style.cssText="\n flex: 1;\n padding: 6px 10px;\n border: 1px solid #ccc;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n background: #fff;\n ",n.addEventListener("input",()=>this.renderGrid(n.value.trim())),e.appendChild(n);const s=document.createElement("div");return s.className="emoji_grid",s.style.cssText="\n flex: 1;\n overflow-y: auto;\n padding: 10px 12px 12px;\n ",t.appendChild(e),t.appendChild(s),t}getRecentEmojis(){try{const t=localStorage.getItem(L);return t?JSON.parse(t):[]}catch(t){return[]}}saveRecentEmoji(t){const e=this.getRecentEmojis().filter(e=>e.char!==t.char);e.unshift(t),e.length>24&&(e.length=24);try{localStorage.setItem(L,JSON.stringify(e))}catch(t){console.error("Problem occur in saving emojies",t)}}resolveChar(t){return t.char}renderGrid(t){this.gridArea.innerHTML="";const e=t.toLowerCase().replace(/^:/,"").replace(/:$/,""),n=(t,e)=>{if(!e.length)return;const n=document.createElement("div");n.style.marginBottom="12px";const s=document.createElement("div");s.textContent=t,s.style.cssText="\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 6px;\n ",n.appendChild(s);const i=document.createElement("div");i.style.cssText="\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 2px;\n ",e.forEach(t=>{const e=this.resolveChar(t),n=document.createElement("button");n.textContent=e,n.title=`${t.name} ${t.shortcode}`,n.style.cssText="\n font-size: 20px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 5px;\n padding: 4px;\n line-height: 1.2;\n transition: background 0.1s;\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n ",n.addEventListener("mouseenter",()=>n.style.background="#f0f0f0"),n.addEventListener("mouseleave",()=>n.style.background="transparent"),n.addEventListener("mousedown",n=>{var s;n.preventDefault(),this.saveRecentEmoji(t),null===(s=this.onSelectCallback)||void 0===s||s.call(this,e)}),i.appendChild(n)}),n.appendChild(i),this.gridArea.appendChild(n)};if(e){const t=[];T.forEach(n=>{n.items.forEach(n=>{(n.name.includes(e)||n.shortcode.includes(e))&&t.push(n)})}),n(`Results for "${e}"`,t)}else{const t=this.getRecentEmojis();n("Recently Used",t),T.forEach(t=>n(t.label,t.items))}if(!this.gridArea.querySelector("button")){const t=document.createElement("div");t.textContent="No emojis found",t.style.cssText="text-align: center; color: #aaa; padding: 24px 0; font-size: 13px;",this.gridArea.appendChild(t)}}}class S{constructor(){this.currentLanguage="",this.onSaveCallback=null,this.onCloseCallback=null,this.container=document.createElement("div"),this.container.className="code_editor_modal",this.container.style.display="none";const t=document.createElement("div");t.className="code_editor_modal_content";const e=document.createElement("div");e.className="code_editor_modal_header";const n=document.createElement("span");n.className="code_editor_modal_title";const s=document.createElement("div");s.className="code_editor_modal_actions",this.copyBtn=document.createElement("button"),this.copyBtn.className="copy_editor_btn",this.copyBtn.innerText="Copy",this.copyBtn.onclick=()=>this.handleCopy(),this.saveBtn=document.createElement("button"),this.saveBtn.className="copy_editor_btn copy_editor_btn--primary",this.saveBtn.innerText="Save",this.saveBtn.onclick=()=>this.handleSave(),this.cancelBtn=document.createElement("button"),this.cancelBtn.className="copy_editor_btn copy_editor_btn--cancel",this.cancelBtn.innerText="Cancel",this.cancelBtn.onclick=()=>this.handleClose(),s.appendChild(this.copyBtn),s.appendChild(this.saveBtn),s.appendChild(this.cancelBtn),e.appendChild(n),e.appendChild(s);const i=document.createElement("div");i.className="editor_moal_wrapper",this.lineNumbers=document.createElement("div"),this.lineNumbers.className="editor_moal_line_number",this.pre=document.createElement("pre"),this.pre.className="editor_modal_pre_block",this.pre.setAttribute("aria-hidden","true"),this.codeHighlight=document.createElement("code"),this.codeHighlight.className="modal_editor_highlight",this.pre.appendChild(this.codeHighlight),this.textArea=document.createElement("textarea"),this.textArea.className="modal_editor_text_area",this.textArea.spellcheck=!1,i.appendChild(this.lineNumbers),i.appendChild(this.pre),i.appendChild(this.textArea),t.appendChild(e),t.appendChild(i),this.container.appendChild(t),document.body.appendChild(this.container),this.attachEventListeners()}attachEventListeners(){this.textArea.addEventListener("input",()=>{this.syncHighlight()}),this.textArea.addEventListener("scroll",()=>{this.pre.scrollTop=this.textArea.scrollTop,this.pre.scrollLeft=this.textArea.scrollLeft,this.lineNumbers.scrollTop=this.textArea.scrollTop}),this.textArea.addEventListener("keydown",t=>{if("Tab"===t.key){t.preventDefault();const e=this.textArea.selectionStart,n=this.textArea.selectionEnd;this.textArea.value=this.textArea.value.substring(0,e)+" "+this.textArea.value.substring(n),this.textArea.selectionStart=this.textArea.selectionEnd=e+2,this.syncHighlight()}}),this.container.addEventListener("click",t=>{t.target===this.container&&this.handleClose()})}syncHighlight(){const t=this.textArea.value.replace(/&/g,"&").replace(//g,">");this.codeHighlight.innerHTML=t+"\n"}handleCopy(){navigator.clipboard.writeText(this.textArea.value).then(()=>{const t=this.copyBtn.innerText;this.copyBtn.innerText="Copied!",setTimeout(()=>this.copyBtn.innerText=t,2e3)})}handleSave(){this.onSaveCallback&&this.onSaveCallback(this.textArea.value),this.close()}handleClose(){this.onCloseCallback&&this.onCloseCallback(),this.close()}open(t,e,n,s){this.currentLanguage=e,this.onSaveCallback=n,this.onCloseCallback=s;this.container.querySelector(".code_editor_modal_title").innerText=e||"text",this.textArea.value=t,this.syncHighlight(),this.container.style.display="flex",setTimeout(()=>this.textArea.focus(),50)}close(){this.container.style.display="none",this.textArea.value="",this.currentLanguage=""}}class R{constructor(t,e){this.modal=null,this.activeLayout=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openLayoutModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement("div");t.className="table_modal",t.id="layout_modal";const e=document.createElement("div");e.className="main_modal layout_main_modal",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-label","Insert Layout");const n=document.createElement("div");n.className="main_modal_header";const s=document.createElement("h3");s.className="main_modal_title",s.textContent="Insert Layout";const i=document.createElement("button");i.className="main_modal_close",i.setAttribute("aria-label","Close"),i.innerHTML=f.close_icon,i.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(i);const o=document.createElement("div");o.className="main_modal_body";const l=document.createElement("label");l.textContent="Preset Splits",l.className="input_label",l.style.display="block",l.style.marginBottom="8px";const a=document.createElement("div");a.style.display="flex",a.style.flexWrap="wrap",a.style.gap="8px",a.style.marginBottom="16px";[{label:"Single",cols:1,widths:[100]},{label:"50 - 50",cols:2,widths:[50,50]},{label:"60 - 40",cols:2,widths:[60,40]},{label:"40 - 60",cols:2,widths:[40,60]},{label:"33 - 33 - 33",cols:3,widths:[33.33,33.33,33.33]},{label:"25 - 50 - 25",cols:3,widths:[25,50,25]}].forEach(t=>{const e=document.createElement("button");e.className="modal_close_button modal_close_button_secondary",e.style.padding="4px 8px",e.style.fontSize="12px",e.textContent=t.label,e.onclick=()=>{this.insertLayout(t.cols,t.widths),this.closeModal()},a.appendChild(e)});const r=document.createElement("label");r.textContent="Or Custom Splits (comma separated %)",r.className="input_label",r.style.display="block",r.style.marginBottom="8px";const d=document.createElement("input");d.type="text",d.className="modal_inputs",d.placeholder="e.g. 20, 60, 20",d.style.width="100%",o.appendChild(l),o.appendChild(a),o.appendChild(r),o.appendChild(d);const c=document.createElement("div");c.className="main_modal_footer";const h=document.createElement("button");h.className="modal_close_button modal_close_button_secondary",h.textContent="Cancel",h.type="button",h.onclick=()=>this.closeModal();const u=document.createElement("button");u.className="modal_close_button modal_close_button_primary",u.textContent="Insert Custom",u.type="button",u.onclick=()=>{const t=d.value.trim();if(t){const e=t.split(",").map(t=>parseFloat(t.trim())).filter(t=>!isNaN(t));if(e.length>0){const t=e.reduce((t,e)=>t+e,0),n=e.map(e=>e/t*100);this.insertLayout(n.length,n)}else this.insertLayout(2,[50,50])}else this.insertLayout(2,[50,50]);this.closeModal()},c.appendChild(h),c.appendChild(u),e.appendChild(n),e.appendChild(o),e.appendChild(c),t.appendChild(e),t.addEventListener("click",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add("table_modal_visible")})}closeModal(){this.modal&&(this.modal.classList.remove("table_modal_visible"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertLayout(t,e){const s=`data-id-${Date.now()}`,i=`data-id-${Date.now()+1}`,o=document.createElement("div");o.className="layout_wrapper",o.setAttribute("data-type","layout"),o.setAttribute("data-id",s),o.setAttribute("contenteditable","false");const l=document.createElement("div");l.className="table_controls";const a=document.createElement("button");a.className="table_delete_button",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))},l.appendChild(a),o.appendChild(l);const r=document.createElement("div");r.className="layout_container",r.style.display="flex",r.style.width="100%",r.style.gap="10px";for(let n=0;nt.dataId===this.document.selectedBlockId);-1!==t&&(d=t+1)}const c={dataId:s,type:"layout",element:o},h={dataId:i,type:"text",class:"paragraph-block",pieces:[new n("​",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(d,0,c,h),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit("documentChanged",this.document),setTimeout(()=>{const t=o.querySelector(".layout_column");t&&(t.focus(),this.setActiveLayout(o.querySelector(".layout_container")))},0)}setupCellEvents(t){t.addEventListener("focus",()=>{const e=t.closest(".layout_container");e&&this.setActiveLayout(e),t.classList.add("tblCell_focused")}),t.addEventListener("blur",()=>{t.classList.remove("tblCell_focused")}),t.addEventListener("keydown",e=>{var n;const s=e;if("Tab"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(".layout_container"))||void 0===n?void 0:n.querySelectorAll(".layout_column"))||[]),i=e.indexOf(t);if(s.shiftKey)i>0&&(e[i-1].focus(),this.selectAllInCell(e[i-1]));else if(i{e!==t&&e.classList.remove("layout_active")}),t.classList.add("layout_active"),this.activeLayout=t}clearLayoutActive(){this.activeLayout&&(this.activeLayout.classList.remove("layout_active"),this.activeLayout=null)}setupClickOutsideListener(){document.addEventListener("click",t=>{const e=t.target,n=null!==e.closest(".layout_wrapper"),s=null!==e.closest("#layout_modal");n||s||this.clearLayoutActive()},!0),document.addEventListener("focusin",t=>{t.target.closest(".layout_wrapper")||this.clearLayoutActive()},!0)}}class B{constructor(t,e){this.modal=null,this.isKatexLoaded=!1,this.editingBlockId=null,this.editor=t,this.document=e,this.loadKatex()}loadKatex(){if("undefined"!=typeof katex)return void(this.isKatexLoaded=!0);if(document.getElementById("katex-js"))return;const t=document.createElement("link");t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css",document.head.appendChild(t);const e=document.createElement("script");e.id="katex-js",e.src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js",e.onload=()=>{this.isKatexLoaded=!0},document.head.appendChild(e)}openMathModal(t="",e=null){if(!this.isKatexLoaded)return void alert("Math rendering engine is still loading. Please try again in a moment.");this.editingBlockId=e,this.modal&&(this.modal.remove(),this.modal=null);const n=document.createElement("div");n.className="table_modal",n.id="math_modal";const s=document.createElement("div");s.className="main_modal",s.setAttribute("role","dialog"),s.setAttribute("aria-modal","true"),s.setAttribute("aria-label","Insert Equation"),s.style.width="400px",s.style.height="390px",s.style.maxHeight="90vh",s.style.position="fixed",s.style.top="90px",s.style.right="-90px",s.style.margin="0";const i=document.createElement("div");i.className="main_modal_header";const o=document.createElement("h3");o.className="main_modal_title",o.textContent=this.editingBlockId?"Edit Equation":"Insert Equation";const l=document.createElement("button");l.className="main_modal_close",l.setAttribute("aria-label","Close"),l.innerHTML=f.close_icon,l.onclick=()=>this.closeModal(),i.appendChild(o),i.appendChild(l);const a=document.createElement("div");a.className="main_modal_body";const r=document.createElement("label");r.textContent="LaTeX Input:",r.className="input_label",r.style.display="block",r.style.marginBottom="8px";const d=document.createElement("textarea");d.className="modal_inputs",d.style.width="100%",d.style.height="80px",d.style.resize="vertical",d.placeholder="e.g. c = \\pm\\sqrt{a^2 + b^2}",d.value=t;const c=document.createElement("label");c.textContent="Preview:",c.className="input_label",c.style.display="block",c.style.marginTop="16px",c.style.marginBottom="8px";const h=document.createElement("div");h.style.padding="10px",h.style.border="1px solid #ccc",h.style.borderRadius="4px",h.style.minHeight="50px",h.style.display="flex",h.style.alignItems="center",h.style.justifyContent="center",h.style.overflowX="auto";const u=()=>{try{katex.render(d.value||"Preview",h,{throwOnError:!1})}catch(t){console.error("error",t),h.textContent="Invalid LaTeX"}};d.addEventListener("input",u),a.appendChild(r),a.appendChild(d),a.appendChild(c),a.appendChild(h);const p=document.createElement("div");p.className="main_modal_footer";const m=document.createElement("button");m.className="modal_close_button modal_close_button_secondary",m.textContent="Cancel",m.type="button",m.onclick=()=>this.closeModal();const g=document.createElement("button");g.className="modal_close_button modal_close_button_primary",g.textContent="Apply Equation",g.type="button",g.onclick=()=>{d.value.trim()&&this.insertEquation(d.value.trim()),this.closeModal()},p.appendChild(m),p.appendChild(g),s.appendChild(i),s.appendChild(a),s.appendChild(p),n.appendChild(s),n.addEventListener("click",t=>{t.target===n&&this.closeModal()}),document.body.appendChild(n),this.modal=n,requestAnimationFrame(()=>{n.classList.add("table_modal_visible"),d.focus(),u()})}closeModal(){this.modal&&(this.modal.classList.remove("table_modal_visible"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null,this.editingBlockId=null},200))}insertEquation(t){const e=katex.renderToString(t,{output:"mathml"});if(this.editingBlockId){const n=this.document.blocks.find(t=>t.dataId===this.editingBlockId);if(n&&n.element){const s=n.element.querySelector(".math_node");s&&(s.innerHTML=e,s.dataset.latex=t)}return void this.document.emit("documentChanged",this.document)}const s=`data-id-${Date.now()}`,i=document.createElement("div");i.setAttribute("data-id",s),i.setAttribute("contenteditable","false"),i.style.display="inline-flex",i.style.alignItems="center",i.style.gap="6px",i.style.margin="4px",i.style.cursor="pointer",i.style.position="relative";const o=document.createElement("button");o.className="table_delete_button",o.innerHTML=f.close_icon,o.style.cursor="pointer",o.style.opacity="0",o.style.transition="opacity 0.2s",i.onmouseenter=()=>{o.style.opacity="1"},i.onmouseleave=()=>{o.style.opacity="0"},o.onclick=t=>{t.stopPropagation();const e=this.document.blocks.findIndex(t=>t.dataId===s);-1!==e&&(this.document.blocks.splice(e,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))};const l=document.createElement("span");l.className="math_node",l.dataset.latex=t,l.innerHTML=e,i.onclick=e=>{e.stopPropagation(),this.openMathModal(t,s)},i.appendChild(l),i.appendChild(o);let a=this.document.blocks.length;if(this.document.selectedBlockId){const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);-1!==t&&(a=t+1)}const r={dataId:s,type:"math",element:i},d={dataId:`data-id-${Date.now()+1}`,type:"text",class:"paragraph-block",pieces:[new n("​",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(a,0,r,d),this.document.selectedBlockId=d.dataId,this.document.currentOffset=0,this.document.emit("documentChanged",this.document)}}class O{constructor(t){this.isSpeaking=!1,this.synth=window.speechSynthesis,this.onStateChange=t}getHindiVoice(){return this.synth.getVoices().find(t=>"Google हिन्दी"===t.name||"hi-IN"===t.lang)||null}speak(t){if(!t||""===t.trim())return;this.synth.speaking&&this.synth.cancel();const e=new SpeechSynthesisUtterance(t),n=this.getHindiVoice();n&&(e.voice=n,e.lang="hi-IN"),e.onstart=()=>{this.isSpeaking=!0,this.onStateChange(!0)},e.onend=()=>{this.isSpeaking=!1,this.onStateChange(!1)},e.onerror=()=>{this.isSpeaking=!1,this.onStateChange(!1)},this.synth.speak(e)}stop(){this.synth.speaking&&(this.synth.cancel(),this.isSpeaking=!1,this.onStateChange(!1))}toggle(t){this.isSpeaking?this.stop():this.speak(t)}}class N extends e{constructor(t,e){var i,o,l,d,g,b,y,T,L,N,H,M,P,D;super(),this.savedSelection=null,this.debounceTimer=null;const{mainEditorId:z,toolbarId:V,popupToolbarId:F}=C(t,e);this.editorContainer=document.getElementById(z)||null,this.toolbarContainer=document.getElementById(V)||null;const j=document.getElementById(F)||null;if(!this.editorContainer||!this.toolbarContainer||!j)throw new Error("Editor element not found or incorrect element type.");this.document=new s,this.editorView=new c(this.editorContainer,this.document),this.toolbarView=new h(this.toolbarContainer),this.popupToolbarView=new I(j),this.linkPopupView=new E,this.hyperlinkHandler=new p(this.editorContainer,this.editorView,this.document),this.imageHandler=new v(this.editorContainer,this.document),this.undoRedoManager=new x(this.document,this.editorView),this.editorView.setImageHandler(this.imageHandler),this.imageHandler.setEditorView(this.editorView),this.document.setEditorView(this.editorView),this.document.setUndoRedoManager(this.undoRedoManager),this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager),this.linkPopupView.setCallbacks(t=>this.openLink(t),t=>this.unlinkText(t)),this.insertTableHandler=new _(this.editorView.container,this.document),this.insertLayoutHandler=new R(this.editorView.container,this.document),this.insertMathHandler=new B(this.editorView.container,this.document),this.textToSpeechHandler=new O(t=>{const e=document.getElementById("textToSpeech");e&&(e.innerHTML=t?f.speaker_off:f.speaker_on,e.dataset.tooltip=t?"stop Reading":"start Reading")}),this.speechToTextHandler=new w(this.document,this.editorView,t=>{const e=document.getElementById("speechToText");e&&(e.innerHTML=t?f.stop_microphone:f.start_microphone,e.dataset.tooltip=t?"stop":"start")},t=>{const[e,n]=this.getSelectionRange();n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId,this.document.currentOffset);let s=e;this.document.insertAt(t,Object.assign({},this.currentAttributes),s,this.document.selectedBlockId,0,"","batch"),s+=t.length,this.setCursorPosition(s)});const U=document.getElementById("speechToText");U&&(U.innerHTML="",U.insertAdjacentHTML("afterbegin",f.start_microphone),U.dataset.tooltip="start");const q=document.getElementById("textToSpeech");q&&(q.innerHTML="",q.insertAdjacentHTML("afterbegin",f.speaker_on),q.dataset.tooltip="start Reading"),this.emojiPickerView=new A,this.codeEditorModal=new S,this.emojiPickerView.onSelect(t=>{var e,n,s,i;const o=null!==(n=null===(e=this.savedSelection)||void 0===e?void 0:e.start)&&void 0!==n?n:0,l=null!==(i=null===(s=this.savedSelection)||void 0===s?void 0:s.end)&&void 0!==i?i:o;l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset,!1),this.document.insertAt(t,Object.assign({},this.currentAttributes),o,this.document.selectedBlockId,0,"","batch");const a=o+t.length;this.savedSelection={start:a,end:a},this.setCursorPosition(a)}),this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,undo:!1,redo:!1,hyperlink:!1},this.manualOverride=!1,this.lastPiece=null,this.toolbarView.on("toolbarAction",(t,e=[])=>this.handleToolbarAction(t,e)),this.popupToolbarView.on("popupAction",t=>this.handleToolbarAction(t)),this.document.on("documentChanged",()=>{if(0===this.document.blocks.length||1===this.document.blocks.length&&this.document.blocks[0].pieces.every(t=>""===t.text.trim()||"​"===t.text)){const t=document.getElementById("loadHtmlButton");t&&(t.selectedIndex=0)}this.editorView.render()}),this.document.on("documentChanged",()=>{var t;const e=this.document.getHtmlContent();this.emit("contentChange",{html:e,text:(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||""})}),this.editorContainer.addEventListener("dblclick",t=>{const e=t.target.closest(".code_block_wrapper");if(e){t.preventDefault();const n=e.getAttribute("data-id");if(!n)return;const s=this.document.blocks.find(t=>t.dataId===n);s&&"code"===s.type&&this.codeEditorModal.open(s.code||"",s.language||"text",t=>{s.code=t,this.document.emit("documentChanged",this.document)},()=>{var t;null===(t=this.editorContainer)||void 0===t||t.focus()})}}),this.editorContainer.addEventListener("keydown",t=>{this.syncCurrentAttributesWithCursor(),this.handleKeydown(t)}),this.editorContainer.addEventListener("keyup",()=>this.syncCurrentAttributesWithCursor()),this.editorContainer.addEventListener("blur",()=>{this.hyperlinkHandler.hideHyperlinkViewButton()}),document.addEventListener("mouseup",()=>{this.syncCurrentAttributesWithCursor();const t=this.document.getAllSelectedDataIds();console.log(t,"dataId lntgerr")}),document.addEventListener("selectionchange",()=>{const t=window.getSelection();t&&!t.isCollapsed||(this.document.dataIds=[],this.document.selectAll=!1)}),null===(i=document.getElementById("fontColor"))||void 0===i||i.addEventListener("click",t=>{t.stopPropagation();const e=document.getElementById("colorWrapper"),n=document.getElementById("fontColorPicker");if(!e||!n)return;const s="block"===e.style.display;e.style.display=s?"none":"block"}),null===(o=document.getElementById("fontColorPicker"))||void 0===o||o.addEventListener("input",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),i=document.getElementById("fontColorIndicator");i&&(i.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.applyFontColor(i,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyFontColor(n,s,e)},300))}),null===(l=document.getElementById("colorResetFont"))||void 0===l||l.addEventListener("click",()=>{const t=document.getElementById("fontColorPicker"),e=document.getElementById("fontColorIndicator");t&&(t.value="#000000",e&&(e.style.backgroundColor="#000000"),t.dispatchEvent(new Event("input")))}),document.addEventListener("click",t=>{var e;const n=t.target,s=document.getElementById("colorWrapper"),i=document.getElementById("colorBgWrapper"),o=document.getElementById("fontColor"),l=document.getElementById("bgColor");!s||n.closest("#colorWrapper")||n===o||(null==o?void 0:o.contains(n))||(s.style.display="none"),!i||n.closest("#colorBgWrapper")||n===l||(null==l?void 0:l.contains(n))||(i.style.display="none"),(null===(e=this.editorContainer)||void 0===e?void 0:e.contains(n))||n.closest(".hyperlink-popup")||this.hyperlinkHandler.hideHyperlinkViewButton()}),null===(d=document.getElementById("bgColor"))||void 0===d||d.addEventListener("click",t=>{t.stopPropagation();const e=document.getElementById("colorBgWrapper"),n=document.getElementById("bgColorPicker");if(!e||!n)return;const s="block"===e.style.display;e.style.display=s?"none":"block"}),null===(g=document.getElementById("bgColorPicker"))||void 0===g||g.addEventListener("input",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),i=document.getElementById("bgColorIndicator");i&&(i.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.applyBgColor(i,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyBgColor(n,s,e)},300))}),null===(b=document.getElementById("colorResetBG"))||void 0===b||b.addEventListener("click",()=>{const t=document.getElementById("bgColorPicker"),e=document.getElementById("bgColorIndicator");t&&(t.value="#ffffff",e&&(e.style.backgroundColor="#ffffff"),t.dispatchEvent(new Event("input")))}),null===(y=document.getElementById("getHtmlButton"))||void 0===y||y.addEventListener("click",t=>{const e=this.document.getHtmlContent(!0);console.log("Editor HTML Content:",e),this.htmlToJsonParser=new k(e);const n=this.htmlToJsonParser.parse();console.log("htmltoJson",JSON.stringify(n,null,2),n),this.showAcknowledgement("HTML copied to clipboard",2e3)}),null===(T=document.getElementById("loadHtmlButton"))||void 0===T||T.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target,n=e.options[e.selectedIndex].dataset.html||u.TEST_HTML_CODE;this.htmlToJsonParser=new k(n),console.log(this.htmlToJsonParser,"this.htmlToJsonParser");const s=this.htmlToJsonParser.parse();this.document.blocks=s,s.length>0&&(this.document.dataIds[0]=s[0].dataId,this.document.selectedBlockId=s[0].dataId),this.document.emit("documentChanged",this);const[i]=this.getSelectionRange();this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let n=i-e;t.fontSize&&this.document.setFontSize(n,e,t.fontSize)}}),console.log("blocks",this.document.blocks,this.document.dataIds,this.document.currentOffset),console.log("htmltoJson",JSON.stringify(s,null,2),s)}),null===(L=document.getElementById("fontFamily"))||void 0===L||L.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.setFontFamily(i,s,e)}}):this.document.setFontFamily(n,s,e)}),null===(N=document.getElementById("fontSize"))||void 0===N||N.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.setFontSize(i,s,e)}}):this.document.setFontSize(n,s,e)}),null===(H=document.getElementById("heading"))||void 0===H||H.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value||null;if(this.document.dataIds.length>1)this.document.toggleHeadingForMultipleBlocks(this.document.dataIds,e);else{const t=this.document.selectedBlockId||this.document.dataIds[0];t&&this.document.toggleHeading(t,e)}}),null===(M=document.getElementById("alignLeft"))||void 0===M||M.addEventListener("click",()=>{console.log("alignment alignLeft",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment("left",t))}),null===(P=document.getElementById("alignCenter"))||void 0===P||P.addEventListener("click",()=>{console.log("alignment alignCenter",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment("center",t))}),null===(D=document.getElementById("alignRight"))||void 0===D||D.addEventListener("click",()=>{console.log("alignment alignRight",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment("right",t))}),this.editorContainer.addEventListener("keydown",t=>{if((t.ctrlKey||t.metaKey)&&!t.altKey){const e=t.key.toLowerCase();if(["b","i","u","h"].includes(e)){t.preventDefault();let n="b";switch(e){case"b":n="bold";break;case"i":n="italic";break;case"u":n="underline";break;case"h":n="hyperlink"}this.handleToolbarAction(n)}if("z"===e?(t.preventDefault(),this.undoRedoManager.undo()):"y"===e&&(t.preventDefault(),this.undoRedoManager.redo()),"a"===e){const t=this.document.handleCtrlASelection();this.document.selectAll=!0,console.log("Selected text is inside element with data-id:",t)}"l"===t.key?(t.preventDefault(),this.document.setAlignment("left",this.document.selectedBlockId)):"e"===t.key?(t.preventDefault(),this.document.setAlignment("center",this.document.selectedBlockId)):"r"===t.key&&(t.preventDefault(),this.document.setAlignment("right",this.document.selectedBlockId))}}),document.addEventListener("selectionchange",this.handleSelectionChange.bind(this)),this.editorContainer.addEventListener("click",t=>{const e=t.target;if("A"===e.tagName||e.closest("a")){t.preventDefault(),t.stopPropagation();const n="A"===e.tagName?e:e.closest("a");this.showLinkPopup(n,t.clientX,t.clientY)}else this.hideLinkPopup()}),document.addEventListener("click",t=>{this.linkPopupView.isPopup(t.target)||this.hideLinkPopup()}),this.document.emit("documentChanged",this.document),this.editorContainer.addEventListener("paste",t=>{var e,s;this.undoRedoManager.saveUndoSnapshot(),t.preventDefault();const i=null===(e=t.clipboardData)||void 0===e?void 0:e.getData("text/html"),[o,l]=this.getSelectionRange();l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset);let d=[];if(i)d=m(i);else{const e=function(t){const e=[];let n,s=0;for(;null!==(n=a.exec(t));){const i=n.index;let o=n[0],l="";const a=o.match(/[.,!?;:)\]\}"']+$/);if(a&&(l=a[0],o=o.slice(0,-l.length)),r(t,i))continue;i>s&&e.push({text:t.substring(s,i),isUrl:!1});let d=o;d.startsWith("http")||(d="https://"+d),e.push({text:o,isUrl:!0,url:d}),l&&e.push({text:l,isUrl:!1}),s=i+n[0].length}return st.isUrl&&t.url?new n(t.text,Object.assign(Object.assign({},this.currentAttributes),{hyperlink:t.url})):new n(t.text,Object.assign({},this.currentAttributes)))}let c=o;for(const t of d)this.document.insertAt(t.text,Object.assign({},t.attributes),c,this.document.selectedBlockId,0,"","batch"),c+=t.text.length;this.setCursorPosition(c)}),this.editorContainer.addEventListener("dragover",t=>{t.preventDefault()}),this.editorContainer.addEventListener("drop",t=>{var e,s;t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const i=null===(e=t.dataTransfer)||void 0===e?void 0:e.getData("text/html"),[o,l]=this.getSelectionRange();l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset);let a=[];if(i)a=m(i);else{const e=(null===(s=t.dataTransfer)||void 0===s?void 0:s.getData("text/plain"))||"";a=[new n(e,Object.assign({},this.currentAttributes))]}let r=o;for(const t of a)this.document.insertAt(t.text,Object.assign({},t.attributes),r,this.document.selectedBlockId,0,"","batch"),r+=t.text.length;this.setCursorPosition(r)})}getSelectionRange(){const t=i(this.editorView.container);return t?[t.start,t.end]:[0,0]}applyFontColor(t){const e=window.getSelection();if(!e||0===e.rangeCount)return;e.getRangeAt(0).toString()}handleToolbarAction(t,e=[]){const[n,s]=this.getSelectionRange();switch(t){case"orderedList":if(this.document.dataIds.length>1)this.document.toggleOrderedListForMultipleBlocks(this.document.dataIds);else{const t=this.document.selectedBlockId||this.document.dataIds[0];this.document.toggleOrderedList(t)}this.document.updateOrderedListNumbers();break;case"unorderedList":this.document.dataIds.forEach(t=>{this.document.toggleUnorderedList(t)});break;case"image":this.imageHandler.insertImage();break;case"speechToText":this.speechToTextHandler.toggleRecording();break;case"insert_table":this.insertTableHandler.openTableModal();break;case"insert_layout":this.insertLayoutHandler.openLayoutModal();break;case"insert_math":this.insertMathHandler.openMathModal();break;case"emoji":this.savedSelection=i(this.editorView.container);const e=document.querySelector('[data-action="emoji"]');e.addEventListener("mousedown",t=>{t.preventDefault()}),e&&this.emojiPickerView.open(e);break;case"textToSpeech":const o=this.getTextForSpeech();if(!o)return void console.warn("Nothing to read");this.textToSpeechHandler.toggle(o);break;default:if(n1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleBoldRange(s,e)}}):this.document.toggleBoldRange(n,s);break;case"italic":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleItalicRange(s,e)}}):this.document.toggleItalicRange(n,s);break;case"underline":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleUnderlineRange(s,e)}}):this.document.toggleUnderlineRange(n,s);break;case"strikethrough":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleStrikethroughRange(s,e)}}):this.document.toggleStrikethroughRange(n,s);break;case"subscript":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSubscriptRange(s,e)}}):this.document.toggleSubscriptRange(n,s);break;case"superscript":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSuperscriptRange(s,e)}}):this.document.toggleSuperscriptRange(n,s);break;case"hyperlink":this.hyperlinkHandler.hanldeHyperlinkClick(n,s,this.document.currentOffset,this.document.selectedBlockId,this.document.blocks)}else this.currentAttributes[t]=!this.currentAttributes[t],this.manualOverride=!0}this.toolbarView.updateActiveStates(this.currentAttributes)}handleSelectionChange(){var t,e,n;const s=window.getSelection();if(!s||0===s.rangeCount||!(null===(t=this.editorContainer)||void 0===t?void 0:t.contains(s.anchorNode)))return this.hyperlinkHandler.hideHyperlinkViewButton(),void this.popupToolbarView.hide();const i=(null===(e=s.anchorNode)||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE?s.anchorNode.parentElement:s.anchorNode;if(null==i?void 0:i.closest(".tblCell"))return void this.popupToolbarView.hide();const o=document.getElementById("textToSpeech");s&&!s.isCollapsed&&s.toString().trim()?null==o||o.classList.remove("hidden"):null==o||o.classList.add("hidden");const[l]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=l,s.isCollapsed?(this.document.dataIds=[],this.document.selectAll=!1,this.popupToolbarView.hide()):(this.document.getAllSelectedDataIds(),this.document.dataIds.length===this.document.blocks.length&&this.document.blocks.length>0&&(this.document.selectAll=!0),this.popupToolbarView.show(s)),!s||0===s.rangeCount)return;s&&!0===s.isCollapsed&&(this.document.dataIds=[],this.document.selectAll=!1);const a=s.getRangeAt(0),r=(null===(n=a.startContainer.parentElement)||void 0===n?void 0:n.closest("[data-id]"))||a.startContainer;if(r instanceof HTMLElement){const t=r.getAttribute("data-id")||(a.startContainer instanceof HTMLElement?a.startContainer.getAttribute("data-id"):null);if(t){const e=this.document.blocks.find(e=>e.dataId===t);e&&"table"!==e.type&&(this.document.selectedBlockId=t)}}this.syncCurrentAttributesWithCursor()}handleKeydown(t){var e,s;const[i,o]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=i,("Enter"===t.key||" "===t.key)&&this.document.selectedBlockId){const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1!==e){const s=this.document.blocks[e];if("text"===s.type&&Array.isArray(s.pieces)){const i=s.pieces.map(t=>t.text).join("").replace(/\u200B/g,"").trim().match(/^```([a-zA-Z0-9_\-\+]*)$/);if(i){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot(),s.type="code",s.language=i[1]||"text",s.code="",s.pieces=[],s.class="code_block_wrapper";const o=`data-id-${Date.now()}`;return this.document.blocks.splice(e+1,0,{dataId:o,class:"paragraph-block",pieces:[new n("​",{fontFamily:"Arial",fontSize:"16px",fontColor:"#000000",bgColor:"#ffffff",bold:!1,italic:!1,underline:!1,strikethrough:!1})],type:"text"}),this.document.selectedBlockId=o,this.document.emit("documentChanged",this.document),void setTimeout(()=>{this.setCursorPosition(this.document.currentOffset+1,o)},0)}}}}if("Enter"===t.key){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const s=`data-id-${Date.now()}`,l=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId),a=this.document.blocks[l],r=(null===(e=null==a?void 0:a.pieces)||void 0===e?void 0:e.length)>0?a.pieces[a.pieces.length-1]:null,d=r?Object.assign({},r.attributes):{fontFamily:"Arial",fontSize:"16px",fontColor:"#000000",bgColor:"#ffffff",bold:!1,italic:!1,underline:!1,strikethrough:!1};if(a&&"image"===a.type)this.document.blocks.splice(l+1,0,{dataId:s,class:"paragraph-block",pieces:[new n("​",d)],type:"text"}),this.document.emit("documentChanged",this),this.imageHandler.setCursorPostion(1,s);else if(!a||"ol"!==a.listType&&"ul"!==a.listType&&"li"!==a.listType){const t=this.getCurrentCursorBlock(),e=null==t?void 0:t.toString();if(e&&a&&"text"===a.type){const t=i-this.document.currentOffset,o=[],l=[];let r=0;for(const e of a.pieces){const s=r+e.text.length;if(s<=t)o.push(e.clone());else if(r>=t)l.push(e.clone());else{const s=t-r,i=e.text.slice(0,s),a=e.text.slice(s);i&&o.push(new n(i,Object.assign({},e.attributes))),a&&l.push(new n(a,Object.assign({},e.attributes)))}r=s}a.pieces=o.length>0?o:[new n("​",d)];const c=l.length>0?l:[new n("​",d)],h=this.addBlockAfter(this.document.blocks,e,{dataId:s,class:"paragraph-block",pieces:c,type:"text"});this.document.blocks=h}else this.document.blocks.push({dataId:s,class:"paragraph-block",pieces:[new n("​",d)],type:"text"})}else{let t=[new n("​",d)];const e=i-this.document.currentOffset;if("text"===a.type&&a.pieces){const s=[],i=[];let o=0;for(const t of a.pieces){const l=o+t.text.length;if(l<=e)s.push(t.clone());else if(o>=e)i.push(t.clone());else{const l=e-o,a=t.text.slice(0,l),r=t.text.slice(l);a&&s.push(new n(a,Object.assign({},t.attributes))),r&&i.push(new n(r,Object.assign({},t.attributes)))}o=l}a.pieces=s.length>0?s:[new n("​",d)],t=i.length>0?i:[new n("​",d)]}let o={dataId:s,class:"paragraph-block",pieces:t,type:"text"},r="";if("ol"===a.listType?(o.listType="li",o.listStart=a.listStart+1,o.parentId=a.dataId,r=a.dataId):"li"===a.listType?(o.listType="li",o.listStart=a.listStart+1,o.parentId=a.parentId,r=a.parentId):"ul"===a.listType&&(o.listType="ul",o.parentId=a.parentId||a.dataId),this.document.blocks.splice(l+1,0,o),"ol"===a.listType||"li"===a.listType)for(let t=l+2;tt.dataId===this.imageHandler.highLightedImageDataId);return this.imageHandler.deleteImage(),void this.imageHandler.setCursorPostion(1,this.document.blocks[t-1].dataId)}const e=window.getSelection();console.log(e,"selection lntgerr");if((this.document.selectAll||this.document.dataIds.length===this.document.blocks.length&&this.document.dataIds.length>0||this.document.dataIds.length>1)&&!(null===(s=window.getSelection())||void 0===s?void 0:s.isCollapsed)){this.undoRedoManager.saveUndoSnapshot();const t=this.document.dataIds[0],e=this.document.blocks.findIndex(e=>e.dataId===t);this.document.deleteBlocks();let s=null,i=0;if(0===this.document.blocks.length){const t=`data-id-${Date.now()}`;this.document.blocks.push({dataId:t,class:"paragraph-block",pieces:[new n(" ")],type:"text"}),s=t,i=0,this.editorView.render()}else if(et+e.text.length,0)}return void this.setCursorPosition(i,s)}if(o>i){this.undoRedoManager.saveUndoSnapshot();const t=Math.min(this.document.currentOffset,i);this.document.deleteRange(i,o,this.document.selectedBlockId,t,!0),this.setCursorPosition(i-1);const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);console.log(e,"index lntgerr");if(null===document.querySelector(`[data-id="${this.document.selectedBlockId}"]`)){let t=0;console.log(t," listStart lntgerr");const e=this.document.blocks.map((e,n)=>(void 0===(null==e?void 0:e.listType)&&null===(null==e?void 0:e.listType)||("ol"===(null==e?void 0:e.listType)?(t=1,e.listStart=1):"li"===(null==e?void 0:e.listType)&&(t+=1,e.listStart=t)),e));console.log(e,"blocks lntgerr"),this.document.emit("documentChanged",this)}}else if(i===o&&i>0){const t=this.editorView.container.textContent||"";let e=i-1;if(i>=2){const n=t.charCodeAt(i-1),s=t.charCodeAt(i-2);n>=56320&&n<=57343&&s>=55296&&s<=56319&&(e=i-2)}this.document.deleteRange(e,i,this.document.selectedBlockId,this.document.currentOffset,!0),this.setCursorPosition(e)}}else if(1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey){if("Delete"===t.key){if(t.preventDefault(),i===o){if(this.undoRedoManager.saveUndoSnapshot(),o>i){const t=Math.min(this.document.currentOffset,i);this.document.deleteRange(i,o,this.document.selectedBlockId,t),this.setCursorPosition(i)}else if(o>i)return this.undoRedoManager.saveUndoSnapshot(),void this.document.deleteRange(i,o,this.document.selectedBlockId);const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1===t)return;const e=this.document.blocks[t].pieces.reduce((t,e)=>t+e.text.length,0);i-this.document.currentOffseti&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(i,o,this.document.selectedBlockId),this.setCursorPosition(i))}this.hyperlinkHandler.hideHyperlinkViewButton()}}else t.preventDefault(),o>i&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(i,o,this.document.selectedBlockId,this.document.currentOffset,!1)),console.log("insertat",t.key,this.currentAttributes,i,this.document.selectedBlockId,this.document.currentOffset,"","",!t.isTrusted||!1),this.document.insertAt(t.key,this.currentAttributes,i,this.document.selectedBlockId,this.document.currentOffset,"","",!t.isTrusted||!1),this.setCursorPosition(i+1)}extractTextFromDataId(t){const e=window.getSelection();if(console.log("selection::",e),!e||0===e.rangeCount)return{remainingText:"",piece:null};const n=e.getRangeAt(0).startContainer;let s="";console.log(0,"count lntgerr");const i=this.document.blocks.filter(e=>{if(e.dataId===t)return e}),o=document.querySelector(`[data-id="${t}"]`),l=this.document.getCursorOffsetInParent(`[data-id="${t}"]`);let a=[],r=0;if(i[0].pieces.forEach((t,e)=>{s+=t.text,(null==l?void 0:l.innerText)===t.text&&(r=e,a.push(t))}),i[0].pieces.length>1&&i[0].pieces.forEach((t,e)=>{rt.dataId===e);if(-1===s)return console.error(`Block with dataId "${e}" not found.`),t;return[...t.slice(0,s+1),n,...t.slice(s+1)]}syncCurrentAttributesWithCursor(){var t,e;const n=window.getSelection();if(n&&n.rangeCount>0){const e=(null===(t=n.anchorNode)||void 0===t?void 0:t.nodeType)===Node.TEXT_NODE?n.anchorNode.parentElement:n.anchorNode;if(null==e?void 0:e.closest(".tblCell"))return}const[s,i]=this.getSelectionRange();console.log("log1",{start:s,end:i});const o=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if("image"===(null===(e=this.document.blocks[o])||void 0===e?void 0:e.type)?this.imageHandler.addStyleToImage(this.document.selectedBlockId||""):this.imageHandler.isImageHighlighted&&this.imageHandler.clearImageStyling(),s===i){const t=this.document.findPieceAtOffset(s,this.document.selectedBlockId);t?(t!==this.lastPiece&&(this.manualOverride=!1,this.lastPiece=t),this.manualOverride||(this.currentAttributes={bold:t.attributes.bold,italic:t.attributes.italic,underline:t.attributes.underline,strikethrough:t.attributes.strikethrough||!1,subscript:t.attributes.subscript||!1,superscript:t.attributes.superscript||!1,hyperlink:t.attributes.hyperlink||!1,fontFamily:t.attributes.fontFamily,fontSize:t.attributes.fontSize,fontColor:t.attributes.fontColor,bgColor:t.attributes.bgColor},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.hyperlinkHandler.hideHyperlinkViewButton()):(this.hyperlinkHandler.hideHyperlinkViewButton(),this.manualOverride||(this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.lastPiece=null)}else{this.hyperlinkHandler.hideHyperlinkViewButton();const t=this.document.isRangeEntirelyAttribute(s,i,"bold"),e=this.document.isRangeEntirelyAttribute(s,i,"italic"),n=this.document.isRangeEntirelyAttribute(s,i,"underline"),o=this.document.isRangeEntirelyAttribute(s,i,"strikethrough"),l=this.document.isRangeEntirelyAttribute(s,i,"subscript"),a=this.document.isRangeEntirelyAttribute(s,i,"superscript");this.currentAttributes={bold:t,italic:e,underline:n,strikethrough:o,subscript:l,superscript:a,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)}const l=document.getElementById("heading");if(l)if(this.document.selectedBlockId){const t=this.document.blocks.find(t=>t.dataId===this.document.selectedBlockId);t&&t.heading?l.value=t.heading:l.value=""}else l.value=""}setCursorPosition(t,e=""){if(""===e)this.editorView.container.focus();else{const t=document.querySelector('[data-id="'+e+'"]');t&&t.focus()}const n=window.getSelection();if(!n)return;const s=document.createRange();let i=0;const o=[this.editorView.container];let l;for(;l=o.pop();)if(3===l.nodeType){const e=l,n=i+e.length;if(t>=i&&t<=n){s.setStart(e,t-i),s.collapse(!0);break}i=n}else if("BR"===l.tagName){if(t===i){s.setStartBefore(l),s.collapse(!0);break}i++}else{const t=l;let e=t.childNodes.length;for(;e--;)o.push(t.childNodes[e])}n.removeAllRanges(),n.addRange(s)}showAcknowledgement(t,e=2e3){const n=document.getElementById(u.TOAST_ID);n&&n.remove();const s=document.createElement("div");s.id=u.TOAST_ID,s.className="ti-toast",s.textContent=t||u.TOAST_DEFAULT_MESSAGE,document.body.appendChild(s),s.offsetHeight,s.classList.add(u.TOAST_SHOW_CLASS),setTimeout(()=>{s.classList.remove(u.TOAST_SHOW_CLASS),setTimeout(()=>s.remove(),200)},e||u.TOAST_DEFAULT_DURATION_MS)}showLinkPopup(t,e,n){this.linkPopupView.show(t,e,n)}hideLinkPopup(){this.linkPopupView.hide()}openLink(t){window.open(t,"_blank"),this.hideLinkPopup()}unlinkText(t){this.undoRedoManager.saveUndoSnapshot();const e=t.textContent||"",n=(this.editorView.container.textContent||"").indexOf(e);-1!==n&&(this.document.formatAttribute(n,n+e.length,"hyperlink",!1),this.editorView.render()),this.hideLinkPopup()}getTextForSpeech(){var t,e;const n=window.getSelection();if(n&&!n.isCollapsed){const t=n.toString().trim();if(t)return t}return(null===(e=null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||void 0===e?void 0:e.trim())||""}onContentChange(t){this.on("contentChange",t)}getContent(){return this.document.getHtmlContent()||""}getTextContent(){var t;return(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||""}}window.TextIgniter=N,t.TextIgniter=N}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TextIgniter={})}(this,function(t){"use strict";class e{constructor(){this.events={}}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}emit(t,e){this.events[t]&&this.events[t].forEach(t=>t(e))}}class n{constructor(t,e={}){this.text=t;const n=document.getElementById("fontFamily"),s=document.getElementById("fontSize");let o="Arial",i="16px",l=document.getElementById("fontColorPicker"),a=document.getElementById("bgColorPicker");n&&(o=n.value),s&&(i=s.value);const d=e.fontColor||(l?l.value:"#000000"),r=e.bgColor||(a?a.value:"#ffffff");this.attributes={bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,subscript:e.subscript||!1,superscript:e.superscript||!1,undo:e.undo||!1,redo:e.redo||!1,fontFamily:e.fontFamily||o,fontSize:e.fontSize||i,hyperlink:e.hyperlink||!1,fontColor:d,bgColor:r}}isBold(){return this.attributes.bold}setBold(t){this.attributes.bold=t}isItalic(){return this.attributes.italic}isUndo(){return this.attributes.undo}isRedo(){return this.attributes.redo}setItalic(t){this.attributes.italic=t}isUnderline(){return this.attributes.underline}setUnderline(t){this.attributes.underline=t}isStrikethrough(){return this.attributes.strikethrough||!1}setStrikethrough(t){this.attributes.strikethrough=t}setUndo(t){this.attributes.undo=t}setRedo(t){this.attributes.redo=t}clone(){return new n(this.text,Object.assign({},this.attributes))}hasSameAttributes(t){return this.attributes.bold===t.attributes.bold&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&(this.attributes.strikethrough||!1)===(t.attributes.strikethrough||!1)&&(this.attributes.subscript||!1)===(t.attributes.subscript||!1)&&(this.attributes.superscript||!1)===(t.attributes.superscript||!1)&&this.attributes.undo===t.attributes.undo&&this.attributes.redo===t.attributes.redo&&this.attributes.fontFamily===t.attributes.fontFamily&&this.attributes.fontSize===t.attributes.fontSize&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&this.attributes.hyperlink===t.attributes.hyperlink&&this.attributes.fontColor===t.attributes.fontColor&&this.attributes.bgColor===t.attributes.bgColor}getHyperlink(){return this.attributes.hyperlink||!1}setHyperlink(t){this.attributes.hyperlink=t}}class s extends e{get selectedBlockId(){return this._selectedBlockId}set selectedBlockId(t){if(this._selectedBlockId!==t){this._selectedBlockId=t;const e=document.querySelector('[id="editor"]'),n=document.querySelector('[data-id="'+t+'"]');if(e&&n){const t=this.getCursorOffset(e),s=this.getCursorOffset(n);this.currentOffset=t-s}else this.currentOffset=0}}constructor(){super(),this.dataIds=[],this.selectAll=!1,this._selectedBlockId=null,this.pieces=[new n("")],this.blocks=[{type:"text",dataId:"data-id-1734604240404",class:"paragraph-block",alignment:"left",pieces:[new n("​")]}],this.selectedBlockId="data-id-1734604240404",this.currentOffset=0}setEditorView(t){this.editorView=t}getPlainText(){return this.pieces.map(t=>t.text).join("")}setUndoRedoManager(t){this.undoRedoManager=t}insertAt(t,e,s,o="",i=0,l="",a="",d=!1){d||"batch"===a||this.undoRedoManager.saveUndoSnapshot(),console.log("inserted,",{start:s,text:t}),console.log("inserted,",this.blocks);let r=0,c=[],h=!1,u=0;if(""===o||null===o)return;if(u=this.blocks.findIndex(t=>t.dataId===o),-1===u||!this.blocks[u].pieces)return;r=this.currentOffset;for(let o of this.blocks[u].pieces){const i=r+o.text.length;if(!h&&s<=i){const i=s-r;i>0&&c.push(new n(o.text.slice(0,i),Object.assign({},o.attributes))),c.push(new n(t,{bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,hyperlink:e.hyperlink||!1})),it.dataId===s),-1===d||!this.blocks[d].pieces)return;a=o;let c=-1;if(i&&t===a&&d>0&&e===t&&(c=d-1>=0&&"image"===this.blocks[d-1].type?d-2:d-1,c>=0&&this.blocks[c]))for(let t of this.blocks[c].pieces)l.push(t.clone()),r=!0;for(let s of this.blocks[d].pieces){const o=a+s.text.length,i=a;if(o<=t||i>=e)l.push(s.clone());else{const a=s.text;if(t>i){const e=a.slice(0,t-i);e.length>0&&l.push(new n(e,Object.assign({},s.attributes)))}if(e0&&l.push(new n(t,Object.assign({},s.attributes)))}}a=o}let h=this.mergePieces(l),u=!1;r&&c>=0?(!this.blocks[d]||"ol"!==this.blocks[d].listType&&"li"!==this.blocks[d].listType||(u=!0),this.blocks[c].pieces=h,this.blocks.splice(d,1)):0===h.length?this.blocks.length>1?(!this.blocks[d]||"ol"!==this.blocks[d].listType&&"li"!==this.blocks[d].listType||(u=!0),this.blocks.splice(d,1)):(h=[new n(" ")],this.blocks[d].pieces=h):this.blocks[d].pieces=h,u&&this.updateOrderedListNumbers(),this.emit("documentChanged",this)}deleteBlocks(){const t=this.blocks.some(t=>this.dataIds.includes(t.dataId)&&("ol"===t.listType||"li"===t.listType));this.blocks=this.blocks.filter(t=>{if(!this.dataIds.includes(t.dataId))return t}),this.dataIds=[],this.selectAll=!1,0===this.blocks.length&&this.blocks.push({dataId:`data-id-${Date.now()}`,class:"paragraph-block",type:"text",pieces:[new n("​")]}),t&&this.updateOrderedListNumbers(),this.emit("documentChanged",this)}getSelectedTextDataId(){const t=window.getSelection();if(!t||0===t.rangeCount)return null;const e=t.getRangeAt(0).startContainer,n=(e.nodeType===Node.TEXT_NODE?e.parentElement:e).closest("[data-id]");return(null==n?void 0:n.getAttribute("data-id"))||null}getAllSelectedDataIds(){var t;const e=window.getSelection();if(!e||0===e.rangeCount)return[];const n=e.getRangeAt(0),s=[],o=document.createNodeIterator(n.commonAncestorContainer,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let i;for(;i=o.nextNode();)if(n.intersectsNode(i)){const e=i.nodeType===Node.TEXT_NODE?i.parentElement:i,n=null===(t=null==e?void 0:e.closest("[data-id]"))||void 0===t?void 0:t.getAttribute("data-id");n&&!s.includes(n)&&s.push(n)}return this.removeExclusiveEndBlock(n,s),this.dataIds=s,console.log("selected id 3",this.dataIds,s),s}handleCtrlASelection(){const t=[],e=document.getElementById("editor");if(e){e.querySelectorAll("[data-id]").forEach(e=>{const n=e.getAttribute("data-id");n&&!t.includes(n)&&t.push(n)})}return this.dataIds=t,console.log("selected id 2",this.dataIds,t),t}getSelectedDataIds(){const t=window.getSelection();if(!t||0===t.rangeCount)return[];const e=t.getRangeAt(0),n=[],s=e.startContainer,o=e.endContainer,i=this.getDataIdFromNode(s),l=this.getDataIdFromNode(o);return i&&!n.includes(i)&&n.push(i),l&&!n.includes(l)&&n.push(l),this.removeExclusiveEndBlock(e,n),this.dataIds=n,console.log("selected id 1",this.dataIds,n),n}getDataIdFromNode(t){var e;const n=t.nodeType===Node.TEXT_NODE?t.parentElement:t;return(null===(e=null==n?void 0:n.closest("[data-id]"))||void 0===e?void 0:e.getAttribute("data-id"))||null}getCursorOffset(t){const e=window.getSelection();if(!e||0===e.rangeCount||!t)return-1;const n=e.getRangeAt(0);let s=0;const o=t=>{if(t===n.startContainer)return s+=n.startOffset,!0;t.nodeType===Node.TEXT_NODE&&(s+=(t.textContent||"").length);for(const e of Array.from(t.childNodes))if(o(e))return!0;return!1};return o(t),s}formatAttribute(t,e,s,o){console.log("formatAttribute",t,e,s,o);let i=[],l=0,a=-1;if(""===this.selectedBlockId||null===this.selectedBlockId)return;if(a=this.blocks.findIndex(t=>t.dataId===this.selectedBlockId),-1===a||!this.blocks[a].pieces)return;l=this.currentOffset;for(let d of this.blocks[a].pieces){const a=l+d.text.length;if(a<=t||l>=e)i.push(d.clone());else{const a=l,r=d.text,c=Math.max(t-a,0),h=Math.min(e-a,r.length);c>0&&i.push(new n(r.slice(0,c),Object.assign({},d.attributes)));const u=new n(r.slice(c,h),Object.assign({},d.attributes));("bold"!==s&&"italic"!==s&&"underline"!==s&&"strikethrough"!==s&&"subscript"!==s&&"superscript"!=s&&"undo"!==s&&"redo"!==s&&"hyperlink"!==s||"boolean"!=typeof o)&&("fontFamily"!==s&&"fontSize"!==s&&"hyperlink"!==s&&"fontColor"!==s&&"bgColor"!==s||"string"!=typeof o)||(u.attributes[s]=o),i.push(u),he.dataId===t);if(-1===n)return;const s=this.blocks[n];"ol"===s.listType||"li"===s.listType?(s.listType=null,s.listStart=void 0,s.parentId=void 0):(s.listType="ol",s.listStart=1,s.parentId=s.dataId),this.updateOrderedListNumbers(),this.emit("documentChanged",this)}getHeadingFontSize(t){switch(t){case"h1":return"32px";case"h2":return"24px";case"h3":return"18px";case"h4":default:return"16px";case"h5":return"13px";case"h6":return"11px"}}toggleHeading(t,e){var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1===s)return;const o=this.blocks[s];o.heading=e;const i=this.getHeadingFontSize(e);if(Array.isArray(o.pieces)){o.pieces.every(t=>""===t.text.trim()||"​"===t.text)&&e?o.pieces=[{text:`Heading ${e.replace("h","")}`,attributes:Object.assign(Object.assign({},null===(n=o.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:i})}]:o.pieces.forEach(t=>{t.attributes.fontSize=i})}this.emit("documentChanged",this)}toggleHeadingForMultipleBlocks(t,e){t.forEach(t=>{var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1!==s){const t=this.blocks[s];t.heading=e;const o=this.getHeadingFontSize(e);if(Array.isArray(t.pieces)){t.pieces.every(t=>""===t.text.trim()||"​"===t.text)&&e?t.pieces=[{text:`Heading ${e.replace("h","")}`,attributes:Object.assign(Object.assign({},null===(n=t.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:o})}]:t.pieces.forEach(t=>{t.attributes.fontSize=o})}}}),this.emit("documentChanged",this)}toggleOrderedListForMultipleBlocks(t){if(0===t.length)return;const e=t.sort((t,e)=>this.blocks.findIndex(e=>e.dataId===t)-this.blocks.findIndex(t=>t.dataId===e));if(e.every(t=>{const e=this.blocks.find(e=>e.dataId===t);return e&&("ol"===e.listType||"li"===e.listType)}))e.forEach(t=>{const e=this.blocks.find(e=>e.dataId===t);e&&(e.listType=null,e.listStart=void 0,e.parentId=void 0)});else{const t=e[0];e.forEach((e,n)=>{const s=this.blocks.find(t=>t.dataId===e);s&&(0===n?(s.listType="ol",s.listStart=1,s.parentId=t):(s.listType="li",s.listStart=n+1,s.parentId=t))})}this.updateOrderedListNumbers(),this.emit("documentChanged",this)}toggleUnorderedList(t){const e=this.blocks.findIndex(e=>e.dataId===t);if(-1===e)return;const n=this.blocks[e];n.listType="ul"===n.listType?null:"ul",this.emit("documentChanged",this)}updateOrderedListNumbers(){let t=1,e=null;for(let n=0;nt.focus(),0)}else this.editorView.container.focus();const s=window.getSelection();if(!s)return;const o=document.createRange();let i=0;const l=[this.editorView.container];let a;const d=(null===(n=this.editorView.container.textContent)||void 0===n?void 0:n.length)||0;if(!(t<0||t>d)){for(;a=l.pop();)if(3===a.nodeType){const e=a,n=i+e.length;if(t>=i&&t<=n){o.setStart(e,Math.min(t-i,e.length)),o.collapse(!0);break}i=n}else if("BR"===a.tagName){if(t===i){o.setStartBefore(a),o.collapse(!0);break}i++}else{const t=a;let e=t.childNodes.length;for(;e--;)l.push(t.childNodes[e])}s.removeAllRanges(),s.addRange(o)}}toggleBoldRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"bold");this.formatAttribute(t,e,"bold",!s)}toggleItalicRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"italic");this.formatAttribute(t,e,"italic",!s)}toggleUnderlineRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"underline");this.formatAttribute(t,e,"underline",!s)}toggleStrikethroughRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"strikethrough");this.formatAttribute(t,e,"strikethrough",!s)}toggleSubscriptRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"subscript");s||this.formatAttribute(t,e,"superscript",!1),this.formatAttribute(t,e,"subscript",!s)}toggleSuperscriptRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"superscript");s||this.formatAttribute(t,e,"subscript",!1),this.formatAttribute(t,e,"superscript",!s)}toggleUndoRange(t,e,n=""){const s=this.isRangeEntirelyAttribute(t,e,"undo");this.formatAttribute(t,e,"undo",!s)}toggleRedoRange(t,e){const n=this.isRangeEntirelyAttribute(t,e,"redo");this.formatAttribute(t,e,"redo",!n)}applyFontColor(t,e,n,s=""){tt.dataId===this.selectedBlockId);if(-1===i||!this.blocks[i].pieces)return!1;for(let l of this.blocks[i].pieces){const i=s+l.text.length;if(i>t&&st+e.text.length,0);if(s.dataId==e){let e=null;for(let o of s.pieces){const s=n,i=s+o.text.length;if(t>=s&&tt.dataId===e);n&&(n.alignment=t,this.emit("documentChanged",this))}getHtmlContent(t=!1){const e=document.getElementById("editor");if(!e)return void console.error("Editor container not found.");const n=e.innerHTML;return t&&navigator.clipboard.writeText(n).then(()=>{console.log("HTML copied to clipboard!")}).catch(t=>console.error("Failed to copy HTML:",t)),n}getCursorOffsetInParent(t){var e;console.log("textPosition -1:vicky",t);const n=document.querySelector(t);if(!n)return null;const s=window.getSelection();if(!s||0===s.rangeCount)return null;const o=s.getRangeAt(0);if(!n.contains(o.startContainer))return null;let i=0,l=null;const a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let d=null;for(;a.nextNode();){const t=a.currentNode;if(console.log(t,"textPosition - currentNode: vicky"),t===o.startContainer){i+=o.startOffset,l=t,d=t.parentElement;break}i+=(null===(e=t.textContent)||void 0===e?void 0:e.length)||0}return console.log({offset:i,childNode:l,innerHTML:d.innerHTML,innerText:d.innerText},"textPosition - return values: vicky"),{offset:i,childNode:l,innerHTML:d.innerHTML,innerText:d.innerText}}removeExclusiveEndBlock(t,e){if(e.length<=1)return;const n=t.endContainer,s=t.endOffset;let o=!1;if((n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE)&&(o=0===s),!o)return;const i=this.getDataIdFromNode(n);if(!i)return;if(i!==this.getDataIdFromNode(t.startContainer)&&e.includes(i)){const t=e.lastIndexOf(i);t>-1&&e.splice(t,1)}}}function o(t){const e=window.getSelection();if(!e||0===e.rangeCount)return null;const n=e.getRangeAt(0),s=n.cloneRange();s.selectNodeContents(t),s.setEnd(n.startContainer,n.startOffset);const o=s.toString().length;s.setEnd(n.endContainer,n.endOffset);return{start:o,end:s.toString().length}}function i(t,e){if(!e)return;let n=0;const s=document.createRange();s.setStart(t,0),s.collapse(!0);const o=[t];let i,l=!1,a=!1;for(;!a&&(i=o.pop());)if(3===i.nodeType){const t=i,o=n+t.length;!l&&e.start>=n&&e.start<=o&&(s.setStart(t,e.start-n),l=!0),l&&e.end>=n&&e.end<=o&&(s.setEnd(t,e.end-n),a=!0),n=o}else if("BR"===i.tagName)l||e.start!==n||(s.setStartBefore(i),l=!0),l&&e.end===n&&(s.setEndBefore(i),a=!0),n++;else{const t=i;let e=t.childNodes.length;for(;e--;)o.push(t.childNodes[e])}const d=window.getSelection();d&&(d.removeAllRanges(),d.addRange(s))}function l(t){const e=o(t.container);return e?[e.start,e.end]:[0,0]}const a=/((https?:\/\/|www\.)[\w\-._~:\/?#[\]@!$&'()*+,;=%]+|\b[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[\w\-._~:\/?#[\]@!$&'()*+,;=%]*)?)/g;function d(t,e){return e>0&&"@"===t[e-1]}function r(t){if(!t)return t;let e=t.trim();const n=e.match(/^https?:\/\/[\w.-]+(?::\d+)?\/(https?:\/\/.*)$/);return n&&(e=n[1]),/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)?e:e.startsWith("//")?"https:"+e:"https://"+e}class c{constructor(t,e){this.container=t,this.document=e}setImageHandler(t){this.imageHandler=t}render(){const t=o(this.container);this.container.innerHTML="",this.document.blocks.forEach(t=>{var e;if(""!==t.dataId){let n;if("table"===t.type||"layout"===t.type||"math"===t.type)return void(t.element&&this.container.appendChild(t.element));if("image"===t.type){if(n=document.createElement("div"),n.setAttribute("data-id",t.dataId),n.setAttribute("class",t.class),n.setAttribute("type",t.type),n.style.textAlign=t.alignment||"left",t.image)if(this.imageHandler&&"function"==typeof this.imageHandler.createImageFragment)n.appendChild(this.imageHandler.createImageFragment(t.image,t.dataId));else{const e=document.createElement("img");e.src=t.image,n.appendChild(e)}}else if("code"===t.type){n=document.createElement("div"),n.setAttribute("data-id",t.dataId),n.setAttribute("class","code_block_wrapper"),n.setAttribute("type","code"),n.setAttribute("data-language",t.language||"text"),n.addEventListener("mousedown",t=>{t.preventDefault()});const e=document.createElement("div");e.className="code_block_header";const s=document.createElement("span");s.className="code_block_language",s.innerText=t.language||"text";const o=document.createElement("span");o.className="code_block_hint",o.innerText="double-click to edit";const i=document.createElement("button");i.className="code_block_cancel",i.innerHTML="×",i.title="Remove block",i.addEventListener("mousedown",t=>{t.stopPropagation()}),i.onclick=e=>{e.stopPropagation(),e.preventDefault(),n.remove();const s=this.document.blocks.findIndex(e=>e.dataId===t.dataId);-1!==s&&(this.document.blocks.splice(s,1),this.document.selectedBlockId===t.dataId&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))},e.appendChild(s),e.appendChild(o),e.appendChild(i);const l=document.createElement("pre");l.className="code_block_content";const a=document.createElement("code");a.textContent=t.code||"",l.appendChild(a),n.appendChild(e),n.appendChild(l)}else if("ol"===t.listType||"li"===t.listType?(n=document.createElement("ol"),n.setAttribute("start",(null===(e=null==t?void 0:t.listStart)||void 0===e?void 0:e.toString())||"1")):n="ul"===t.listType?document.createElement("ul"):document.createElement(t.heading||"div"),n.setAttribute("data-id",t.dataId),n.setAttribute("class",t.class),n.setAttribute("type",t.type),n.style.textAlign=t.alignment||"left",Array.isArray(t.pieces))if("ol"===t.listType||"ul"===t.listType||"li"===t.listType){const e=document.createElement("li");t.pieces.forEach(t=>{e.appendChild(this.renderPiece(t))}),n.appendChild(e)}else t.pieces.forEach(t=>{n.appendChild(this.renderPiece(t))});this.container.appendChild(n)}}),i(this.container,t)}renderPiece(t){const e=t.text.split("\n");return this.wrapAttributes(e,t.attributes)}wrapAttributes(t,e){const n=document.createDocumentFragment();return t.forEach((s,o)=>{let i=document.createTextNode(s);if(e.strikethrough){const t=document.createElement("s");t.appendChild(i),i=t}if(e.underline){const t=document.createElement("u");t.appendChild(i),i=t}if(e.italic){const t=document.createElement("em");t.appendChild(i),i=t}if(e.bold){const t=document.createElement("strong");t.appendChild(i),i=t}if(e.subscript){const t=document.createElement("sub");t.appendChild(i),i=t}if(e.superscript){const t=document.createElement("sup");t.appendChild(i),i=t}const l=document.getElementById("fontFamily"),a=document.getElementById("fontSize");let d="Arial",c="16px";l&&(d=l.value),a&&(c=a.value);const h=document.createElement("span");if(h.style.fontFamily=e.fontFamily||d,h.style.fontSize=e.fontSize||c,e.fontColor&&"string"==typeof e.fontColor&&(h.style.color=e.fontColor),e.bgColor&&"string"==typeof e.bgColor&&(h.style.backgroundColor=e.bgColor),e.hyperlink&&"string"==typeof e.hyperlink){const t=document.createElement("a");t.href=r(e.hyperlink),t.appendChild(i),i=t}h.appendChild(i),i=h,n.appendChild(i),o{t.addEventListener("mousedown",t=>{t.preventDefault()})}),this.container.addEventListener("click",t=>{const e=t.target.closest("button");if(e){const t=e.getAttribute("data-action");t&&this.emit("toolbarAction",t)}})}updateActiveStates(t){if(this.container.querySelectorAll("button").forEach(e=>{const n=e.getAttribute("data-action");let s=!1;"bold"===n&&t.bold&&(s=!0),"italic"===n&&t.italic&&(s=!0),"underline"===n&&t.underline&&(s=!0),"strikethrough"===n&&t.strikethrough&&(s=!0),"hyperlink"===n&&t.hyperlink&&(s=!0),"undo"===n&&t.undo&&(s=!0),"redo"===n&&t.redo&&(s=!0),e.classList.toggle("active",s)}),this.container.querySelectorAll("select").forEach(e=>{const n=e.getAttribute("data-action");"fontFamily"===n&&t.fontFamily&&(e.value=t.fontFamily),"fontSize"===n&&t.fontSize&&(e.value=t.fontSize)}),t.fontColor){const e=document.getElementById("fontColorPicker");e&&(e.value=t.fontColor,e.dispatchEvent(new Event("input",{bubbles:!0})))}if(t.bgColor){const e=document.getElementById("bgColorPicker");e&&(e.value=t.bgColor,e.dispatchEvent(new Event("input",{bubbles:!0})))}}}const u={TOOLBAR_CLASSNAME:"toolbar",TOOLBAR_ID:"toolbar",EDITOR_CLASSNAME:"editor",EDITOR_ID:"editor",EDITOR_ELEMENT_NT_FOUND:"Editor element not found or incorrect element type.",FONT_FAMILY_SELECT_ID:"fontFamily",FONT_SIZE_SELECT_ID:"fontSize",HEADING_SELECT_ID:"heading",FONT_COLOR_WRAPPER_ID:"fontColorWrapper",FONT_COLOR_ID:"fontColor",FONT_COLOR_PICKER_WRAPPER_ID:"colorWrapper",FONT_COLOR_PICKER_ID:"fontColorPicker",FONT_COLOR_RESET_ID:"colorResetFont",BG_COLOR_WRAPPER_ID:"bgColorWrapper",BG_COLOR_ID:"bgColor",BG_COLOR_PICKER_WRAPPER_ID:"colorBgWrapper",BG_COLOR_RESET_ID:"colorResetBG",BG_COLOR_PICKER_ID:"bgColorPicker",GET_HTML_BUTTON_ID:"getHtmlButton",LOAD_HTML_BUTTON_ID:"loadHtmlButton",HYPERLINK_CONTAINER_ID:"hyperlink-container",HYPERLINK_INPUT_ID:"hyperlink-input",HYPERLINK_PLACEHOLDER:"Enter a URL...",HYPERLINK_APPLY_BTN_ID:"apply-hyperlink",HYPERLINK_CANCEL_BTN_ID:"cancel-hyperlink",VIEW_HYPERLINK_CONTAINER_ID:"hyperlink-container-view",VIEW_HYPERLINK_LABEL_ID:"hyperlink-view-span",VIEW_HYPERLINK_ANCHOR_ID:"hyperlink-view-link",TEMPORARY_SELECTION_HIGHLIGHT_CLASS:"temporary-selection-highlight",PARAGRAPH_BLOCK_CLASS:"paragraph-block",IMAGE_CROSS_CLASS:"image-cross",TEST_HTML_CODE:'
ajsh diujaksdajsh diujaksdajsh
diujaksdasd 98hasiudasdh 98
This is a t this is a test work
This is a test work. this is a test work
da90 uasd y98asiodoiasda90 uasd y98asiodoiasda90 uasd y98asioda
sdjasdjasdja9sudoija9sudoija9sudoija90sdoa90sdoa90sdo
',TEST_BLOG_POST_HTML_CODE:'
Blog Post Title
Start writing your post here...
',TEST_NEWSLATER_HTML_CODE:'
Weekly Newsletter
Hello subscribers,
',TEST_RESUME_HTML_CODE:'
John Doe
Experience
• Role 1
',TEST_EMAIL_HTML_CODE:'
Subject: Important Update
Hi Team,
',TEST_MEETING_HTML_CODE:'
Meeting Minutes
Attendees:
Action Items:
',POPUP_TOOLBAR_CLASSNAME:"popup-toolbar",POPUP_TOOLBAR_ID:"popup-toolbar",TOAST_ID:"ti-toast",TOAST_SHOW_CLASS:"ti-toast--show",TOAST_DEFAULT_MESSAGE:"HTML copied to clipboard",TOAST_DEFAULT_DURATION_MS:2e3};class p{constructor(t,e,n){this.savedSelection=null,this.clickOutsideHandler=null,this.editorContainer=t,this.editorView=e,this.document=n}setUndoRedoManager(t){this.undoRedoManager=t}hanldeHyperlinkClick(t,e,n,s,o){const i=this.getCommonHyperlinkInRange(t,e,n,s,o);this.showHyperlinkInput(i)}getCommonHyperlinkInRange(t,e,n,s,o){let i=n,l=0;s&&(l=o.findIndex(t=>t.dataId===s));const a=o[l].pieces;let d=null;for(let n of a){const s=i+n.text.length;if(s>t&&i0){const t=c.getRangeAt(0);let o=null;if(t&&"function"==typeof t.getBoundingClientRect)o=t.getBoundingClientRect();else if(t&&"function"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);o=n&&n.length?n[0]:null}(!o||Number.isNaN(o.top)&&Number.isNaN(o.left))&&(o=this.editorView.container.getBoundingClientRect());const l=(null===window||void 0===window?void 0:window.scrollY)||0,a=(null===window||void 0===window?void 0:window.scrollX)||0;i.style.top=`${(null!==(n=o.bottom)&&void 0!==n?n:o.top)+l+5}px`,i.style.left=`${(null!==(s=o.left)&&void 0!==s?s:0)+a}px`}l.value=t||"",this.savedSelection=o(this.editorView.container),this.highlightSelection(),l.focus(),a.onclick=null,d.onclick=null;const h=this.document.dataIds,u=()=>{const t=r(l.value.trim());t&&this.applyHyperlink(t,h),i.style.display="none"};a.onclick=u,l.onkeydown=t=>{"Enter"===t.key&&(t.preventDefault(),u())},d.onclick=()=>{this.removeHyperlink(h),i.style.display="none"}}}highlightSelection(){this.removeHighlightSelection();const t=window.getSelection();if(t&&t.rangeCount>0){const e=t.getRangeAt(0),n=document.createElement("span");n.className=u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS,n.appendChild(e.extractContents()),e.insertNode(n),t.removeAllRanges();const s=document.createRange();s.selectNodeContents(n),t.addRange(s)}}removeHighlightSelection(){var t;const e=null===(t=this.editorContainer)||void 0===t?void 0:t.querySelectorAll(`span.${u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS}`);null==e||e.forEach(t=>{const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)}})}applyHyperlink(t,e){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),i(this.editorView.container,this.savedSelection);const[n,s]=l(this.editorView);if(n1?this.document.blocks.forEach(t=>{if(e.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.formatAttribute(s,e,"hyperlink",o)}}):this.document.formatAttribute(n,s,"hyperlink",o),this.editorView.render();const i=window.getSelection();i&&i.removeAllRanges(),this.editorView.container.focus()}this.savedSelection=null}removeHyperlink(t){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),i(this.editorView.container,this.savedSelection);const[e,n]=l(this.editorView);e1?this.document.blocks.forEach(n=>{if(t.includes(n.dataId)){this.document.selectedBlockId=n.dataId;let t=0;n.pieces.forEach(e=>{t+=e.text.length});let s=e-t;this.document.formatAttribute(s,t,"hyperlink",!1)}}):this.document.formatAttribute(e,n,"hyperlink",!1),this.editorView.render(),i(this.editorView.container,this.savedSelection),this.editorView.container.focus()),this.savedSelection=null}addClickOutsideListener(t){this.removeClickOutsideListener(),this.clickOutsideHandler=e=>{t&&!t.contains(e.target)&&this.hideHyperlinkViewButton()},setTimeout(()=>{"undefined"!=typeof document&&document.addEventListener("click",this.clickOutsideHandler)},100)}removeClickOutsideListener(){this.clickOutsideHandler&&(document.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null)}showHyperlinkViewButton(t){var e,n,s;const o=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID),i=document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID);if(o&&i){o.style.display="block";const l=window.getSelection();if(l&&l.rangeCount>0){const t=l.getRangeAt(0);let i=null;if(t&&"function"==typeof t.getBoundingClientRect)i=t.getBoundingClientRect();else if(t&&"function"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);i=n&&n.length?n[0]:null}i||(i=this.editorView.container.getBoundingClientRect());const a=(null===window||void 0===window?void 0:window.scrollY)||0,d=(null===window||void 0===window?void 0:window.scrollX)||0;i&&(o.style.top=`${(null!==(n=i.bottom)&&void 0!==n?n:i.top)+a+5}px`,o.style.left=`${(null!==(s=i.left)&&void 0!==s?s:0)+d}px`)}t&&(i.innerText=t,i.href=r(t))}this.addClickOutsideListener(o)}hideHyperlinkViewButton(){const t=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID);t&&(t.style.display="none"),this.removeClickOutsideListener()}}function m(t){return g((new DOMParser).parseFromString(t,"text/html").body,{bold:!1,italic:!1,underline:!1,hyperlink:!1})}function g(t,e){let s=Object.assign({},e);const o=[];if(t instanceof HTMLElement){if("A"===t.tagName){const e=t.getAttribute("href");e&&(s.hyperlink=e)}"STRONG"!==t.tagName&&"B"!==t.tagName||(s.bold=!0),"EM"!==t.tagName&&"I"!==t.tagName||(s.italic=!0),"U"===t.tagName&&(s.underline=!0),t.childNodes.forEach(t=>{o.push(...g(t,s))})}else if(t instanceof Text){const e=t.nodeValue||"";""!==e.trim()&&o.push(new n(e,Object.assign({},s)))}return o}const f={bold:'\n Bold\n \n ',italic:'\n Italic\n \n ',underline:'\n Underline\n \n ',strikethrough:'\n Strikethrough\n \n ',subscript:'\n \n ',superscript:'\n \n ',left_align:'\n Left Align\n \n ',center_align:'\n Center Align\n ',right_align:'\n Right Align',justify:'\n Justify\n ',bullet_list:'\n Bullet List',numbered_list:'\n Numbererd List\n \n ',insert_table:'\n \n \n \n \n \n \n \n ',insert_layout:'\n Insert Layout\n \n ',heading:'\n Heading\n \n ',hyperlink:'\n Hyperlink\n \n \n ',image:'\n Insert Image\n \n ',stop_microphone:' \n \n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n \n \n ',start_microphone:'\n \n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n \n \n ',close_icon:'\n \n ',emoji:'\n Emoji\n \n \n \n \n ',insert_math:'\n \n ',textToSppech:'\n \n \n \n \n Icon_24px_TexttoSpeech_Color\n \n \n \n \n \n \n \n ',speaker_on:'\n \n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n \n \n ',speaker_off:'\n \x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\x3e\n '},b={dropdowns:["fontFamily","fontSize","heading"],colors:["fontColor","bgColor"],formatting:["bold","italic","underline","strikethrough"],alignment:["alignLeft","alignCenter","alignRight"],lists:["unorderedList","orderedList"],media:["hyperlink","image","emoji","insert_math"],utility:["getHtmlContent","loadHtmlContent"]};function y(){const t=document.createElement("div");return t.className="toolbar-separator",t}function C(t,e){const n=u.EDITOR_ID,s=u.TOOLBAR_ID,o=u.POPUP_TOOLBAR_ID,i=["Arial","Times New Roman","Courier New","Verdana"],l=["12px","14px","16px","18px","20px"],a=document.getElementById(t);if(!a)throw new Error(u.EDITOR_ELEMENT_NT_FOUND);a.classList.add("editor-container");const d=document.createElement("div");d.className=u.TOOLBAR_CLASSNAME,d.id=s,a.appendChild(d),!1===(null==e?void 0:e.showToolbar)&&(d.style.display="none");const r=document.createElement("div");r.id=n,r.className=u.EDITOR_CLASSNAME,r.contentEditable="true",r.spellcheck=!0,r.lang="en",a.appendChild(r);const c={bold:"B",italic:"I",underline:"U",hyperlink:"🔗",alignLeft:"⇤",alignCenter:"↔",alignRight:"⇥",unorderedList:"•",orderedList:"1.",fontFamily:"fontFamily",fontSize:"fontSize",fontColor:"A",subscript:"X2",superscript:"X2",justify:"⇄",insert_table:"⊢",insert_layout:"❐",insert_math:"Σ",heading:"H",image:"📷",colors:"🎨"},h={bold:"Bold (Ctrl+B)",italic:"Italic (Ctrl+I)",underline:"Underline (Ctrl+U)",strikethrough:"Strikethrough",hyperlink:"Insert Link (Ctrl+H)",alignLeft:"Align Left (Ctrl+L)",alignCenter:"Align Center (Ctrl+E)",alignRight:"Align Right (Ctrl+R)",unorderedList:"Bullet List",orderedList:"Numbered List",fontColor:"Text Color",bgColor:"Highlight Color",image:"Insert Image",emoji:"Emoji",getHtmlContent:"Get HTML",loadHtmlContent:"Load HTML",insert_table:"Insert table",insert_math:"Insert Equation",textToSpeech:"Text To Sppech"},p=[{feature:"alignLeft",id:"alignLeft",icon:f.left_align},{feature:"alignCenter",id:"alignCenter",icon:f.center_align},{feature:"alignRight",id:"alignRight",icon:f.right_align},{feature:"unorderedList",id:"unorderedList",icon:f.bullet_list},{feature:"orderedList",id:"orderedList",icon:f.numbered_list},{feature:"hyperlink",id:"hyperlink",icon:f.hyperlink},{feature:"emoji",id:"emoji",icon:f.emoji},{feature:"strikethrough",id:"strikethrough",icon:f.strikethrough},{feature:"insert_table",id:"insert_table",icon:f.insert_table},{feature:"insert_math",id:"insert_math",icon:f.insert_math},{feature:"subscript",id:"subscript",icon:f.subscript},{feature:"superscript",id:"superscript",icon:f.superscript},{feature:"textToSpeech",id:"textToSpeech",icon:f.speaker_on}],m=(t,e)=>{const n=document.createElement("select");return n.dataset.action=t,n.id=t,e.forEach(t=>{const e=document.createElement("option");e.value=t,e.textContent=t,n.appendChild(e)}),n},g=document.createElement("div");g.id=o,g.className=u.POPUP_TOOLBAR_CLASSNAME,g.style.display="none",a.appendChild(g),e.popupFeatures&&e.popupFeatures.forEach((t,e)=>{e>0&&"hyperlink"===t&&g.appendChild(y());const n=p.find(e=>e.feature===t)||{icon:c[t]||t},s=document.createElement("button");s.dataset.action=t,s.innerHTML=n.icon,s.dataset.tooltip=h[t]||t.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "),g.appendChild(s)});let C=null;e.features.forEach((t,n)=>{const s=function(t){for(const[e,n]of Object.entries(b))if(n.includes(t))return e;return null}(t);if(n>0&&s&&C&&s!==C&&d.appendChild(y()),C=s,"fontFamily"===t){const t=m(u.FONT_FAMILY_SELECT_ID,i);d.appendChild(t)}else if("fontSize"===t){const t=m(u.FONT_SIZE_SELECT_ID,l);d.appendChild(t)}else if("fontColor"===t){if(document.getElementById(u.FONT_COLOR_WRAPPER_ID))return;const t=document.createElement("span");t.id=u.FONT_COLOR_WRAPPER_ID,t.style.display="inline-flex",t.style.alignItems="center",t.style.position="relative",t.style.gap="4px";const e=document.createElement("button");e.id=u.FONT_COLOR_ID,e.type="button",e.dataset.tooltip=h.fontColor,e.innerHTML='A',t.appendChild(e);const n=document.createElement("div");n.id=u.FONT_COLOR_PICKER_WRAPPER_ID,n.style.display="none",n.style.position="absolute",n.style.top="100%",n.style.left="0",n.style.marginTop="4px",n.style.zIndex="1000",n.style.backgroundColor="#ffffff",n.style.border="1px solid #d1d1d1",n.style.borderRadius="4px",n.style.padding="8px",n.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)",n.style.width="135px";const s=document.createElement("input");s.type="color",s.id=u.FONT_COLOR_PICKER_ID,s.setAttribute("data-action","fontColor"),s.style.width="100%",s.style.height="32px",s.style.border="1px solid #d1d1d1",s.style.borderRadius="4px",s.style.cursor="pointer",s.style.marginBottom="8px",s.value="#000000",n.appendChild(s);const o=document.createElement("button");o.id=u.FONT_COLOR_RESET_ID,o.type="button",o.textContent="Reset",o.style.display="block",o.style.width="100%",o.style.padding="6px 12px",o.style.fontSize="12px",o.style.border="1px solid #000000",o.style.borderRadius="4px",o.style.backgroundColor="#f8f8f8",o.style.cursor="pointer",o.style.transition="background-color 0.2s",o.onmouseenter=()=>o.style.backgroundColor="#e8e8e8",o.onmouseleave=()=>o.style.backgroundColor="#f8f8f8",n.appendChild(o),t.appendChild(n),d.appendChild(t)}else if("bgColor"===t){if(document.getElementById(u.BG_COLOR_WRAPPER_ID))return;const t=document.createElement("span");t.id=u.BG_COLOR_WRAPPER_ID,t.style.display="inline-flex",t.style.alignItems="center",t.style.position="relative",t.style.gap="4px";const e=document.createElement("button");e.id=u.BG_COLOR_ID,e.type="button",e.dataset.tooltip=h.bgColor,e.innerHTML='B',t.appendChild(e);const n=document.createElement("div");n.id=u.BG_COLOR_PICKER_WRAPPER_ID,n.style.display="none",n.style.position="absolute",n.style.top="100%",n.style.left="0",n.style.marginTop="4px",n.style.zIndex="1000",n.style.backgroundColor="#ffffff",n.style.border="1px solid #000000",n.style.borderRadius="4px",n.style.padding="8px",n.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)",n.style.width="135px";const s=document.createElement("input");s.setAttribute("data-action","bgColor"),s.type="color",s.id=u.BG_COLOR_PICKER_ID,s.style.width="100%",s.style.height="32px",s.style.border="1px solid #000000ff",s.style.borderRadius="4px",s.style.cursor="pointer",s.style.marginBottom="8px",s.value="#ffffff",n.appendChild(s);const o=document.createElement("button");o.id=u.BG_COLOR_RESET_ID,o.type="button",o.textContent="Reset",o.style.display="block",o.style.width="100%",o.style.padding="6px 12px",o.style.fontSize="12px",o.style.border="1px solid #d1d1d1",o.style.borderRadius="4px",o.style.backgroundColor="#f8f8f8",o.style.cursor="pointer",o.style.transition="background-color 0.2s",o.onmouseenter=()=>o.style.backgroundColor="#e8e8e8",o.onmouseleave=()=>o.style.backgroundColor="#f8f8f8",n.appendChild(o),t.appendChild(n),d.appendChild(t)}else if("getHtmlContent"===t){const t=document.createElement("button");t.id=u.GET_HTML_BUTTON_ID,t.type="button",t.textContent="Get HTML",t.dataset.tooltip=h.getHtmlContent,d.appendChild(t)}else if("loadHtmlContent"===t){const t=document.createElement("select");t.id=u.LOAD_HTML_BUTTON_ID,t.dataset.action="loadHtmlContent",t.dataset.tooltip=h.loadHtmlContent,t.style.cursor="pointer",t.style.padding="4px 8px",t.style.border="1px solid #ccc",t.style.borderRadius="4px",t.style.backgroundColor="#f9f9f9",t.style.fontSize="13px",t.style.outline="none",t.style.color="#333",t.style.height="28px",t.addEventListener("mouseenter",()=>{t.style.backgroundColor="#eaeaea"}),t.addEventListener("mouseleave",()=>{t.style.backgroundColor="#f9f9f9"});const n=document.createElement("option");n.value="",n.textContent="Templates...",n.disabled=!0,n.selected=!0,t.appendChild(n);[...[{name:"Default Test",html:u.TEST_HTML_CODE},{name:"Blog Post",html:u.TEST_BLOG_POST_HTML_CODE},{name:"Newsletter",html:u.TEST_NEWSLATER_HTML_CODE},{name:"Resume",html:u.TEST_RESUME_HTML_CODE},{name:"Email",html:u.TEST_EMAIL_HTML_CODE},{name:"Meeting Notes",html:u.TEST_MEETING_HTML_CODE}],...e.templates||[]].forEach((e,n)=>{const s=document.createElement("option");s.value=n.toString(),s.dataset.html=e.html,s.textContent=e.name,t.appendChild(s)}),d.appendChild(t)}else if("heading"===t){const t=document.createElement("select");t.id=u.HEADING_SELECT_ID,t.dataset.action="heading",t.dataset.tooltip=h.heading||"Heading",t.style.cursor="pointer",t.style.padding="4px 8px",t.style.border="1px solid #ccc",t.style.borderRadius="4px",t.style.backgroundColor="#f9f9f9",t.style.fontSize="13px",t.style.outline="none",t.style.color="#333",t.style.height="28px",t.addEventListener("mouseenter",()=>{t.style.backgroundColor="#eaeaea"}),t.addEventListener("mouseleave",()=>{t.style.backgroundColor="#f9f9f9"});const e=document.createElement("option");e.value="",e.textContent="Normal",t.appendChild(e),["H1","H2","H3","H4","H5","H6"].forEach((e,n)=>{const s=document.createElement("option");s.value=e.toLowerCase(),s.textContent=`Heading ${n+1}`,t.appendChild(s)}),d.appendChild(t)}else if(p.map(t=>t.feature).includes(t)){const e=p.find(e=>e.feature===t),n=document.createElement("button");n.id=t,n.dataset.action=t,n.innerHTML=(null==e?void 0:e.icon)||"",n.dataset.tooltip=h[t]||t,d.appendChild(n)}else{const e=document.createElement("button");e.dataset.action=t,e.innerHTML=c[t]||t,e.id=t,e.dataset.tooltip=h[t]||t.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "),d.appendChild(e)}});const k=document.createElement("div");k.id=u.HYPERLINK_CONTAINER_ID,k.style.display="none";const v=document.createElement("input");v.type="text",v.id=u.HYPERLINK_INPUT_ID,v.placeholder=u.HYPERLINK_PLACEHOLDER;const I=document.createElement("button");I.id=u.HYPERLINK_APPLY_BTN_ID,I.textContent="Link";const x=document.createElement("button");x.id=u.HYPERLINK_CANCEL_BTN_ID,x.textContent="Unlink",k.appendChild(v),k.appendChild(I),k.appendChild(x),d.appendChild(k);const E=document.createElement("div");E.id=u.VIEW_HYPERLINK_CONTAINER_ID,E.style.display="none";const w=document.createElement("span");w.id=u.VIEW_HYPERLINK_LABEL_ID,w.innerHTML="Visit URL : ";const _=document.createElement("a");return _.id=u.VIEW_HYPERLINK_ANCHOR_ID,_.href="",_.target="_blank",E.appendChild(w),E.appendChild(_),d.appendChild(E),{mainEditorId:n,toolbarId:s,popupToolbarId:o}}class k{constructor(t){this.htmlString=t,this.doc=(new DOMParser).parseFromString(t,"text/html")}parse(){const t=this.doc.body.children;let e=[];return Array.from(t).forEach((t,n)=>{const s=this.parseElement(t);console.log(t,"element parse",n,s),e.push(s)}),console.log(e,"element--jsondata"),e}parseElement(t){const e=t.getAttribute("data-id")||`data-id-${Date.now()}-${Math.floor(1e3*Math.random())}`,n=t.className||"paragraph-block",s=t.style.textAlign||"left";let o=null,i=null;"UL"===t.tagName?o="ul":"OL"===t.tagName&&(o="ol",i=parseInt(t.getAttribute("start")||"1",10));let l=[];o?this.parseListItems(t,l):this.parseParagraphText(t,l);const a=t.tagName.toLowerCase(),d=a.match(/^h[1-6]$/)?a:null;return Object.assign(Object.assign(Object.assign(Object.assign({dataId:e,class:n,alignment:s,pieces:l},o?{listType:o}:{}),null!==i?{listStart:i}:{}),{}),d?{heading:d}:{})}parseListItems(t,e){t.querySelectorAll("li").forEach(t=>{const s=this.extractTextAttributes(t);s&&e.push(new n(s.text,s.attributes))})}parseParagraphText(t,e){const s=t.querySelectorAll("span"),o=new Map;s.forEach(t=>{const e=this.extractTextAttributes(t);if(console.log(e,"piece parseParagraphText span",t.textContent,t.style.color),e){const t=o.get(e.text);t?(t.attributes.bold=t.attributes.bold||e.attributes.bold,t.attributes.italic=t.attributes.italic||e.attributes.italic,t.attributes.underline=t.attributes.underline||e.attributes.underline,t.attributes.fontFamily=e.attributes.fontFamily||t.attributes.fontFamily,t.attributes.fontSize=e.attributes.fontSize||t.attributes.fontSize,t.attributes.fontColor=e.attributes.fontColor||t.attributes.fontColor,t.attributes.bgColor=e.attributes.bgColor||t.attributes.bgColor):o.set(e.text,Object.assign({},e))}}),o.forEach(t=>{e.push(new n(t.text,t.attributes))}),console.log(e,"pieces--parseParagraphText (merged)")}extractTextAttributes(t){var e;const n=t.textContent||"";return n?(console.log("extractTextAttributes node",t,t.style.color),{text:n,attributes:{bold:null!==t.querySelector("b, strong"),italic:null!==t.querySelector("i, em"),underline:null!==t.querySelector("u"),undo:!1,redo:!1,fontFamily:t.style.fontFamily||"Arial",fontSize:t.style.fontSize||"12px",hyperlink:!!t.querySelector("a")&&(null===(e=t.querySelector("a"))||void 0===e?void 0:e.getAttribute("href")),fontColor:t.style.color,bgColor:t.style.backgroundColor}}):null}rgbToHex(t,e=!1){const n=t.match(/\d+/g);if(!n||n.length<3)return null;const s=n.map(t=>{const e=parseInt(t);return e<0||e>255?"00":e.toString(16).padStart(2,"0")}).join("");return e||"000000"!==s?`#${s}`:null}}class v{constructor(t,e){this.editor=t,this.document=e,this.isImageHighlighted=!1,this.highLightedImageDataId="",this.currentCursorLocation=0,this.isCrossIconVisible=!1}setEditorView(t){this.editorView=t}insertImage(){const t=document.createElement("input");t.type="file",t.accept="image/*",t.click(),t.onchange=()=>{const e=t.files?t.files[0]:null;if(e){const t=new FileReader;t.onload=t=>{var e;const n=null===(e=t.target)||void 0===e?void 0:e.result;this.insertImageAtCursor(n)},t.readAsDataURL(e)}}}insertImageAtCursor(t){if(!t)return;const[e,n]=l(this.editorView);n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId),this.insertImageAtPosition(t,e,this.document.selectedBlockId)}setCursorPostion(t,e){if("number"!=typeof t||!e)return;const n=document.querySelector(`[data-id="${e}"]`);n&&("function"==typeof n.focus&&n.focus(),setTimeout(()=>{const e=document.createRange(),s=window.getSelection();if(n.firstChild)e.setStart(n.firstChild,t);else{const t=document.createTextNode("");n.appendChild(t),e.setStart(t,0)}e.collapse(!0),null==s||s.removeAllRanges(),null==s||s.addRange(e)},0))}insertImageAtPosition(t,e,s){if(!t||"number"!=typeof e||!this.editorView)return;console.log(t,e,s,"vicky insertImageAtPosition",this.document.blocks);const o=`data-id-${Date.now()}-${1e3*Math.random()}`,i=`data-id-${Date.now()}-${1e3*Math.random()}`,l=`data-id-${Date.now()}-${1e3*Math.random()}`,a={dataId:o,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(" ")],type:"image",image:t},d={dataId:i,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(" ")],type:"text"};let r=this.document.selectedBlockId;const c=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);let h=[];const{remainingText:p,piece:m}=function(t,e){const n=window.getSelection();if(!n||0===n.rangeCount)return{remainingText:"",piece:null};const s=n.getRangeAt(0).startContainer;let o="";const i=e.blocks.filter(e=>{if(e.dataId===t)return e});if(!i[0]||!i[0].pieces)return{remainingText:"",piece:null};const l=document.querySelector(`[data-id="${t}"]`),a=e.getCursorOffsetInParent(`[data-id="${t}"]`);let d=[],r=0;if(i[0].pieces.forEach((t,e)=>{o+=t.text,(null==a?void 0:a.innerText)===t.text&&(r=e,d.push(t))}),i[0].pieces.length>1&&i[0].pieces.forEach((t,e)=>{r0){const t=p.split(" ");let e=[];""!==t[0]||void 0!==t[1]?1===m.length?e=[new n(g,m[0].attributes)]:(e.push(new n(" "+t[0]+" ",m[0].attributes)),m.length>=2&&m.forEach((t,n)=>{0!==n&&e.push(t)})):e=[new n(" ")],console.log(this.document.selectedBlockId,"uniqueId3 extractTextFromDataId-vicky",l),f=function(t,e,n){const s=t.findIndex(t=>t.dataId===e);return-1===s?(console.error(`Block with dataId "${e}" not found.`),t):[...t.slice(0,s+1),n,...t.slice(s+1)]}(this.document.blocks,this.document.selectedBlockId||"",{dataId:l,class:u.PARAGRAPH_BLOCK_CLASS,pieces:e,type:"text"})}this.document.blocks=f,this.document.deleteRange(this.currentCursorLocation,this.currentCursorLocation+p.length,this.document.selectedBlockId,this.document.currentOffset),this.document.blocks.length>c+1?this.document.blocks.forEach((t,e)=>{h.push(t),e===c?h.push(a):r===this.document.selectedBlockId&&(r=t.dataId)}):(h=[...this.document.blocks,a,d],r=d.dataId),this.document.blocks=h,this.editorView.render(),this.document.selectedBlockId=r;const b=document.querySelector(`[data-id="${r}"]`);b.focus(),setTimeout(()=>{const t=document.createRange(),e=window.getSelection();if(b.firstChild)t.setStart(b.firstChild,1);else{const e=document.createTextNode("");b.appendChild(e),t.setStart(e,0)}t.collapse(!0),null==e||e.removeAllRanges(),null==e||e.addRange(t)},0)}createImageFragment(t,e){if(!t||!e)return document.createDocumentFragment();const n=document.createDocumentFragment(),s=document.createElement("img");s.src=t,s.style.maxWidth="30%",s.setAttribute("contenteditable","false"),n.appendChild(s);const o=document.createElement("span");return o.setAttribute("contenteditable","false"),o.appendChild(n),s.addEventListener("click",()=>this.addStyleToImage(e)),o}addStyleToImage(t){if(t&&!this.isCrossIconVisible){const e=document.querySelector(`[data-id="${t}"]`),n=null==e?void 0:e.querySelector("span");n&&(n.style.position="relative");const s=null==e?void 0:e.querySelector("img");s&&(s.style.border="2px solid blue");const o=document.createElement("div");o.className=u.IMAGE_CROSS_CLASS,o.innerHTML="x",Object.assign(o.style,{position:"absolute",top:"0",left:"50%",transform:"translate(-50%, 0)",background:"#fff",borderRadius:"50%",width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",border:"3px solid blue",zIndex:"999"}),o.addEventListener("mouseover",()=>o.style.border="3px solid black"),o.addEventListener("mouseout",()=>o.style.border="3px solid blue"),o.addEventListener("click",t=>{t.stopPropagation(),this.deleteImage()}),null==n||n.appendChild(o),this.isImageHighlighted=!0,this.highLightedImageDataId=t,this.isCrossIconVisible=!0}}clearImageStyling(){if(!this.highLightedImageDataId)return;const t=document.querySelector(`[data-id="${this.highLightedImageDataId}"]`);if(t){const e=t.querySelector("span");null==e||e.removeAttribute("style");const n=null==e?void 0:e.querySelector("img");n&&n.removeAttribute("style");const s=null==e?void 0:e.querySelector(`.${u.IMAGE_CROSS_CLASS}`);null==s||s.remove(),this.highLightedImageDataId=""}this.isCrossIconVisible=!1}deleteImage(){this.highLightedImageDataId&&(this.document.blocks=this.document.blocks.filter(t=>t.dataId!==this.highLightedImageDataId),this.highLightedImageDataId="",this.isImageHighlighted=!1,this.clearImageStyling(),this.document.emit("documentChanged",this))}}class I{constructor(t,e){this.snapshotUndoStack=[],this.snapshotRedoStack=[],this.maxSnapshots=5e3,this.document=t,this.editorView=e}createSnapshot(){const[t,e]=l(this.editorView);return{blocks:JSON.parse(JSON.stringify(this.document.blocks)),dataIds:[...this.document.dataIds],selectedBlockId:this.document.selectedBlockId,currentOffset:this.document.currentOffset,selection:this.getCurrentSelection(),cursorPosition:t}}getCurrentSelection(){const t=o(this.document.editorView.container);return t?{start:t.start,end:t.end}:{start:0,end:0}}saveUndoSnapshot(){const t=this.createSnapshot();console.log("Saving snapshot:",t.cursorPosition,"Stack length:",this.snapshotUndoStack.length),this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift(),this.snapshotRedoStack=[]}restoreSnapshot(t){this.document.blocks=t.blocks,this.document.dataIds=t.dataIds,this.document._selectedBlockId=t.selectedBlockId,this.document.currentOffset=t.currentOffset;for(let t of this.document.blocks)t.pieces&&Array.isArray(t.pieces)&&(t.pieces=t.pieces.map(t=>new n(t.text,t.attributes)));this.document.emit("documentChanged",this.document),setTimeout(()=>{this.document.setCursorPosition(t.cursorPosition||0)},0)}undo(){if(console.log("UNDO - Undo stack length:",this.snapshotUndoStack.length),console.log("UNDO - Redo stack length:",this.snapshotRedoStack.length),0===this.snapshotUndoStack.length)return;const t=this.createSnapshot();this.snapshotRedoStack.push(t),this.snapshotRedoStack.length>this.maxSnapshots&&this.snapshotRedoStack.shift();const e=this.snapshotUndoStack.pop();e&&(console.log("UNDO - Restoring cursor position:",e.cursorPosition),this.restoreSnapshot(e))}redo(){if(0===this.snapshotRedoStack.length)return;const t=this.createSnapshot();this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift();const e=this.snapshotRedoStack.pop();e&&this.restoreSnapshot(e)}}class x extends e{constructor(t){super(),this.container=t,this.setupButtons()}setupButtons(){this.container.addEventListener("mousedown",t=>{t.preventDefault()}),this.container.addEventListener("click",t=>{const e=t.target.closest("button");if(e){const t=e.getAttribute("data-action");t&&this.emit("popupAction",t)}})}show(t){const e=t.getRangeAt(0).getBoundingClientRect();if(0===e.width&&0===e.height)return void this.hide();this.container.style.display="flex";const n=this.container.offsetWidth,s=this.container.offsetHeight;let o=e.top+window.scrollY-s-8,i=e.left+window.scrollX+e.width/2-n/2;o{const n=e.getAttribute("data-action");let s=!1;"bold"===n&&t.bold&&(s=!0),"italic"===n&&t.italic&&(s=!0),"underline"===n&&t.underline&&(s=!0),"strikethrough"===n&&t.strikethrough&&(s=!0),"hyperlink"===n&&t.hyperlink&&(s=!0),e.classList.toggle("active",s)})}}class E{constructor(){this.linkElement=null,this.createPopup()}setCallbacks(t,e){this.onOpenClick=t,this.onUnlinkClick=e}createPopup(){this.popup=document.createElement("div"),this.popup.className="link-popup",this.popup.style.cssText="\n position: absolute;\n background: #000;\n border-radius: 4px;\n padding: 2px;\n box-shadow: 0 1px 4px rgba(0,0,0,0.5);\n z-index: 1000;\n ",this.popup.style.display="none";const t=this.createButton("Open","🔗"),e=this.createButton("Unlink","✕");t.addEventListener("click",()=>this.handleOpenClick()),e.addEventListener("click",()=>this.handleUnlinkClick()),this.popup.appendChild(t),this.popup.appendChild(e),document.body.appendChild(this.popup)}createButton(t,e){const n=document.createElement("button");return n.innerHTML=`${e}`,n.title=t,n.style.cssText="\n background: transparent;\n color: white;\n border: none;\n padding: 4px;\n margin: 0 1px;\n border-radius: 2px;\n cursor: pointer;\n font-size: 16px;\n transition: background 0.1s;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n ",n.addEventListener("mouseenter",()=>{n.style.background="#333"}),n.addEventListener("mouseleave",()=>{n.style.background="transparent"}),n}handleOpenClick(){this.linkElement&&this.onOpenClick&&this.onOpenClick(this.linkElement.href)}handleUnlinkClick(){this.onUnlinkClick&&this.linkElement&&this.onUnlinkClick(this.linkElement)}show(t,e,n){this.linkElement=t;const s=t.getBoundingClientRect();this.popup.style.left=`${s.left+window.scrollX}px`,this.popup.style.top=`${s.bottom+window.scrollY+5}px`,this.popup.style.display="flex",this.popup.style.opacity="0",this.popup.style.transform="translateY(-2px)",requestAnimationFrame(()=>{this.popup.style.transition="opacity 0.1s ease-in-out, transform 0.1s ease-in-out",this.popup.style.opacity="1",this.popup.style.transform="translateY(0)"})}hide(){"none"!==this.popup.style.display&&(this.popup.style.transition="opacity 0.1s ease-in-out, transform 0.1s ease-in-out",this.popup.style.opacity="0",this.popup.style.transform="translateY(-2px)",setTimeout(()=>{this.popup.style.display="none",this.popup.style.transition=""},100))}isPopup(t){return this.popup.contains(t)}isVisible(){return"none"!==this.popup.style.display}}class w{constructor(t,e,n,s){this.isRecording=!1,this.silenceTimer=null,this.document=t,this.editorView=e,this.onStateChange=n,this.insertText=s;const o=window.SpeechRecognition||window.webkitSpeechRecognition;o?(this.recognition=new o,this.recognition.continuous=!0,this.recognition.interimResults=!1,this.recognition.onresult=t=>{const e=t.results[t.results.length-1];if(e.isFinal){const t=e[0].transcript+" ";this.insertText(t)}},this.recognition.onerror=t=>{console.error("Speech recognition error:",t.error),"no-speech"!==t.error&&this.stopRecording()},this.recognition.onend=()=>{this.stopRecording()}):console.warn("Speech Recognition API not supported in this browser.")}toggleRecording(){this.isRecording?this.stopRecording():this.startRecording()}startRecording(){if(this.recognition)try{this.recognition.start(),this.isRecording=!0,this.onStateChange(!0)}catch(t){console.error("Failed to start speech recognition:",t)}}stopRecording(){if(this.recognition&&this.isRecording){try{this.recognition.stop()}catch(t){console.warn("Some problem occur during the stop recording . . . ",t)}this.isRecording=!1,this.onStateChange(!1),this.silenceTimer&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}}}class _{constructor(t,e){this.modal=null,this.activeTable=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openTableModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement("div");t.className="table_modal",t.id="table_modal";const e=document.createElement("div");e.className="main_modal",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-label","Insert Table");const n=document.createElement("div");n.className="main_modal_header";const s=document.createElement("h3");s.className="main_modal_title",s.textContent="Insert Table";const o=document.createElement("button");o.className="main_modal_close",o.setAttribute("aria-label","Close"),o.innerHTML=f.close_icon,o.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(o);const i=document.createElement("div");i.className="main_modal_body";const l=document.createElement("div");l.className="main_modal_inputs";const a=document.createElement("div");a.className="all_input";const d=document.createElement("label");d.textContent="Rows",d.className="input_label",d.setAttribute("for","modal_input_row");const r=document.createElement("input");r.type="number",r.id="modal_input_row",r.className="modal_inputs",r.placeholder="Enter the row number 1 to 20",r.min="1",r.max="20",r.value="3",a.appendChild(d),a.appendChild(r);const c=document.createElement("div");c.className="all_input";const h=document.createElement("label");h.textContent="Columns",h.className="input_label",h.setAttribute("for","modal_input_col");const u=document.createElement("input");u.type="number",u.id="modal_input_col",u.className="modal_inputs",u.placeholder="Enter the coloumn number 1 to 20",u.min="1",u.max="20",u.value="3",c.appendChild(h),c.appendChild(u),l.appendChild(a),l.appendChild(c);const p=document.createElement("div");p.className="main_modal_footer";const m=document.createElement("button");m.className="modal_close_button modal_close_button_secondary",m.textContent="Cancel",m.type="button",m.onclick=()=>this.closeModal();const g=document.createElement("button");g.className="modal_close_button modal_close_button_primary",g.textContent="Insert Table",g.type="button",g.onclick=()=>{const t=Math.max(1,Math.min(20,parseInt(r.value)||3)),e=Math.max(1,Math.min(20,parseInt(u.value)||3));this.insertTable(t,e),this.closeModal()},p.appendChild(m),p.appendChild(g),i.appendChild(l),e.appendChild(n),e.appendChild(i),e.appendChild(p),t.appendChild(e),t.addEventListener("click",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add("table_modal_visible")})}closeModal(){this.modal&&(this.modal.classList.remove("table_modal_visible"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertTable(t,e){const s=`data-id-${Date.now()}`,o=`data-id-${Date.now()+1}`,i=document.createElement("div");i.className="table_wrapper",i.setAttribute("data-type","tbl"),i.setAttribute("data-id",s),i.setAttribute("contenteditable","false");const l=document.createElement("div");l.className="table_controls";const a=document.createElement("button");a.className="table_delete_button",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))},l.appendChild(a),i.appendChild(l);const d=document.createElement("table");d.className="tbl";const r=document.createElement("thead"),c=document.createElement("tr");for(let t=0;tt.dataId===this.document.selectedBlockId);-1!==t&&(u=t+1)}const p={dataId:s,type:"table",element:i},m={dataId:o,type:"text",class:"paragraph-block",pieces:[new n("​",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(u,0,p,m),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit("documentChanged",this.document),setTimeout(()=>{const t=i.querySelector(".tblCell");t&&(t.focus(),this.setActiveTable(i.querySelector("table")))},0)}setupCellEvents(t){t.addEventListener("focus",()=>{const e=t.closest("table");e&&this.setActiveTable(e),t.classList.add("tblCell_focused")}),t.addEventListener("blur",()=>{t.classList.remove("tblCell_focused")}),t.addEventListener("keydown",e=>{var n;const s=e;if("Tab"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest("table"))||void 0===n?void 0:n.querySelectorAll(".tblCell"))||[]),o=e.indexOf(t);if(s.shiftKey)o>0&&(e[o-1].focus(),this.selectAllInCell(e[o-1]));else if(o{e!==t&&e.classList.remove("tbl_active")}),t.classList.add("tbl_active"),this.activeTable=t}clearTableActive(){this.activeTable&&(this.activeTable.classList.remove("tbl_active"),this.activeTable=null)}setupClickOutsideListener(){document.addEventListener("click",t=>{const e=t.target,n=null!==e.closest(".table_wrapper"),s=null!==e.closest("#table_modal");n||s||this.clearTableActive()},!0),document.addEventListener("focusin",t=>{t.target.closest(".table_wrapper")||this.clearTableActive()},!0)}}const T=[{label:"Smileys & People",items:[{char:"😀",name:"grinning face",shortcode:":grinning:"},{char:"😃",name:"big eyes smile",shortcode:":smiley:"},{char:"😄",name:"smiling eyes grin",shortcode:":smile:"},{char:"😁",name:"beaming grin",shortcode:":grin:"},{char:"😆",name:"squinting laugh",shortcode:":laughing:"},{char:"😅",name:"sweat smile",shortcode:":sweat_smile:"},{char:"🤣",name:"rolling floor laughing",shortcode:":rofl:"},{char:"😂",name:"tears of joy",shortcode:":joy:"},{char:"🙂",name:"slightly smiling",shortcode:":slightly_smiling_face:"},{char:"😊",name:"smiling eyes blush",shortcode:":blush:"}]}],L="recent_emojies";class A{constructor(){this.isOpen=!1,this.popup=this.buildPopup(),this.gridArea=this.popup.querySelector(".emoji_grid"),this.searchInput=this.popup.querySelector(".emoji_serch"),document.body.appendChild(this.popup),document.addEventListener("mousedown",t=>{if(this.isOpen&&!this.popup.contains(t.target)){t.target.closest('[data-action="emoji"]')||this.close()}})}onSelect(t){this.onSelectCallback=t}open(t){const e=t.getBoundingClientRect();let n=e.left+window.scrollX;n+320>window.innerWidth-8&&(n=window.innerWidth-320-8);const s=e.bottom+window.scrollY+4;this.popup.style.left=`${n}px`,this.popup.style.top=`${s}px`,this.popup.style.display="flex",this.isOpen=!0,this.searchInput.value="",this.renderGrid("")}close(){this.popup.style.display="none",this.isOpen=!1}getIsOpen(){return this.isOpen}buildPopup(){const t=document.createElement("div");t.style.cssText="\n position: absolute;\n display: none;\n flex-direction: column;\n width: 320px;\n max-height: 380px;\n background: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 10px;\n box-shadow: 0 6px 24px rgba(0,0,0,0.14);\n z-index: 9999;\n overflow: hidden;\n font-family: system-ui, -apple-system, sans-serif;\n ";const e=document.createElement("div");e.style.cssText="\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fafafa;\n ";const n=document.createElement("input");n.type="text",n.placeholder="🔍 Search emojis or :shortcode:",n.className="emoji_serch",n.style.cssText="\n flex: 1;\n padding: 6px 10px;\n border: 1px solid #ccc;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n background: #fff;\n ",n.addEventListener("input",()=>this.renderGrid(n.value.trim())),e.appendChild(n);const s=document.createElement("div");return s.className="emoji_grid",s.style.cssText="\n flex: 1;\n overflow-y: auto;\n padding: 10px 12px 12px;\n ",t.appendChild(e),t.appendChild(s),t}getRecentEmojis(){try{const t=localStorage.getItem(L);return t?JSON.parse(t):[]}catch(t){return[]}}saveRecentEmoji(t){const e=this.getRecentEmojis().filter(e=>e.char!==t.char);e.unshift(t),e.length>24&&(e.length=24);try{localStorage.setItem(L,JSON.stringify(e))}catch(t){console.error("Problem occur in saving emojies",t)}}resolveChar(t){return t.char}renderGrid(t){this.gridArea.innerHTML="";const e=t.toLowerCase().replace(/^:/,"").replace(/:$/,""),n=(t,e)=>{if(!e.length)return;const n=document.createElement("div");n.style.marginBottom="12px";const s=document.createElement("div");s.textContent=t,s.style.cssText="\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 6px;\n ",n.appendChild(s);const o=document.createElement("div");o.style.cssText="\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 2px;\n ",e.forEach(t=>{const e=this.resolveChar(t),n=document.createElement("button");n.textContent=e,n.title=`${t.name} ${t.shortcode}`,n.style.cssText="\n font-size: 20px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 5px;\n padding: 4px;\n line-height: 1.2;\n transition: background 0.1s;\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n ",n.addEventListener("mouseenter",()=>n.style.background="#f0f0f0"),n.addEventListener("mouseleave",()=>n.style.background="transparent"),n.addEventListener("mousedown",n=>{var s;n.preventDefault(),this.saveRecentEmoji(t),null===(s=this.onSelectCallback)||void 0===s||s.call(this,e)}),o.appendChild(n)}),n.appendChild(o),this.gridArea.appendChild(n)};if(e){const t=[];T.forEach(n=>{n.items.forEach(n=>{(n.name.includes(e)||n.shortcode.includes(e))&&t.push(n)})}),n(`Results for "${e}"`,t)}else{const t=this.getRecentEmojis();n("Recently Used",t),T.forEach(t=>n(t.label,t.items))}if(!this.gridArea.querySelector("button")){const t=document.createElement("div");t.textContent="No emojis found",t.style.cssText="text-align: center; color: #aaa; padding: 24px 0; font-size: 13px;",this.gridArea.appendChild(t)}}}class S{constructor(){this.currentLanguage="",this.onSaveCallback=null,this.onCloseCallback=null,this.container=document.createElement("div"),this.container.className="code_editor_modal",this.container.style.display="none";const t=document.createElement("div");t.className="code_editor_modal_content";const e=document.createElement("div");e.className="code_editor_modal_header";const n=document.createElement("span");n.className="code_editor_modal_title";const s=document.createElement("div");s.className="code_editor_modal_actions",this.copyBtn=document.createElement("button"),this.copyBtn.className="copy_editor_btn",this.copyBtn.innerText="Copy",this.copyBtn.onclick=()=>this.handleCopy(),this.saveBtn=document.createElement("button"),this.saveBtn.className="copy_editor_btn copy_editor_btn--primary",this.saveBtn.innerText="Save",this.saveBtn.onclick=()=>this.handleSave(),this.cancelBtn=document.createElement("button"),this.cancelBtn.className="copy_editor_btn copy_editor_btn--cancel",this.cancelBtn.innerText="Cancel",this.cancelBtn.onclick=()=>this.handleClose(),s.appendChild(this.copyBtn),s.appendChild(this.saveBtn),s.appendChild(this.cancelBtn),e.appendChild(n),e.appendChild(s);const o=document.createElement("div");o.className="editor_moal_wrapper",this.lineNumbers=document.createElement("div"),this.lineNumbers.className="editor_moal_line_number",this.pre=document.createElement("pre"),this.pre.className="editor_modal_pre_block",this.pre.setAttribute("aria-hidden","true"),this.codeHighlight=document.createElement("code"),this.codeHighlight.className="modal_editor_highlight",this.pre.appendChild(this.codeHighlight),this.textArea=document.createElement("textarea"),this.textArea.className="modal_editor_text_area",this.textArea.spellcheck=!1,o.appendChild(this.lineNumbers),o.appendChild(this.pre),o.appendChild(this.textArea),t.appendChild(e),t.appendChild(o),this.container.appendChild(t),document.body.appendChild(this.container),this.attachEventListeners()}attachEventListeners(){this.textArea.addEventListener("input",()=>{this.syncHighlight()}),this.textArea.addEventListener("scroll",()=>{this.pre.scrollTop=this.textArea.scrollTop,this.pre.scrollLeft=this.textArea.scrollLeft,this.lineNumbers.scrollTop=this.textArea.scrollTop}),this.textArea.addEventListener("keydown",t=>{if("Tab"===t.key){t.preventDefault();const e=this.textArea.selectionStart,n=this.textArea.selectionEnd;this.textArea.value=this.textArea.value.substring(0,e)+" "+this.textArea.value.substring(n),this.textArea.selectionStart=this.textArea.selectionEnd=e+2,this.syncHighlight()}}),this.container.addEventListener("click",t=>{t.target===this.container&&this.handleClose()})}syncHighlight(){const t=this.textArea.value.replace(/&/g,"&").replace(//g,">");this.codeHighlight.innerHTML=t+"\n"}handleCopy(){navigator.clipboard.writeText(this.textArea.value).then(()=>{const t=this.copyBtn.innerText;this.copyBtn.innerText="Copied!",setTimeout(()=>this.copyBtn.innerText=t,2e3)})}handleSave(){this.onSaveCallback&&this.onSaveCallback(this.textArea.value),this.close()}handleClose(){this.onCloseCallback&&this.onCloseCallback(),this.close()}open(t,e,n,s){this.currentLanguage=e,this.onSaveCallback=n,this.onCloseCallback=s;this.container.querySelector(".code_editor_modal_title").innerText=e||"text",this.textArea.value=t,this.syncHighlight(),this.container.style.display="flex",setTimeout(()=>this.textArea.focus(),50)}close(){this.container.style.display="none",this.textArea.value="",this.currentLanguage=""}}class R{constructor(t,e){this.modal=null,this.activeLayout=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openLayoutModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement("div");t.className="table_modal",t.id="layout_modal";const e=document.createElement("div");e.className="main_modal layout_main_modal",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-label","Insert Layout");const n=document.createElement("div");n.className="main_modal_header";const s=document.createElement("h3");s.className="main_modal_title",s.textContent="Insert Layout";const o=document.createElement("button");o.className="main_modal_close",o.setAttribute("aria-label","Close"),o.innerHTML=f.close_icon,o.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(o);const i=document.createElement("div");i.className="main_modal_body";const l=document.createElement("label");l.textContent="Preset Splits",l.className="input_label",l.style.display="block",l.style.marginBottom="8px";const a=document.createElement("div");a.style.display="flex",a.style.flexWrap="wrap",a.style.gap="8px",a.style.marginBottom="16px";[{label:"Single",cols:1,widths:[100]},{label:"50 - 50",cols:2,widths:[50,50]},{label:"60 - 40",cols:2,widths:[60,40]},{label:"40 - 60",cols:2,widths:[40,60]},{label:"33 - 33 - 33",cols:3,widths:[33.33,33.33,33.33]},{label:"25 - 50 - 25",cols:3,widths:[25,50,25]}].forEach(t=>{const e=document.createElement("button");e.className="modal_close_button modal_close_button_secondary",e.style.padding="4px 8px",e.style.fontSize="12px",e.textContent=t.label,e.onclick=()=>{this.insertLayout(t.cols,t.widths),this.closeModal()},a.appendChild(e)});const d=document.createElement("label");d.textContent="Or Custom Splits (comma separated %)",d.className="input_label",d.style.display="block",d.style.marginBottom="8px";const r=document.createElement("input");r.type="text",r.className="modal_inputs",r.placeholder="e.g. 20, 60, 20",r.style.width="100%",i.appendChild(l),i.appendChild(a),i.appendChild(d),i.appendChild(r);const c=document.createElement("div");c.className="main_modal_footer";const h=document.createElement("button");h.className="modal_close_button modal_close_button_secondary",h.textContent="Cancel",h.type="button",h.onclick=()=>this.closeModal();const u=document.createElement("button");u.className="modal_close_button modal_close_button_primary",u.textContent="Insert Custom",u.type="button",u.onclick=()=>{const t=r.value.trim();if(t){const e=t.split(",").map(t=>parseFloat(t.trim())).filter(t=>!isNaN(t));if(e.length>0){const t=e.reduce((t,e)=>t+e,0),n=e.map(e=>e/t*100);this.insertLayout(n.length,n)}else this.insertLayout(2,[50,50])}else this.insertLayout(2,[50,50]);this.closeModal()},c.appendChild(h),c.appendChild(u),e.appendChild(n),e.appendChild(i),e.appendChild(c),t.appendChild(e),t.addEventListener("click",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add("table_modal_visible")})}closeModal(){this.modal&&(this.modal.classList.remove("table_modal_visible"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertLayout(t,e){const s=`data-id-${Date.now()}`,o=`data-id-${Date.now()+1}`,i=document.createElement("div");i.className="layout_wrapper",i.setAttribute("data-type","layout"),i.setAttribute("data-id",s),i.setAttribute("contenteditable","false");const l=document.createElement("div");l.className="table_controls";const a=document.createElement("button");a.className="table_delete_button",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))},l.appendChild(a),i.appendChild(l);const d=document.createElement("div");d.className="layout_container",d.style.display="flex",d.style.width="100%",d.style.gap="10px";for(let n=0;nt.dataId===this.document.selectedBlockId);-1!==t&&(r=t+1)}const c={dataId:s,type:"layout",element:i},h={dataId:o,type:"text",class:"paragraph-block",pieces:[new n("​",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(r,0,c,h),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit("documentChanged",this.document),setTimeout(()=>{const t=i.querySelector(".layout_column");t&&(t.focus(),this.setActiveLayout(i.querySelector(".layout_container")))},0)}setupCellEvents(t){t.addEventListener("focus",()=>{const e=t.closest(".layout_container");e&&this.setActiveLayout(e),t.classList.add("tblCell_focused")}),t.addEventListener("blur",()=>{t.classList.remove("tblCell_focused")}),t.addEventListener("keydown",e=>{var n;const s=e;if("Tab"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(".layout_container"))||void 0===n?void 0:n.querySelectorAll(".layout_column"))||[]),o=e.indexOf(t);if(s.shiftKey)o>0&&(e[o-1].focus(),this.selectAllInCell(e[o-1]));else if(o{e!==t&&e.classList.remove("layout_active")}),t.classList.add("layout_active"),this.activeLayout=t}clearLayoutActive(){this.activeLayout&&(this.activeLayout.classList.remove("layout_active"),this.activeLayout=null)}setupClickOutsideListener(){document.addEventListener("click",t=>{const e=t.target,n=null!==e.closest(".layout_wrapper"),s=null!==e.closest("#layout_modal");n||s||this.clearLayoutActive()},!0),document.addEventListener("focusin",t=>{t.target.closest(".layout_wrapper")||this.clearLayoutActive()},!0)}}class B{constructor(t,e){this.modal=null,this.isKatexLoaded=!1,this.editingBlockId=null,this.editor=t,this.document=e,this.loadKatex()}loadKatex(){if("undefined"!=typeof katex)return void(this.isKatexLoaded=!0);if(document.getElementById("katex-js"))return;const t=document.createElement("link");t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css",document.head.appendChild(t);const e=document.createElement("script");e.id="katex-js",e.src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js",e.onload=()=>{this.isKatexLoaded=!0},document.head.appendChild(e)}openMathModal(t="",e=null){if(!this.isKatexLoaded)return void alert("Math rendering engine is still loading. Please try again in a moment.");this.editingBlockId=e,this.modal&&(this.modal.remove(),this.modal=null);const n=document.createElement("div");n.className="table_modal",n.id="math_modal";const s=document.createElement("div");s.className="main_modal",s.setAttribute("role","dialog"),s.setAttribute("aria-modal","true"),s.setAttribute("aria-label","Insert Equation"),s.style.width="400px",s.style.height="390px",s.style.maxHeight="90vh",s.style.position="fixed",s.style.top="90px",s.style.right="-90px",s.style.margin="0";const o=document.createElement("div");o.className="main_modal_header";const i=document.createElement("h3");i.className="main_modal_title",i.textContent=this.editingBlockId?"Edit Equation":"Insert Equation";const l=document.createElement("button");l.className="main_modal_close",l.setAttribute("aria-label","Close"),l.innerHTML=f.close_icon,l.onclick=()=>this.closeModal(),o.appendChild(i),o.appendChild(l);const a=document.createElement("div");a.className="main_modal_body";const d=document.createElement("label");d.textContent="LaTeX Input:",d.className="input_label",d.style.display="block",d.style.marginBottom="8px";const r=document.createElement("textarea");r.className="modal_inputs",r.style.width="100%",r.style.height="80px",r.style.resize="vertical",r.placeholder="e.g. c = \\pm\\sqrt{a^2 + b^2}",r.value=t;const c=document.createElement("label");c.textContent="Preview:",c.className="input_label",c.style.display="block",c.style.marginTop="16px",c.style.marginBottom="8px";const h=document.createElement("div");h.style.padding="10px",h.style.border="1px solid #ccc",h.style.borderRadius="4px",h.style.minHeight="50px",h.style.display="flex",h.style.alignItems="center",h.style.justifyContent="center",h.style.overflowX="auto";const u=()=>{try{katex.render(r.value||"Preview",h,{throwOnError:!1})}catch(t){console.error("error",t),h.textContent="Invalid LaTeX"}};r.addEventListener("input",u),a.appendChild(d),a.appendChild(r),a.appendChild(c),a.appendChild(h);const p=document.createElement("div");p.className="main_modal_footer";const m=document.createElement("button");m.className="modal_close_button modal_close_button_secondary",m.textContent="Cancel",m.type="button",m.onclick=()=>this.closeModal();const g=document.createElement("button");g.className="modal_close_button modal_close_button_primary",g.textContent="Apply Equation",g.type="button",g.onclick=()=>{r.value.trim()&&this.insertEquation(r.value.trim()),this.closeModal()},p.appendChild(m),p.appendChild(g),s.appendChild(o),s.appendChild(a),s.appendChild(p),n.appendChild(s),n.addEventListener("click",t=>{t.target===n&&this.closeModal()}),document.body.appendChild(n),this.modal=n,requestAnimationFrame(()=>{n.classList.add("table_modal_visible"),r.focus(),u()})}closeModal(){this.modal&&(this.modal.classList.remove("table_modal_visible"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null,this.editingBlockId=null},200))}insertEquation(t){const e=katex.renderToString(t,{output:"mathml"});if(this.editingBlockId){const n=this.document.blocks.find(t=>t.dataId===this.editingBlockId);if(n&&n.element){const s=n.element.querySelector(".math_node");s&&(s.innerHTML=e,s.dataset.latex=t)}return void this.document.emit("documentChanged",this.document)}const s=`data-id-${Date.now()}`,o=document.createElement("div");o.setAttribute("data-id",s),o.setAttribute("contenteditable","false"),o.style.display="inline-flex",o.style.alignItems="center",o.style.gap="6px",o.style.margin="4px",o.style.cursor="pointer",o.style.position="relative";const i=document.createElement("button");i.className="table_delete_button",i.innerHTML=f.close_icon,i.style.cursor="pointer",i.style.opacity="0",i.style.transition="opacity 0.2s",o.onmouseenter=()=>{i.style.opacity="1"},o.onmouseleave=()=>{i.style.opacity="0"},i.onclick=t=>{t.stopPropagation();const e=this.document.blocks.findIndex(t=>t.dataId===s);-1!==e&&(this.document.blocks.splice(e,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document))};const l=document.createElement("span");l.className="math_node",l.dataset.latex=t,l.innerHTML=e,o.onclick=e=>{e.stopPropagation(),this.openMathModal(t,s)},o.appendChild(l),o.appendChild(i);let a=this.document.blocks.length;if(this.document.selectedBlockId){const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);-1!==t&&(a=t+1)}const d={dataId:s,type:"math",element:o},r={dataId:`data-id-${Date.now()+1}`,type:"text",class:"paragraph-block",pieces:[new n("​",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(a,0,d,r),this.document.selectedBlockId=r.dataId,this.document.currentOffset=0,this.document.emit("documentChanged",this.document)}}class O{constructor(t){this.isSpeaking=!1,this.synth=window.speechSynthesis,this.onStateChange=t}getHindiVoice(){return this.synth.getVoices().find(t=>"Google हिन्दी"===t.name||"hi-IN"===t.lang)||null}speak(t){if(!t||""===t.trim())return;this.synth.speaking&&this.synth.cancel();const e=new SpeechSynthesisUtterance(t),n=this.getHindiVoice();n&&(e.voice=n,e.lang="hi-IN"),e.onstart=()=>{this.isSpeaking=!0,this.onStateChange(!0)},e.onend=()=>{this.isSpeaking=!1,this.onStateChange(!1)},e.onerror=()=>{this.isSpeaking=!1,this.onStateChange(!1)},this.synth.speak(e)}stop(){this.synth.speaking&&(this.synth.cancel(),this.isSpeaking=!1,this.onStateChange(!1))}toggle(t){this.isSpeaking?this.stop():this.speak(t)}}class N extends e{constructor(t,e){var o,i,l,r,g,b,y,T,L,N,H,M,P,D;super(),this.savedSelection=null,this.debounceTimer=null;const{mainEditorId:z,toolbarId:V,popupToolbarId:F}=C(t,e);this.editorContainer=document.getElementById(z)||null,this.toolbarContainer=document.getElementById(V)||null;const j=document.getElementById(F)||null;if(!this.editorContainer||!this.toolbarContainer||!j)throw new Error("Editor element not found or incorrect element type.");this.document=new s,this.editorView=new c(this.editorContainer,this.document),this.toolbarView=new h(this.toolbarContainer),this.popupToolbarView=new x(j),this.linkPopupView=new E,this.hyperlinkHandler=new p(this.editorContainer,this.editorView,this.document),this.imageHandler=new v(this.editorContainer,this.document),this.undoRedoManager=new I(this.document,this.editorView),this.editorView.setImageHandler(this.imageHandler),this.imageHandler.setEditorView(this.editorView),this.document.setEditorView(this.editorView),this.document.setUndoRedoManager(this.undoRedoManager),this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager),this.linkPopupView.setCallbacks(t=>this.openLink(t),t=>this.unlinkText(t)),this.insertTableHandler=new _(this.editorView.container,this.document),this.insertLayoutHandler=new R(this.editorView.container,this.document),this.insertMathHandler=new B(this.editorView.container,this.document),this.textToSpeechHandler=new O(t=>{const e=document.getElementById("textToSpeech");e&&(e.innerHTML=t?f.speaker_off:f.speaker_on,e.dataset.tooltip=t?"stop Reading":"start Reading")}),this.speechToTextHandler=new w(this.document,this.editorView,t=>{const e=document.getElementById("speechToText");e&&(e.innerHTML=t?f.stop_microphone:f.start_microphone,e.dataset.tooltip=t?"stop":"start")},t=>{const[e,n]=this.getSelectionRange();n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId,this.document.currentOffset);let s=e;this.document.insertAt(t,Object.assign({},this.currentAttributes),s,this.document.selectedBlockId,0,"","batch"),s+=t.length,this.setCursorPosition(s)});const U=document.getElementById("speechToText");U&&(U.innerHTML="",U.insertAdjacentHTML("afterbegin",f.start_microphone),U.dataset.tooltip="start");const q=document.getElementById("textToSpeech");q&&(q.innerHTML="",q.insertAdjacentHTML("afterbegin",f.speaker_on),q.dataset.tooltip="start Reading"),this.emojiPickerView=new A,this.codeEditorModal=new S,this.emojiPickerView.onSelect(t=>{var e,n,s,o;const i=null!==(n=null===(e=this.savedSelection)||void 0===e?void 0:e.start)&&void 0!==n?n:0,l=null!==(o=null===(s=this.savedSelection)||void 0===s?void 0:s.end)&&void 0!==o?o:i;l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset,!1),this.document.insertAt(t,Object.assign({},this.currentAttributes),i,this.document.selectedBlockId,0,"","batch");const a=i+t.length;this.savedSelection={start:a,end:a},this.setCursorPosition(a)}),this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,undo:!1,redo:!1,hyperlink:!1},this.manualOverride=!1,this.lastPiece=null,this.toolbarView.on("toolbarAction",(t,e=[])=>this.handleToolbarAction(t,e)),this.popupToolbarView.on("popupAction",t=>this.handleToolbarAction(t)),this.document.on("documentChanged",()=>{if(0===this.document.blocks.length||1===this.document.blocks.length&&this.document.blocks[0].pieces.every(t=>""===t.text.trim()||"​"===t.text)){const t=document.getElementById("loadHtmlButton");t&&(t.selectedIndex=0)}this.editorView.render()}),this.document.on("documentChanged",()=>{var t;const e=this.document.getHtmlContent();this.emit("contentChange",{html:e,text:(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||""})}),this.editorContainer.addEventListener("dblclick",t=>{const e=t.target.closest(".code_block_wrapper");if(e){t.preventDefault();const n=e.getAttribute("data-id");if(!n)return;const s=this.document.blocks.find(t=>t.dataId===n);s&&"code"===s.type&&this.codeEditorModal.open(s.code||"",s.language||"text",t=>{s.code=t,this.document.emit("documentChanged",this.document)},()=>{var t;null===(t=this.editorContainer)||void 0===t||t.focus()})}}),this.editorContainer.addEventListener("keydown",t=>{this.syncCurrentAttributesWithCursor(),this.handleKeydown(t)}),this.editorContainer.addEventListener("keyup",()=>this.syncCurrentAttributesWithCursor()),this.editorContainer.addEventListener("blur",()=>{this.hyperlinkHandler.hideHyperlinkViewButton()}),document.addEventListener("mouseup",()=>{this.syncCurrentAttributesWithCursor();const t=this.document.getAllSelectedDataIds();console.log(t,"dataId lntgerr")}),document.addEventListener("selectionchange",()=>{const t=window.getSelection();t&&!t.isCollapsed||(this.document.dataIds=[],this.document.selectAll=!1)}),null===(o=document.getElementById("fontColor"))||void 0===o||o.addEventListener("click",t=>{t.stopPropagation();const e=document.getElementById("colorWrapper"),n=document.getElementById("fontColorPicker");if(!e||!n)return;const s="block"===e.style.display;e.style.display=s?"none":"block"}),null===(i=document.getElementById("fontColorPicker"))||void 0===i||i.addEventListener("input",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),o=document.getElementById("fontColorIndicator");o&&(o.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.applyFontColor(o,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyFontColor(n,s,e)},300))}),null===(l=document.getElementById("colorResetFont"))||void 0===l||l.addEventListener("click",()=>{const t=document.getElementById("fontColorPicker"),e=document.getElementById("fontColorIndicator");t&&(t.value="#000000",e&&(e.style.backgroundColor="#000000"),t.dispatchEvent(new Event("input")))}),document.addEventListener("click",t=>{var e;const n=t.target,s=document.getElementById("colorWrapper"),o=document.getElementById("colorBgWrapper"),i=document.getElementById("fontColor"),l=document.getElementById("bgColor");!s||n.closest("#colorWrapper")||n===i||(null==i?void 0:i.contains(n))||(s.style.display="none"),!o||n.closest("#colorBgWrapper")||n===l||(null==l?void 0:l.contains(n))||(o.style.display="none"),(null===(e=this.editorContainer)||void 0===e?void 0:e.contains(n))||n.closest(".hyperlink-popup")||this.hyperlinkHandler.hideHyperlinkViewButton()}),null===(r=document.getElementById("bgColor"))||void 0===r||r.addEventListener("click",t=>{t.stopPropagation();const e=document.getElementById("colorBgWrapper"),n=document.getElementById("bgColorPicker");if(!e||!n)return;const s="block"===e.style.display;e.style.display=s?"none":"block"}),null===(g=document.getElementById("bgColorPicker"))||void 0===g||g.addEventListener("input",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),o=document.getElementById("bgColorIndicator");o&&(o.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.applyBgColor(o,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyBgColor(n,s,e)},300))}),null===(b=document.getElementById("colorResetBG"))||void 0===b||b.addEventListener("click",()=>{const t=document.getElementById("bgColorPicker"),e=document.getElementById("bgColorIndicator");t&&(t.value="#ffffff",e&&(e.style.backgroundColor="#ffffff"),t.dispatchEvent(new Event("input")))}),null===(y=document.getElementById("getHtmlButton"))||void 0===y||y.addEventListener("click",t=>{const e=this.document.getHtmlContent(!0);console.log("Editor HTML Content:",e),this.htmlToJsonParser=new k(e);const n=this.htmlToJsonParser.parse();console.log("htmltoJson",JSON.stringify(n,null,2),n),this.showAcknowledgement("HTML copied to clipboard",2e3)}),null===(T=document.getElementById("loadHtmlButton"))||void 0===T||T.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target,n=e.options[e.selectedIndex].dataset.html||u.TEST_HTML_CODE;this.htmlToJsonParser=new k(n),console.log(this.htmlToJsonParser,"this.htmlToJsonParser");const s=this.htmlToJsonParser.parse();this.document.blocks=s,s.length>0&&(this.document.dataIds[0]=s[0].dataId,this.document.selectedBlockId=s[0].dataId),this.document.emit("documentChanged",this);const[o]=this.getSelectionRange();this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let n=o-e;t.fontSize&&this.document.setFontSize(n,e,t.fontSize)}}),console.log("blocks",this.document.blocks,this.document.dataIds,this.document.currentOffset),console.log("htmltoJson",JSON.stringify(s,null,2),s)}),null===(L=document.getElementById("fontFamily"))||void 0===L||L.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.setFontFamily(o,s,e)}}):this.document.setFontFamily(n,s,e)}),null===(N=document.getElementById("fontSize"))||void 0===N||N.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.setFontSize(o,s,e)}}):this.document.setFontSize(n,s,e)}),null===(H=document.getElementById("heading"))||void 0===H||H.addEventListener("change",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value||null;if(this.document.dataIds.length>1)this.document.toggleHeadingForMultipleBlocks(this.document.dataIds,e);else{const t=this.document.selectedBlockId||this.document.dataIds[0];t&&this.document.toggleHeading(t,e)}}),null===(M=document.getElementById("alignLeft"))||void 0===M||M.addEventListener("click",()=>{console.log("alignment alignLeft",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment("left",t))}),null===(P=document.getElementById("alignCenter"))||void 0===P||P.addEventListener("click",()=>{console.log("alignment alignCenter",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment("center",t))}),null===(D=document.getElementById("alignRight"))||void 0===D||D.addEventListener("click",()=>{console.log("alignment alignRight",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment("right",t))}),this.editorContainer.addEventListener("keydown",t=>{if((t.ctrlKey||t.metaKey)&&!t.altKey){const e=t.key.toLowerCase();if(["b","i","u","h"].includes(e)){t.preventDefault();let n="b";switch(e){case"b":n="bold";break;case"i":n="italic";break;case"u":n="underline";break;case"h":n="hyperlink"}this.handleToolbarAction(n)}if("z"===e?(t.preventDefault(),this.undoRedoManager.undo()):"y"===e&&(t.preventDefault(),this.undoRedoManager.redo()),"a"===e){const t=this.document.handleCtrlASelection();this.document.selectAll=!0,console.log("Selected text is inside element with data-id:",t)}"l"===t.key?(t.preventDefault(),this.document.setAlignment("left",this.document.selectedBlockId)):"e"===t.key?(t.preventDefault(),this.document.setAlignment("center",this.document.selectedBlockId)):"r"===t.key&&(t.preventDefault(),this.document.setAlignment("right",this.document.selectedBlockId))}}),document.addEventListener("selectionchange",this.handleSelectionChange.bind(this)),this.editorContainer.addEventListener("click",t=>{const e=t.target;if("A"===e.tagName||e.closest("a")){t.preventDefault(),t.stopPropagation();const n="A"===e.tagName?e:e.closest("a");this.showLinkPopup(n,t.clientX,t.clientY)}else this.hideLinkPopup()}),document.addEventListener("click",t=>{this.linkPopupView.isPopup(t.target)||this.hideLinkPopup()}),this.document.emit("documentChanged",this.document),this.editorContainer.addEventListener("paste",t=>{var e,s;this.undoRedoManager.saveUndoSnapshot(),t.preventDefault();const o=null===(e=t.clipboardData)||void 0===e?void 0:e.getData("text/html"),[i,l]=this.getSelectionRange();l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset);let r=[];if(o)r=m(o);else{const e=function(t){const e=[];let n,s=0;for(;null!==(n=a.exec(t));){const o=n.index;let i=n[0],l="";const a=i.match(/[.,!?;:)\]\}"']+$/);if(a&&(l=a[0],i=i.slice(0,-l.length)),d(t,o))continue;o>s&&e.push({text:t.substring(s,o),isUrl:!1});let r=i;r.startsWith("http")||(r="https://"+r),e.push({text:i,isUrl:!0,url:r}),l&&e.push({text:l,isUrl:!1}),s=o+n[0].length}return st.isUrl&&t.url?new n(t.text,Object.assign(Object.assign({},this.currentAttributes),{hyperlink:t.url})):new n(t.text,Object.assign({},this.currentAttributes)))}let c=i;for(const t of r)this.document.insertAt(t.text,Object.assign({},t.attributes),c,this.document.selectedBlockId,0,"","batch"),c+=t.text.length;this.setCursorPosition(c)}),this.editorContainer.addEventListener("dragover",t=>{t.preventDefault()}),this.editorContainer.addEventListener("drop",t=>{var e,s;t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const o=null===(e=t.dataTransfer)||void 0===e?void 0:e.getData("text/html"),[i,l]=this.getSelectionRange();l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset);let a=[];if(o)a=m(o);else{const e=(null===(s=t.dataTransfer)||void 0===s?void 0:s.getData("text/plain"))||"";a=[new n(e,Object.assign({},this.currentAttributes))]}let d=i;for(const t of a)this.document.insertAt(t.text,Object.assign({},t.attributes),d,this.document.selectedBlockId,0,"","batch"),d+=t.text.length;this.setCursorPosition(d)})}getSelectionRange(){const t=o(this.editorView.container);return t?[t.start,t.end]:[0,0]}applyFontColor(t){const e=window.getSelection();if(!e||0===e.rangeCount)return;e.getRangeAt(0).toString()}handleToolbarAction(t,e=[]){const[n,s]=this.getSelectionRange();switch(t){case"orderedList":if(this.document.dataIds.length>1)this.document.toggleOrderedListForMultipleBlocks(this.document.dataIds);else{const t=this.document.selectedBlockId||this.document.dataIds[0];this.document.toggleOrderedList(t)}this.document.updateOrderedListNumbers();break;case"unorderedList":this.document.dataIds.forEach(t=>{this.document.toggleUnorderedList(t)});break;case"image":this.imageHandler.insertImage();break;case"speechToText":this.speechToTextHandler.toggleRecording();break;case"insert_table":this.insertTableHandler.openTableModal();break;case"insert_layout":this.insertLayoutHandler.openLayoutModal();break;case"insert_math":this.insertMathHandler.openMathModal();break;case"emoji":this.savedSelection=o(this.editorView.container);const e=document.querySelector('[data-action="emoji"]');e.addEventListener("mousedown",t=>{t.preventDefault()}),e&&this.emojiPickerView.open(e);break;case"textToSpeech":const i=this.getTextForSpeech();if(!i)return void console.warn("Nothing to read");this.textToSpeechHandler.toggle(i);break;default:if(n1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleBoldRange(s,e)}}):this.document.toggleBoldRange(n,s);break;case"italic":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleItalicRange(s,e)}}):this.document.toggleItalicRange(n,s);break;case"underline":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleUnderlineRange(s,e)}}):this.document.toggleUnderlineRange(n,s);break;case"strikethrough":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleStrikethroughRange(s,e)}}):this.document.toggleStrikethroughRange(n,s);break;case"subscript":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSubscriptRange(s,e)}}):this.document.toggleSubscriptRange(n,s);break;case"superscript":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSuperscriptRange(s,e)}}):this.document.toggleSuperscriptRange(n,s);break;case"hyperlink":this.hyperlinkHandler.hanldeHyperlinkClick(n,s,this.document.currentOffset,this.document.selectedBlockId,this.document.blocks)}else this.currentAttributes[t]=!this.currentAttributes[t],this.manualOverride=!0}this.toolbarView.updateActiveStates(this.currentAttributes)}handleSelectionChange(){var t,e,n;const s=window.getSelection();if(!s||0===s.rangeCount||!(null===(t=this.editorContainer)||void 0===t?void 0:t.contains(s.anchorNode)))return this.hyperlinkHandler.hideHyperlinkViewButton(),void this.popupToolbarView.hide();const o=(null===(e=s.anchorNode)||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE?s.anchorNode.parentElement:s.anchorNode;if(null==o?void 0:o.closest(".tblCell"))return void this.popupToolbarView.hide();const i=document.getElementById("textToSpeech");s&&!s.isCollapsed&&s.toString().trim()?null==i||i.classList.remove("hidden"):null==i||i.classList.add("hidden");const[l]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=l,s.isCollapsed?(this.document.dataIds=[],this.document.selectAll=!1,this.popupToolbarView.hide()):(this.document.getAllSelectedDataIds(),this.document.dataIds.length===this.document.blocks.length&&this.document.blocks.length>0&&(this.document.selectAll=!0),this.popupToolbarView.show(s)),!s||0===s.rangeCount)return;s&&!0===s.isCollapsed&&(this.document.dataIds=[],this.document.selectAll=!1);const a=s.getRangeAt(0),d=(null===(n=a.startContainer.parentElement)||void 0===n?void 0:n.closest("[data-id]"))||a.startContainer;if(d instanceof HTMLElement){const t=d.getAttribute("data-id")||(a.startContainer instanceof HTMLElement?a.startContainer.getAttribute("data-id"):null);if(t){const e=this.document.blocks.find(e=>e.dataId===t);e&&"table"!==e.type&&(this.document.selectedBlockId=t)}}this.syncCurrentAttributesWithCursor()}handleKeydown(t){var e,s;const[o,i]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=o,("Enter"===t.key||" "===t.key)&&this.document.selectedBlockId){const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1!==e){const s=this.document.blocks[e];if("text"===s.type&&Array.isArray(s.pieces)){const o=s.pieces.map(t=>t.text).join("").replace(/\u200B/g,"").trim().match(/^```([a-zA-Z0-9_\-\+]*)$/);if(o){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot(),s.type="code",s.language=o[1]||"text",s.code="",s.pieces=[],s.class="code_block_wrapper";const i=`data-id-${Date.now()}`;return this.document.blocks.splice(e+1,0,{dataId:i,class:"paragraph-block",pieces:[new n("​",{fontFamily:"Arial",fontSize:"16px",fontColor:"#000000",bgColor:"#ffffff",bold:!1,italic:!1,underline:!1,strikethrough:!1})],type:"text"}),this.document.selectedBlockId=i,this.document.emit("documentChanged",this.document),void setTimeout(()=>{this.setCursorPosition(this.document.currentOffset+1,i)},0)}}}}if("Enter"===t.key){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const s=`data-id-${Date.now()}`,l=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId),a=this.document.blocks[l],d=(null===(e=null==a?void 0:a.pieces)||void 0===e?void 0:e.length)>0?a.pieces[a.pieces.length-1]:null,r=d?Object.assign({},d.attributes):{fontFamily:"Arial",fontSize:"16px",fontColor:"#000000",bgColor:"#ffffff",bold:!1,italic:!1,underline:!1,strikethrough:!1};if(a&&"image"===a.type)this.document.blocks.splice(l+1,0,{dataId:s,class:"paragraph-block",pieces:[new n("​",r)],type:"text"}),this.document.emit("documentChanged",this),this.imageHandler.setCursorPostion(1,s);else if(!a||"ol"!==a.listType&&"ul"!==a.listType&&"li"!==a.listType){const t=this.getCurrentCursorBlock(),e=null==t?void 0:t.toString();if(e&&a&&"text"===a.type){const t=o-this.document.currentOffset,i=[],l=[];let d=0;for(const e of a.pieces){const s=d+e.text.length;if(s<=t)i.push(e.clone());else if(d>=t)l.push(e.clone());else{const s=t-d,o=e.text.slice(0,s),a=e.text.slice(s);o&&i.push(new n(o,Object.assign({},e.attributes))),a&&l.push(new n(a,Object.assign({},e.attributes)))}d=s}a.pieces=i.length>0?i:[new n("​",r)];const c=l.length>0?l:[new n("​",r)],h=this.addBlockAfter(this.document.blocks,e,{dataId:s,class:"paragraph-block",pieces:c,type:"text"});this.document.blocks=h}else this.document.blocks.push({dataId:s,class:"paragraph-block",pieces:[new n("​",r)],type:"text"})}else{let t=[new n("​",r)];const e=o-this.document.currentOffset;if("text"===a.type&&a.pieces){const s=[],o=[];let i=0;for(const t of a.pieces){const l=i+t.text.length;if(l<=e)s.push(t.clone());else if(i>=e)o.push(t.clone());else{const l=e-i,a=t.text.slice(0,l),d=t.text.slice(l);a&&s.push(new n(a,Object.assign({},t.attributes))),d&&o.push(new n(d,Object.assign({},t.attributes)))}i=l}a.pieces=s.length>0?s:[new n("​",r)],t=o.length>0?o:[new n("​",r)]}let i={dataId:s,class:"paragraph-block",pieces:t,type:"text"},d="";if("ol"===a.listType?(i.listType="li",i.listStart=a.listStart+1,i.parentId=a.dataId,d=a.dataId):"li"===a.listType?(i.listType="li",i.listStart=a.listStart+1,i.parentId=a.parentId,d=a.parentId):"ul"===a.listType&&(i.listType="ul",i.parentId=a.parentId||a.dataId),this.document.blocks.splice(l+1,0,i),"ol"===a.listType||"li"===a.listType)for(let t=l+2;tt.dataId===this.imageHandler.highLightedImageDataId);return this.imageHandler.deleteImage(),void this.imageHandler.setCursorPostion(1,this.document.blocks[t-1].dataId)}const e=window.getSelection();console.log(e,"selection lntgerr");if((this.document.selectAll||this.document.dataIds.length===this.document.blocks.length&&this.document.dataIds.length>0||this.document.dataIds.length>1)&&!(null===(s=window.getSelection())||void 0===s?void 0:s.isCollapsed)){this.undoRedoManager.saveUndoSnapshot();const t=this.document.dataIds[0],e=this.document.blocks.findIndex(e=>e.dataId===t);this.document.deleteBlocks();let s=null,o=0;if(0===this.document.blocks.length){const t=`data-id-${Date.now()}`;this.document.blocks.push({dataId:t,class:"paragraph-block",pieces:[new n(" ")],type:"text"}),s=t,o=0,this.editorView.render()}else if(et+e.text.length,0)}return void this.setCursorPosition(o,s)}if(i>o){this.undoRedoManager.saveUndoSnapshot();const t=Math.min(this.document.currentOffset,o);this.document.deleteRange(o,i,this.document.selectedBlockId,t,!0),this.setCursorPosition(o-1);const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);console.log(e,"index lntgerr");if(null===document.querySelector(`[data-id="${this.document.selectedBlockId}"]`)){let t=0;console.log(t," listStart lntgerr");const e=this.document.blocks.map((e,n)=>(void 0===(null==e?void 0:e.listType)&&null===(null==e?void 0:e.listType)||("ol"===(null==e?void 0:e.listType)?(t=1,e.listStart=1):"li"===(null==e?void 0:e.listType)&&(t+=1,e.listStart=t)),e));console.log(e,"blocks lntgerr"),this.document.emit("documentChanged",this)}}else if(o===i&&o>0){const t=this.editorView.container.textContent||"";let e=o-1;if(o>=2){const n=t.charCodeAt(o-1),s=t.charCodeAt(o-2);n>=56320&&n<=57343&&s>=55296&&s<=56319&&(e=o-2)}this.document.deleteRange(e,o,this.document.selectedBlockId,this.document.currentOffset,!0),this.setCursorPosition(e)}}else if(1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey){if("Delete"===t.key){if(t.preventDefault(),o===i){if(this.undoRedoManager.saveUndoSnapshot(),i>o){const t=Math.min(this.document.currentOffset,o);this.document.deleteRange(o,i,this.document.selectedBlockId,t),this.setCursorPosition(o)}else if(i>o)return this.undoRedoManager.saveUndoSnapshot(),void this.document.deleteRange(o,i,this.document.selectedBlockId);const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1===t)return;const e=this.document.blocks[t].pieces.reduce((t,e)=>t+e.text.length,0);o-this.document.currentOffseto&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(o,i,this.document.selectedBlockId),this.setCursorPosition(o))}this.hyperlinkHandler.hideHyperlinkViewButton()}}else t.preventDefault(),i>o&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(o,i,this.document.selectedBlockId,this.document.currentOffset,!1)),console.log("insertat",t.key,this.currentAttributes,o,this.document.selectedBlockId,this.document.currentOffset,"","",!t.isTrusted||!1),this.document.insertAt(t.key,this.currentAttributes,o,this.document.selectedBlockId,this.document.currentOffset,"","",!t.isTrusted||!1),this.setCursorPosition(o+1)}extractTextFromDataId(t){const e=window.getSelection();if(console.log("selection::",e),!e||0===e.rangeCount)return{remainingText:"",piece:null};const n=e.getRangeAt(0).startContainer;let s="";console.log(0,"count lntgerr");const o=this.document.blocks.filter(e=>{if(e.dataId===t)return e}),i=document.querySelector(`[data-id="${t}"]`),l=this.document.getCursorOffsetInParent(`[data-id="${t}"]`);let a=[],d=0;if(o[0].pieces.forEach((t,e)=>{s+=t.text,(null==l?void 0:l.innerText)===t.text&&(d=e,a.push(t))}),o[0].pieces.length>1&&o[0].pieces.forEach((t,e)=>{dt.dataId===e);if(-1===s)return console.error(`Block with dataId "${e}" not found.`),t;return[...t.slice(0,s+1),n,...t.slice(s+1)]}syncCurrentAttributesWithCursor(){var t,e;const n=window.getSelection();if(n&&n.rangeCount>0){const e=(null===(t=n.anchorNode)||void 0===t?void 0:t.nodeType)===Node.TEXT_NODE?n.anchorNode.parentElement:n.anchorNode;if(null==e?void 0:e.closest(".tblCell"))return}const[s,o]=this.getSelectionRange();console.log("log1",{start:s,end:o});const i=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if("image"===(null===(e=this.document.blocks[i])||void 0===e?void 0:e.type)?this.imageHandler.addStyleToImage(this.document.selectedBlockId||""):this.imageHandler.isImageHighlighted&&this.imageHandler.clearImageStyling(),s===o){const t=this.document.findPieceAtOffset(s,this.document.selectedBlockId);t?(t!==this.lastPiece&&(this.manualOverride=!1,this.lastPiece=t),this.manualOverride||(this.currentAttributes={bold:t.attributes.bold,italic:t.attributes.italic,underline:t.attributes.underline,strikethrough:t.attributes.strikethrough||!1,subscript:t.attributes.subscript||!1,superscript:t.attributes.superscript||!1,hyperlink:t.attributes.hyperlink||!1,fontFamily:t.attributes.fontFamily,fontSize:t.attributes.fontSize,fontColor:t.attributes.fontColor,bgColor:t.attributes.bgColor},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.hyperlinkHandler.hideHyperlinkViewButton()):(this.hyperlinkHandler.hideHyperlinkViewButton(),this.manualOverride||(this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.lastPiece=null)}else{this.hyperlinkHandler.hideHyperlinkViewButton();const t=this.document.isRangeEntirelyAttribute(s,o,"bold"),e=this.document.isRangeEntirelyAttribute(s,o,"italic"),n=this.document.isRangeEntirelyAttribute(s,o,"underline"),i=this.document.isRangeEntirelyAttribute(s,o,"strikethrough"),l=this.document.isRangeEntirelyAttribute(s,o,"subscript"),a=this.document.isRangeEntirelyAttribute(s,o,"superscript");this.currentAttributes={bold:t,italic:e,underline:n,strikethrough:i,subscript:l,superscript:a,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)}const l=document.getElementById("heading");if(l)if(this.document.selectedBlockId){const t=this.document.blocks.find(t=>t.dataId===this.document.selectedBlockId);t&&t.heading?l.value=t.heading:l.value=""}else l.value=""}setCursorPosition(t,e=""){if(""===e)this.editorView.container.focus();else{const t=document.querySelector('[data-id="'+e+'"]');t&&t.focus()}const n=window.getSelection();if(!n)return;const s=document.createRange();let o=0;const i=[this.editorView.container];let l;for(;l=i.pop();)if(3===l.nodeType){const e=l,n=o+e.length;if(t>=o&&t<=n){s.setStart(e,t-o),s.collapse(!0);break}o=n}else if("BR"===l.tagName){if(t===o){s.setStartBefore(l),s.collapse(!0);break}o++}else{const t=l;let e=t.childNodes.length;for(;e--;)i.push(t.childNodes[e])}n.removeAllRanges(),n.addRange(s)}showAcknowledgement(t,e=2e3){const n=document.getElementById(u.TOAST_ID);n&&n.remove();const s=document.createElement("div");s.id=u.TOAST_ID,s.className="ti-toast",s.textContent=t||u.TOAST_DEFAULT_MESSAGE,document.body.appendChild(s),s.offsetHeight,s.classList.add(u.TOAST_SHOW_CLASS),setTimeout(()=>{s.classList.remove(u.TOAST_SHOW_CLASS),setTimeout(()=>s.remove(),200)},e||u.TOAST_DEFAULT_DURATION_MS)}showLinkPopup(t,e,n){this.linkPopupView.show(t,e,n)}hideLinkPopup(){this.linkPopupView.hide()}openLink(t){window.open(t,"_blank"),this.hideLinkPopup()}unlinkText(t){this.undoRedoManager.saveUndoSnapshot();const e=t.textContent||"",n=(this.editorView.container.textContent||"").indexOf(e);-1!==n&&(this.document.formatAttribute(n,n+e.length,"hyperlink",!1),this.editorView.render()),this.hideLinkPopup()}getTextForSpeech(){var t,e;const n=window.getSelection();if(n&&!n.isCollapsed){const t=n.toString().trim();if(t)return t}return(null===(e=null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||void 0===e?void 0:e.trim())||""}onContentChange(t){this.on("contentChange",t)}getContent(){return this.document.getHtmlContent()||""}getTextContent(){var t;return(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||""}loadHtmlContent(t){this.undoRedoManager.saveUndoSnapshot(),this.htmlToJsonParser=new k(t);const e=this.htmlToJsonParser.parse();this.document.blocks=e,e.length>0?(this.document.dataIds[0]=e[0].dataId,this.document.selectedBlockId=e[0].dataId):(this.document.dataIds=[],this.document.selectedBlockId=null),this.document.emit("documentChanged",this.document)}}window.TextIgniter=N,t.TextIgniter=N}); diff --git a/packages/core/src/TextIgniter.ts b/packages/core/src/TextIgniter.ts index 571a077..d66de48 100644 --- a/packages/core/src/TextIgniter.ts +++ b/packages/core/src/TextIgniter.ts @@ -2021,6 +2021,25 @@ class TextIgniter extends EventEmitter { public getTextContent(): string { return this.editorContainer?.textContent || ''; } + + /** + * Load HTML content into the editor + * @param html - The HTML string to load + */ + public loadHtmlContent(html: string): void { + this.undoRedoManager.saveUndoSnapshot(); + this.htmlToJsonParser = new HtmlToJsonParser(html); + const jsonOutput = this.htmlToJsonParser.parse(); + this.document.blocks = jsonOutput; + if (jsonOutput.length > 0) { + this.document.dataIds[0] = jsonOutput[0].dataId; + this.document.selectedBlockId = jsonOutput[0].dataId; + } else { + this.document.dataIds = []; + this.document.selectedBlockId = null; + } + this.document.emit('documentChanged', this.document); + } } (window as any).TextIgniter = TextIgniter; export { TextIgniter }; diff --git a/packages/example/react/src/App.tsx b/packages/example/react/src/App.tsx index 2edda8d..06ec72f 100644 --- a/packages/example/react/src/App.tsx +++ b/packages/example/react/src/App.tsx @@ -6,6 +6,7 @@ const Textigniter = OriginalComponent as ElementType; const App: FC = () => { const [htmlContent, setHtmlContent] = useState(''); const [textContent, setTextContent] = useState(''); + const [editorValue, setEditorValue] = useState(undefined); const handleContentChange = (data: { html: string; text: string }) => { console.log('Content changed:', data); @@ -13,11 +14,41 @@ const App: FC = () => { setTextContent(data.text); }; + const loadTemplate1 = () => { + setEditorValue('
Loaded Template One successfully! 🎉
'); + }; + + const loadTemplate2 = () => { + setEditorValue('
This is Template Two with some inline italicized styling.
'); + }; + return ( <> - {/*

TextIgniter React Example

*/} -
+ {/* Test Interactive Controls */} +
+ + + +
+ { const builderRef = (0, import_react.useRef)(null); @@ -58,6 +60,20 @@ var TextigniterReactBase = ({ } } }, [config]); + (0, import_react.useEffect)(() => { + if (builderRef.current && initialValue !== void 0) { + if (!builderRef.current.getAttribute("value")) { + builderRef.current.setAttribute("value", initialValue); + } + } + }, []); + (0, import_react.useEffect)(() => { + if (builderRef.current && value !== void 0) { + if (builderRef.current.getAttribute("value") !== value) { + builderRef.current.setAttribute("value", value); + } + } + }, [value]); (0, import_react.useEffect)(() => { const element = builderRef.current; if (!element) @@ -75,7 +91,7 @@ var TextigniterReactBase = ({ return import_react.default.useMemo(() => /* @__PURE__ */ import_react.default.createElement("text-igniter", { ref: builderRef }), []); }; var TextigniterReact = import_react.default.memo(TextigniterReactBase, (prevProps, nextProps) => { - return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config); + return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config) && prevProps.value === nextProps.value && prevProps.initialValue === nextProps.initialValue; }); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { diff --git a/packages/react/dist/index.js.map b/packages/react/dist/index.js.map index 8a4b691..38cbfdd 100644 --- a/packages/react/dist/index.js.map +++ b/packages/react/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.ts","../src/components/TextIgniter.tsx"],"sourcesContent":["export { TextigniterReact as Textigniter } from './components/TextIgniter';\r\n","import React, { useEffect, useRef } from 'react';\r\n\r\n\r\n// interface DynamicComponents {\r\n// Basic: string[];\r\n// Extra: string[];\r\n// Custom?: Record;\r\n// }\r\n\r\n// interface CustomComponentConfig {\r\n// component: React.ComponentType | string;\r\n// svg?: string;\r\n// title?: string;\r\n// }\r\n\r\ninterface TextigniterReactProps {\r\n config: any;\r\n onContentChange?: (data: { html: string; text: string }) => void;\r\n}\r\n\r\nconst TextigniterReactBase: React.FC = ({\r\n config,\r\n onContentChange,\r\n}) => {\r\n const builderRef = useRef(null);\r\n const onContentChangeRef = useRef(onContentChange);\r\n\r\n // Keep callback ref updated without triggering re-renders\r\n useEffect(() => {\r\n onContentChangeRef.current = onContentChange;\r\n }, [onContentChange]);\r\n\r\n // Load the web component\r\n useEffect(() => {\r\n import('@mindfiredigital/textigniter-web-component' as any).catch(error => {\r\n console.error('Failed to load web component:', error);\r\n });\r\n }, []);\r\n\r\n // Sync config attribute efficiently\r\n useEffect(() => {\r\n if (builderRef.current) {\r\n const configString = JSON.stringify(config);\r\n if (builderRef.current.getAttribute('config') !== configString) {\r\n builderRef.current.setAttribute('config', configString);\r\n }\r\n }\r\n }, [config]);\r\n\r\n // Setup event listener once\r\n useEffect(() => {\r\n const element = builderRef.current;\r\n if (!element) return;\r\n\r\n const handleContentChange = (event: any) => {\r\n if (onContentChangeRef.current) {\r\n onContentChangeRef.current(event.detail);\r\n }\r\n };\r\n\r\n element.addEventListener('content-change', handleContentChange);\r\n\r\n return () => {\r\n element.removeEventListener('content-change', handleContentChange);\r\n };\r\n }, []);\r\n\r\n // Memoize the element to prevent React from touching its children during App re-renders\r\n return React.useMemo(() => , []);\r\n};\r\n\r\n// Deep compare config so we don't even enter the render phase if the config is structurally identical\r\nexport const TextigniterReact = React.memo(TextigniterReactBase, (prevProps, nextProps) => {\r\n return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config);\r\n});\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAyC;AAoBzC,IAAM,uBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAa,qBAAoB,IAAI;AAC3C,QAAM,yBAAqB,qBAAO,eAAe;AAGjD,8BAAU,MAAM;AACd,uBAAmB,UAAU;AAAA,EAC/B,GAAG,CAAC,eAAe,CAAC;AAGpB,8BAAU,MAAM;AACd,WAAO,4CAAmD,EAAE,MAAM,WAAS;AACzE,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAGL,8BAAU,MAAM;AACd,QAAI,WAAW,SAAS;AACtB,YAAM,eAAe,KAAK,UAAU,MAAM;AAC1C,UAAI,WAAW,QAAQ,aAAa,QAAQ,MAAM,cAAc;AAC9D,mBAAW,QAAQ,aAAa,UAAU,YAAY;AAAA,MACxD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAGX,8BAAU,MAAM;AACd,UAAM,UAAU,WAAW;AAC3B,QAAI,CAAC;AAAS;AAEd,UAAM,sBAAsB,CAAC,UAAe;AAC1C,UAAI,mBAAmB,SAAS;AAC9B,2BAAmB,QAAQ,MAAM,MAAM;AAAA,MACzC;AAAA,IACF;AAEA,YAAQ,iBAAiB,kBAAkB,mBAAmB;AAE9D,WAAO,MAAM;AACX,cAAQ,oBAAoB,kBAAkB,mBAAmB;AAAA,IACnE;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,SAAO,aAAAA,QAAM,QAAQ,MAAM,6BAAAA,QAAA,cAAC,kBAAa,KAAK,YAAY,GAAI,CAAC,CAAC;AAClE;AAGO,IAAM,mBAAmB,aAAAA,QAAM,KAAK,sBAAsB,CAAC,WAAW,cAAc;AACzF,SAAO,KAAK,UAAU,UAAU,MAAM,MAAM,KAAK,UAAU,UAAU,MAAM;AAC7E,CAAC;","names":["React"]} \ No newline at end of file +{"version":3,"sources":["../src/index.ts","../src/components/TextIgniter.tsx"],"sourcesContent":["export { TextigniterReact as Textigniter } from './components/TextIgniter';\n","import React, { useEffect, useRef } from 'react';\n\n\n// interface DynamicComponents {\n// Basic: string[];\n// Extra: string[];\n// Custom?: Record;\n// }\n\n// interface CustomComponentConfig {\n// component: React.ComponentType | string;\n// svg?: string;\n// title?: string;\n// }\n\ninterface TextigniterReactProps {\n config: any;\n value?: string;\n initialValue?: string;\n onContentChange?: (data: { html: string; text: string }) => void;\n}\n\nconst TextigniterReactBase: React.FC = ({\n config,\n value,\n initialValue,\n onContentChange,\n}) => {\n const builderRef = useRef(null);\n const onContentChangeRef = useRef(onContentChange);\n\n // Keep callback ref updated without triggering re-renders\n useEffect(() => {\n onContentChangeRef.current = onContentChange;\n }, [onContentChange]);\n\n // Load the web component\n useEffect(() => {\n import('@mindfiredigital/textigniter-web-component' as any).catch(error => {\n console.error('Failed to load web component:', error);\n });\n }, []);\n\n // Sync config attribute efficiently\n useEffect(() => {\n if (builderRef.current) {\n const configString = JSON.stringify(config);\n if (builderRef.current.getAttribute('config') !== configString) {\n builderRef.current.setAttribute('config', configString);\n }\n }\n }, [config]);\n\n // Set initial value once on mount\n useEffect(() => {\n if (builderRef.current && initialValue !== undefined) {\n if (!builderRef.current.getAttribute('value')) {\n builderRef.current.setAttribute('value', initialValue);\n }\n }\n }, []);\n\n // Sync value attribute when it changes\n useEffect(() => {\n if (builderRef.current && value !== undefined) {\n if (builderRef.current.getAttribute('value') !== value) {\n builderRef.current.setAttribute('value', value);\n }\n }\n }, [value]);\n\n // Setup event listener once\n useEffect(() => {\n const element = builderRef.current;\n if (!element) return;\n\n const handleContentChange = (event: any) => {\n if (onContentChangeRef.current) {\n onContentChangeRef.current(event.detail);\n }\n };\n\n element.addEventListener('content-change', handleContentChange);\n\n return () => {\n element.removeEventListener('content-change', handleContentChange);\n };\n }, []);\n\n // Memoize the element to prevent React from touching its children during App re-renders\n return React.useMemo(() => , []);\n};\n\n// Deep compare config and value props to ensure React re-renders appropriately\nexport const TextigniterReact = React.memo(TextigniterReactBase, (prevProps, nextProps) => {\n return (\n JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config) &&\n prevProps.value === nextProps.value &&\n prevProps.initialValue === nextProps.initialValue\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAyC;AAsBzC,IAAM,uBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAa,qBAAoB,IAAI;AAC3C,QAAM,yBAAqB,qBAAO,eAAe;AAGjD,8BAAU,MAAM;AACd,uBAAmB,UAAU;AAAA,EAC/B,GAAG,CAAC,eAAe,CAAC;AAGpB,8BAAU,MAAM;AACd,WAAO,4CAAmD,EAAE,MAAM,WAAS;AACzE,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAGL,8BAAU,MAAM;AACd,QAAI,WAAW,SAAS;AACtB,YAAM,eAAe,KAAK,UAAU,MAAM;AAC1C,UAAI,WAAW,QAAQ,aAAa,QAAQ,MAAM,cAAc;AAC9D,mBAAW,QAAQ,aAAa,UAAU,YAAY;AAAA,MACxD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAGX,8BAAU,MAAM;AACd,QAAI,WAAW,WAAW,iBAAiB,QAAW;AACpD,UAAI,CAAC,WAAW,QAAQ,aAAa,OAAO,GAAG;AAC7C,mBAAW,QAAQ,aAAa,SAAS,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,8BAAU,MAAM;AACd,QAAI,WAAW,WAAW,UAAU,QAAW;AAC7C,UAAI,WAAW,QAAQ,aAAa,OAAO,MAAM,OAAO;AACtD,mBAAW,QAAQ,aAAa,SAAS,KAAK;AAAA,MAChD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAGV,8BAAU,MAAM;AACd,UAAM,UAAU,WAAW;AAC3B,QAAI,CAAC;AAAS;AAEd,UAAM,sBAAsB,CAAC,UAAe;AAC1C,UAAI,mBAAmB,SAAS;AAC9B,2BAAmB,QAAQ,MAAM,MAAM;AAAA,MACzC;AAAA,IACF;AAEA,YAAQ,iBAAiB,kBAAkB,mBAAmB;AAE9D,WAAO,MAAM;AACX,cAAQ,oBAAoB,kBAAkB,mBAAmB;AAAA,IACnE;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,SAAO,aAAAA,QAAM,QAAQ,MAAM,6BAAAA,QAAA,cAAC,kBAAa,KAAK,YAAY,GAAI,CAAC,CAAC;AAClE;AAGO,IAAM,mBAAmB,aAAAA,QAAM,KAAK,sBAAsB,CAAC,WAAW,cAAc;AACzF,SACE,KAAK,UAAU,UAAU,MAAM,MAAM,KAAK,UAAU,UAAU,MAAM,KACpE,UAAU,UAAU,UAAU,SAC9B,UAAU,iBAAiB,UAAU;AAEzC,CAAC;","names":["React"]} \ No newline at end of file diff --git a/packages/react/dist/index.mjs b/packages/react/dist/index.mjs index 3952d60..33b6f46 100644 --- a/packages/react/dist/index.mjs +++ b/packages/react/dist/index.mjs @@ -2,6 +2,8 @@ import React, { useEffect, useRef } from "react"; var TextigniterReactBase = ({ config, + value, + initialValue, onContentChange }) => { const builderRef = useRef(null); @@ -22,6 +24,20 @@ var TextigniterReactBase = ({ } } }, [config]); + useEffect(() => { + if (builderRef.current && initialValue !== void 0) { + if (!builderRef.current.getAttribute("value")) { + builderRef.current.setAttribute("value", initialValue); + } + } + }, []); + useEffect(() => { + if (builderRef.current && value !== void 0) { + if (builderRef.current.getAttribute("value") !== value) { + builderRef.current.setAttribute("value", value); + } + } + }, [value]); useEffect(() => { const element = builderRef.current; if (!element) @@ -39,7 +55,7 @@ var TextigniterReactBase = ({ return React.useMemo(() => /* @__PURE__ */ React.createElement("text-igniter", { ref: builderRef }), []); }; var TextigniterReact = React.memo(TextigniterReactBase, (prevProps, nextProps) => { - return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config); + return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config) && prevProps.value === nextProps.value && prevProps.initialValue === nextProps.initialValue; }); export { TextigniterReact as Textigniter diff --git a/packages/react/dist/index.mjs.map b/packages/react/dist/index.mjs.map index fcf65c9..976483c 100644 --- a/packages/react/dist/index.mjs.map +++ b/packages/react/dist/index.mjs.map @@ -1 +1 @@ -{"version":3,"sources":["../src/components/TextIgniter.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\r\n\r\n\r\n// interface DynamicComponents {\r\n// Basic: string[];\r\n// Extra: string[];\r\n// Custom?: Record;\r\n// }\r\n\r\n// interface CustomComponentConfig {\r\n// component: React.ComponentType | string;\r\n// svg?: string;\r\n// title?: string;\r\n// }\r\n\r\ninterface TextigniterReactProps {\r\n config: any;\r\n onContentChange?: (data: { html: string; text: string }) => void;\r\n}\r\n\r\nconst TextigniterReactBase: React.FC = ({\r\n config,\r\n onContentChange,\r\n}) => {\r\n const builderRef = useRef(null);\r\n const onContentChangeRef = useRef(onContentChange);\r\n\r\n // Keep callback ref updated without triggering re-renders\r\n useEffect(() => {\r\n onContentChangeRef.current = onContentChange;\r\n }, [onContentChange]);\r\n\r\n // Load the web component\r\n useEffect(() => {\r\n import('@mindfiredigital/textigniter-web-component' as any).catch(error => {\r\n console.error('Failed to load web component:', error);\r\n });\r\n }, []);\r\n\r\n // Sync config attribute efficiently\r\n useEffect(() => {\r\n if (builderRef.current) {\r\n const configString = JSON.stringify(config);\r\n if (builderRef.current.getAttribute('config') !== configString) {\r\n builderRef.current.setAttribute('config', configString);\r\n }\r\n }\r\n }, [config]);\r\n\r\n // Setup event listener once\r\n useEffect(() => {\r\n const element = builderRef.current;\r\n if (!element) return;\r\n\r\n const handleContentChange = (event: any) => {\r\n if (onContentChangeRef.current) {\r\n onContentChangeRef.current(event.detail);\r\n }\r\n };\r\n\r\n element.addEventListener('content-change', handleContentChange);\r\n\r\n return () => {\r\n element.removeEventListener('content-change', handleContentChange);\r\n };\r\n }, []);\r\n\r\n // Memoize the element to prevent React from touching its children during App re-renders\r\n return React.useMemo(() => , []);\r\n};\r\n\r\n// Deep compare config so we don't even enter the render phase if the config is structurally identical\r\nexport const TextigniterReact = React.memo(TextigniterReactBase, (prevProps, nextProps) => {\r\n return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config);\r\n});\r\n"],"mappings":";AAAA,OAAO,SAAS,WAAW,cAAc;AAoBzC,IAAM,uBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,OAAoB,IAAI;AAC3C,QAAM,qBAAqB,OAAO,eAAe;AAGjD,YAAU,MAAM;AACd,uBAAmB,UAAU;AAAA,EAC/B,GAAG,CAAC,eAAe,CAAC;AAGpB,YAAU,MAAM;AACd,WAAO,4CAAmD,EAAE,MAAM,WAAS;AACzE,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAGL,YAAU,MAAM;AACd,QAAI,WAAW,SAAS;AACtB,YAAM,eAAe,KAAK,UAAU,MAAM;AAC1C,UAAI,WAAW,QAAQ,aAAa,QAAQ,MAAM,cAAc;AAC9D,mBAAW,QAAQ,aAAa,UAAU,YAAY;AAAA,MACxD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAGX,YAAU,MAAM;AACd,UAAM,UAAU,WAAW;AAC3B,QAAI,CAAC;AAAS;AAEd,UAAM,sBAAsB,CAAC,UAAe;AAC1C,UAAI,mBAAmB,SAAS;AAC9B,2BAAmB,QAAQ,MAAM,MAAM;AAAA,MACzC;AAAA,IACF;AAEA,YAAQ,iBAAiB,kBAAkB,mBAAmB;AAE9D,WAAO,MAAM;AACX,cAAQ,oBAAoB,kBAAkB,mBAAmB;AAAA,IACnE;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,SAAO,MAAM,QAAQ,MAAM,oCAAC,kBAAa,KAAK,YAAY,GAAI,CAAC,CAAC;AAClE;AAGO,IAAM,mBAAmB,MAAM,KAAK,sBAAsB,CAAC,WAAW,cAAc;AACzF,SAAO,KAAK,UAAU,UAAU,MAAM,MAAM,KAAK,UAAU,UAAU,MAAM;AAC7E,CAAC;","names":[]} \ No newline at end of file +{"version":3,"sources":["../src/components/TextIgniter.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\n\n// interface DynamicComponents {\n// Basic: string[];\n// Extra: string[];\n// Custom?: Record;\n// }\n\n// interface CustomComponentConfig {\n// component: React.ComponentType | string;\n// svg?: string;\n// title?: string;\n// }\n\ninterface TextigniterReactProps {\n config: any;\n value?: string;\n initialValue?: string;\n onContentChange?: (data: { html: string; text: string }) => void;\n}\n\nconst TextigniterReactBase: React.FC = ({\n config,\n value,\n initialValue,\n onContentChange,\n}) => {\n const builderRef = useRef(null);\n const onContentChangeRef = useRef(onContentChange);\n\n // Keep callback ref updated without triggering re-renders\n useEffect(() => {\n onContentChangeRef.current = onContentChange;\n }, [onContentChange]);\n\n // Load the web component\n useEffect(() => {\n import('@mindfiredigital/textigniter-web-component' as any).catch(error => {\n console.error('Failed to load web component:', error);\n });\n }, []);\n\n // Sync config attribute efficiently\n useEffect(() => {\n if (builderRef.current) {\n const configString = JSON.stringify(config);\n if (builderRef.current.getAttribute('config') !== configString) {\n builderRef.current.setAttribute('config', configString);\n }\n }\n }, [config]);\n\n // Set initial value once on mount\n useEffect(() => {\n if (builderRef.current && initialValue !== undefined) {\n if (!builderRef.current.getAttribute('value')) {\n builderRef.current.setAttribute('value', initialValue);\n }\n }\n }, []);\n\n // Sync value attribute when it changes\n useEffect(() => {\n if (builderRef.current && value !== undefined) {\n if (builderRef.current.getAttribute('value') !== value) {\n builderRef.current.setAttribute('value', value);\n }\n }\n }, [value]);\n\n // Setup event listener once\n useEffect(() => {\n const element = builderRef.current;\n if (!element) return;\n\n const handleContentChange = (event: any) => {\n if (onContentChangeRef.current) {\n onContentChangeRef.current(event.detail);\n }\n };\n\n element.addEventListener('content-change', handleContentChange);\n\n return () => {\n element.removeEventListener('content-change', handleContentChange);\n };\n }, []);\n\n // Memoize the element to prevent React from touching its children during App re-renders\n return React.useMemo(() => , []);\n};\n\n// Deep compare config and value props to ensure React re-renders appropriately\nexport const TextigniterReact = React.memo(TextigniterReactBase, (prevProps, nextProps) => {\n return (\n JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config) &&\n prevProps.value === nextProps.value &&\n prevProps.initialValue === nextProps.initialValue\n );\n});\n"],"mappings":";AAAA,OAAO,SAAS,WAAW,cAAc;AAsBzC,IAAM,uBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,OAAoB,IAAI;AAC3C,QAAM,qBAAqB,OAAO,eAAe;AAGjD,YAAU,MAAM;AACd,uBAAmB,UAAU;AAAA,EAC/B,GAAG,CAAC,eAAe,CAAC;AAGpB,YAAU,MAAM;AACd,WAAO,4CAAmD,EAAE,MAAM,WAAS;AACzE,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAGL,YAAU,MAAM;AACd,QAAI,WAAW,SAAS;AACtB,YAAM,eAAe,KAAK,UAAU,MAAM;AAC1C,UAAI,WAAW,QAAQ,aAAa,QAAQ,MAAM,cAAc;AAC9D,mBAAW,QAAQ,aAAa,UAAU,YAAY;AAAA,MACxD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAGX,YAAU,MAAM;AACd,QAAI,WAAW,WAAW,iBAAiB,QAAW;AACpD,UAAI,CAAC,WAAW,QAAQ,aAAa,OAAO,GAAG;AAC7C,mBAAW,QAAQ,aAAa,SAAS,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,YAAU,MAAM;AACd,QAAI,WAAW,WAAW,UAAU,QAAW;AAC7C,UAAI,WAAW,QAAQ,aAAa,OAAO,MAAM,OAAO;AACtD,mBAAW,QAAQ,aAAa,SAAS,KAAK;AAAA,MAChD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAGV,YAAU,MAAM;AACd,UAAM,UAAU,WAAW;AAC3B,QAAI,CAAC;AAAS;AAEd,UAAM,sBAAsB,CAAC,UAAe;AAC1C,UAAI,mBAAmB,SAAS;AAC9B,2BAAmB,QAAQ,MAAM,MAAM;AAAA,MACzC;AAAA,IACF;AAEA,YAAQ,iBAAiB,kBAAkB,mBAAmB;AAE9D,WAAO,MAAM;AACX,cAAQ,oBAAoB,kBAAkB,mBAAmB;AAAA,IACnE;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,SAAO,MAAM,QAAQ,MAAM,oCAAC,kBAAa,KAAK,YAAY,GAAI,CAAC,CAAC;AAClE;AAGO,IAAM,mBAAmB,MAAM,KAAK,sBAAsB,CAAC,WAAW,cAAc;AACzF,SACE,KAAK,UAAU,UAAU,MAAM,MAAM,KAAK,UAAU,UAAU,MAAM,KACpE,UAAU,UAAU,UAAU,SAC9B,UAAU,iBAAiB,UAAU;AAEzC,CAAC;","names":[]} \ No newline at end of file diff --git a/packages/react/src/components/TextIgniter.tsx b/packages/react/src/components/TextIgniter.tsx index 9ad2671..7cb4622 100644 --- a/packages/react/src/components/TextIgniter.tsx +++ b/packages/react/src/components/TextIgniter.tsx @@ -15,11 +15,15 @@ import React, { useEffect, useRef } from 'react'; interface TextigniterReactProps { config: any; + value?: string; + initialValue?: string; onContentChange?: (data: { html: string; text: string }) => void; } const TextigniterReactBase: React.FC = ({ config, + value, + initialValue, onContentChange, }) => { const builderRef = useRef(null); @@ -47,6 +51,24 @@ const TextigniterReactBase: React.FC = ({ } }, [config]); + // Set initial value once on mount + useEffect(() => { + if (builderRef.current && initialValue !== undefined) { + if (!builderRef.current.getAttribute('value')) { + builderRef.current.setAttribute('value', initialValue); + } + } + }, []); + + // Sync value attribute when it changes + useEffect(() => { + if (builderRef.current && value !== undefined) { + if (builderRef.current.getAttribute('value') !== value) { + builderRef.current.setAttribute('value', value); + } + } + }, [value]); + // Setup event listener once useEffect(() => { const element = builderRef.current; @@ -69,7 +91,11 @@ const TextigniterReactBase: React.FC = ({ return React.useMemo(() => , []); }; -// Deep compare config so we don't even enter the render phase if the config is structurally identical +// Deep compare config and value props to ensure React re-renders appropriately export const TextigniterReact = React.memo(TextigniterReactBase, (prevProps, nextProps) => { - return JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config); + return ( + JSON.stringify(prevProps.config) === JSON.stringify(nextProps.config) && + prevProps.value === nextProps.value && + prevProps.initialValue === nextProps.initialValue + ); }); diff --git a/packages/web-component/dist/index.cjs b/packages/web-component/dist/index.cjs index e739bae..656ec2f 100644 --- a/packages/web-component/dist/index.cjs +++ b/packages/web-component/dist/index.cjs @@ -53,10 +53,10 @@ var require_dist = __commonJS({ constructor(t2, e2 = {}) { this.text = t2; const n2 = document.getElementById("fontFamily"), s2 = document.getElementById("fontSize"); - let i2 = "Arial", o2 = "16px", l2 = document.getElementById("fontColorPicker"), a2 = document.getElementById("bgColorPicker"); - n2 && (i2 = n2.value), s2 && (o2 = s2.value); - const r2 = e2.fontColor || (l2 ? l2.value : "#000000"), d2 = e2.bgColor || (a2 ? a2.value : "#ffffff"); - this.attributes = { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, subscript: e2.subscript || false, superscript: e2.superscript || false, undo: e2.undo || false, redo: e2.redo || false, fontFamily: e2.fontFamily || i2, fontSize: e2.fontSize || o2, hyperlink: e2.hyperlink || false, fontColor: r2, bgColor: d2 }; + let o2 = "Arial", i2 = "16px", l2 = document.getElementById("fontColorPicker"), a2 = document.getElementById("bgColorPicker"); + n2 && (o2 = n2.value), s2 && (i2 = s2.value); + const d2 = e2.fontColor || (l2 ? l2.value : "#000000"), r2 = e2.bgColor || (a2 ? a2.value : "#ffffff"); + this.attributes = { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, subscript: e2.subscript || false, superscript: e2.superscript || false, undo: e2.undo || false, redo: e2.redo || false, fontFamily: e2.fontFamily || o2, fontSize: e2.fontSize || i2, hyperlink: e2.hyperlink || false, fontColor: d2, bgColor: r2 }; } isBold() { return this.attributes.bold; @@ -133,19 +133,19 @@ var require_dist = __commonJS({ setUndoRedoManager(t2) { this.undoRedoManager = t2; } - insertAt(t2, e2, s2, i2 = "", o2 = 0, l2 = "", a2 = "", r2 = false) { - r2 || "batch" === a2 || this.undoRedoManager.saveUndoSnapshot(), console.log("inserted,", { start: s2, text: t2 }), console.log("inserted,", this.blocks); - let d2 = 0, c2 = [], h2 = false, u2 = 0; - if ("" === i2 || null === i2) return; - if (u2 = this.blocks.findIndex((t3) => t3.dataId === i2), -1 === u2 || !this.blocks[u2].pieces) return; - d2 = this.currentOffset; - for (let i3 of this.blocks[u2].pieces) { - const o3 = d2 + i3.text.length; - if (!h2 && s2 <= o3) { - const o4 = s2 - d2; - o4 > 0 && c2.push(new n(i3.text.slice(0, o4), Object.assign({}, i3.attributes))), c2.push(new n(t2, { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, hyperlink: e2.hyperlink || false })), o4 < i3.text.length && c2.push(new n(i3.text.slice(o4), Object.assign({}, i3.attributes))), h2 = true; - } else c2.push(i3.clone()); - d2 = o3; + insertAt(t2, e2, s2, o2 = "", i2 = 0, l2 = "", a2 = "", d2 = false) { + d2 || "batch" === a2 || this.undoRedoManager.saveUndoSnapshot(), console.log("inserted,", { start: s2, text: t2 }), console.log("inserted,", this.blocks); + let r2 = 0, c2 = [], h2 = false, u2 = 0; + if ("" === o2 || null === o2) return; + if (u2 = this.blocks.findIndex((t3) => t3.dataId === o2), -1 === u2 || !this.blocks[u2].pieces) return; + r2 = this.currentOffset; + for (let o3 of this.blocks[u2].pieces) { + const i3 = r2 + o3.text.length; + if (!h2 && s2 <= i3) { + const i4 = s2 - r2; + i4 > 0 && c2.push(new n(o3.text.slice(0, i4), Object.assign({}, o3.attributes))), c2.push(new n(t2, { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, hyperlink: e2.hyperlink || false })), i4 < o3.text.length && c2.push(new n(o3.text.slice(i4), Object.assign({}, o3.attributes))), h2 = true; + } else c2.push(o3.clone()); + r2 = i3; } if (!h2) { const s3 = c2[c2.length - 1]; @@ -154,32 +154,32 @@ var require_dist = __commonJS({ let p2 = this.mergePieces(c2); this.blocks[u2].pieces = p2, console.log({ position: s2 }), this.emit("documentChanged", this); } - deleteRange(t2, e2, s2 = "", i2 = 0, o2 = false) { + deleteRange(t2, e2, s2 = "", o2 = 0, i2 = false) { if (console.log("deleted2,", { start: t2, end: e2 }), t2 === e2) return; - let l2 = [], a2 = 0, r2 = 0, d2 = false; + let l2 = [], a2 = 0, d2 = 0, r2 = false; if ("" === s2 || null === s2) return; - if (r2 = this.blocks.findIndex((t3) => t3.dataId === s2), -1 === r2 || !this.blocks[r2].pieces) return; - a2 = i2; + if (d2 = this.blocks.findIndex((t3) => t3.dataId === s2), -1 === d2 || !this.blocks[d2].pieces) return; + a2 = o2; let c2 = -1; - if (o2 && t2 === a2 && r2 > 0 && e2 === t2 && (c2 = r2 - 1 >= 0 && "image" === this.blocks[r2 - 1].type ? r2 - 2 : r2 - 1, c2 >= 0 && this.blocks[c2])) for (let t3 of this.blocks[c2].pieces) l2.push(t3.clone()), d2 = true; - for (let s3 of this.blocks[r2].pieces) { - const i3 = a2 + s3.text.length, o3 = a2; - if (i3 <= t2 || o3 >= e2) l2.push(s3.clone()); + if (i2 && t2 === a2 && d2 > 0 && e2 === t2 && (c2 = d2 - 1 >= 0 && "image" === this.blocks[d2 - 1].type ? d2 - 2 : d2 - 1, c2 >= 0 && this.blocks[c2])) for (let t3 of this.blocks[c2].pieces) l2.push(t3.clone()), r2 = true; + for (let s3 of this.blocks[d2].pieces) { + const o3 = a2 + s3.text.length, i3 = a2; + if (o3 <= t2 || i3 >= e2) l2.push(s3.clone()); else { const a3 = s3.text; - if (t2 > o3) { - const e3 = a3.slice(0, t2 - o3); + if (t2 > i3) { + const e3 = a3.slice(0, t2 - i3); e3.length > 0 && l2.push(new n(e3, Object.assign({}, s3.attributes))); } - if (e2 < i3) { - const t3 = a3.slice(e2 - o3); + if (e2 < o3) { + const t3 = a3.slice(e2 - i3); t3.length > 0 && l2.push(new n(t3, Object.assign({}, s3.attributes))); } } - a2 = i3; + a2 = o3; } let h2 = this.mergePieces(l2), u2 = false; - d2 && c2 >= 0 ? (!this.blocks[r2] || "ol" !== this.blocks[r2].listType && "li" !== this.blocks[r2].listType || (u2 = true), this.blocks[c2].pieces = h2, this.blocks.splice(r2, 1)) : 0 === h2.length ? this.blocks.length > 1 ? (!this.blocks[r2] || "ol" !== this.blocks[r2].listType && "li" !== this.blocks[r2].listType || (u2 = true), this.blocks.splice(r2, 1)) : (h2 = [new n(" ")], this.blocks[r2].pieces = h2) : this.blocks[r2].pieces = h2, u2 && this.updateOrderedListNumbers(), this.emit("documentChanged", this); + r2 && c2 >= 0 ? (!this.blocks[d2] || "ol" !== this.blocks[d2].listType && "li" !== this.blocks[d2].listType || (u2 = true), this.blocks[c2].pieces = h2, this.blocks.splice(d2, 1)) : 0 === h2.length ? this.blocks.length > 1 ? (!this.blocks[d2] || "ol" !== this.blocks[d2].listType && "li" !== this.blocks[d2].listType || (u2 = true), this.blocks.splice(d2, 1)) : (h2 = [new n(" ")], this.blocks[d2].pieces = h2) : this.blocks[d2].pieces = h2, u2 && this.updateOrderedListNumbers(), this.emit("documentChanged", this); } deleteBlocks() { const t2 = this.blocks.some((t3) => this.dataIds.includes(t3.dataId) && ("ol" === t3.listType || "li" === t3.listType)); @@ -197,10 +197,10 @@ var require_dist = __commonJS({ var t2; const e2 = window.getSelection(); if (!e2 || 0 === e2.rangeCount) return []; - const n2 = e2.getRangeAt(0), s2 = [], i2 = document.createNodeIterator(n2.commonAncestorContainer, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT); - let o2; - for (; o2 = i2.nextNode(); ) if (n2.intersectsNode(o2)) { - const e3 = o2.nodeType === Node.TEXT_NODE ? o2.parentElement : o2, n3 = null === (t2 = null == e3 ? void 0 : e3.closest("[data-id]")) || void 0 === t2 ? void 0 : t2.getAttribute("data-id"); + const n2 = e2.getRangeAt(0), s2 = [], o2 = document.createNodeIterator(n2.commonAncestorContainer, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT); + let i2; + for (; i2 = o2.nextNode(); ) if (n2.intersectsNode(i2)) { + const e3 = i2.nodeType === Node.TEXT_NODE ? i2.parentElement : i2, n3 = null === (t2 = null == e3 ? void 0 : e3.closest("[data-id]")) || void 0 === t2 ? void 0 : t2.getAttribute("data-id"); n3 && !s2.includes(n3) && s2.push(n3); } return this.removeExclusiveEndBlock(n2, s2), this.dataIds = s2, console.log("selected id 3", this.dataIds, s2), s2; @@ -218,8 +218,8 @@ var require_dist = __commonJS({ getSelectedDataIds() { const t2 = window.getSelection(); if (!t2 || 0 === t2.rangeCount) return []; - const e2 = t2.getRangeAt(0), n2 = [], s2 = e2.startContainer, i2 = e2.endContainer, o2 = this.getDataIdFromNode(s2), l2 = this.getDataIdFromNode(i2); - return o2 && !n2.includes(o2) && n2.push(o2), l2 && !n2.includes(l2) && n2.push(l2), this.removeExclusiveEndBlock(e2, n2), this.dataIds = n2, console.log("selected id 1", this.dataIds, n2), n2; + const e2 = t2.getRangeAt(0), n2 = [], s2 = e2.startContainer, o2 = e2.endContainer, i2 = this.getDataIdFromNode(s2), l2 = this.getDataIdFromNode(o2); + return i2 && !n2.includes(i2) && n2.push(i2), l2 && !n2.includes(l2) && n2.push(l2), this.removeExclusiveEndBlock(e2, n2), this.dataIds = n2, console.log("selected id 1", this.dataIds, n2), n2; } getDataIdFromNode(t2) { var e2; @@ -231,33 +231,33 @@ var require_dist = __commonJS({ if (!e2 || 0 === e2.rangeCount || !t2) return -1; const n2 = e2.getRangeAt(0); let s2 = 0; - const i2 = (t3) => { + const o2 = (t3) => { if (t3 === n2.startContainer) return s2 += n2.startOffset, true; t3.nodeType === Node.TEXT_NODE && (s2 += (t3.textContent || "").length); - for (const e3 of Array.from(t3.childNodes)) if (i2(e3)) return true; + for (const e3 of Array.from(t3.childNodes)) if (o2(e3)) return true; return false; }; - return i2(t2), s2; + return o2(t2), s2; } - formatAttribute(t2, e2, s2, i2) { - console.log("formatAttribute", t2, e2, s2, i2); - let o2 = [], l2 = 0, a2 = -1; + formatAttribute(t2, e2, s2, o2) { + console.log("formatAttribute", t2, e2, s2, o2); + let i2 = [], l2 = 0, a2 = -1; if ("" === this.selectedBlockId || null === this.selectedBlockId) return; if (a2 = this.blocks.findIndex((t3) => t3.dataId === this.selectedBlockId), -1 === a2 || !this.blocks[a2].pieces) return; l2 = this.currentOffset; - for (let r3 of this.blocks[a2].pieces) { - const a3 = l2 + r3.text.length; - if (a3 <= t2 || l2 >= e2) o2.push(r3.clone()); + for (let d3 of this.blocks[a2].pieces) { + const a3 = l2 + d3.text.length; + if (a3 <= t2 || l2 >= e2) i2.push(d3.clone()); else { - const a4 = l2, d2 = r3.text, c2 = Math.max(t2 - a4, 0), h2 = Math.min(e2 - a4, d2.length); - c2 > 0 && o2.push(new n(d2.slice(0, c2), Object.assign({}, r3.attributes))); - const u2 = new n(d2.slice(c2, h2), Object.assign({}, r3.attributes)); - ("bold" !== s2 && "italic" !== s2 && "underline" !== s2 && "strikethrough" !== s2 && "subscript" !== s2 && "superscript" != s2 && "undo" !== s2 && "redo" !== s2 && "hyperlink" !== s2 || "boolean" != typeof i2) && ("fontFamily" !== s2 && "fontSize" !== s2 && "hyperlink" !== s2 && "fontColor" !== s2 && "bgColor" !== s2 || "string" != typeof i2) || (u2.attributes[s2] = i2), o2.push(u2), h2 < d2.length && o2.push(new n(d2.slice(h2), Object.assign({}, r3.attributes))); + const a4 = l2, r2 = d3.text, c2 = Math.max(t2 - a4, 0), h2 = Math.min(e2 - a4, r2.length); + c2 > 0 && i2.push(new n(r2.slice(0, c2), Object.assign({}, d3.attributes))); + const u2 = new n(r2.slice(c2, h2), Object.assign({}, d3.attributes)); + ("bold" !== s2 && "italic" !== s2 && "underline" !== s2 && "strikethrough" !== s2 && "subscript" !== s2 && "superscript" != s2 && "undo" !== s2 && "redo" !== s2 && "hyperlink" !== s2 || "boolean" != typeof o2) && ("fontFamily" !== s2 && "fontSize" !== s2 && "hyperlink" !== s2 && "fontColor" !== s2 && "bgColor" !== s2 || "string" != typeof o2) || (u2.attributes[s2] = o2), i2.push(u2), h2 < r2.length && i2.push(new n(r2.slice(h2), Object.assign({}, d3.attributes))); } l2 = a3; } - const r2 = this.mergePieces(o2); - this.blocks[a2].pieces = r2, this.emit("documentChanged", this); + const d2 = this.mergePieces(i2); + this.blocks[a2].pieces = d2, this.emit("documentChanged", this); } toggleOrderedList(t2, e2 = "") { const n2 = this.blocks.findIndex((e3) => e3.dataId === t2); @@ -286,12 +286,12 @@ var require_dist = __commonJS({ var n2; const s2 = this.blocks.findIndex((e3) => e3.dataId === t2); if (-1 === s2) return; - const i2 = this.blocks[s2]; - i2.heading = e2; - const o2 = this.getHeadingFontSize(e2); - if (Array.isArray(i2.pieces)) { - i2.pieces.every((t3) => "" === t3.text.trim() || "\u200B" === t3.text) && e2 ? i2.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = i2.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: o2 }) }] : i2.pieces.forEach((t3) => { - t3.attributes.fontSize = o2; + const o2 = this.blocks[s2]; + o2.heading = e2; + const i2 = this.getHeadingFontSize(e2); + if (Array.isArray(o2.pieces)) { + o2.pieces.every((t3) => "" === t3.text.trim() || "\u200B" === t3.text) && e2 ? o2.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = o2.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: i2 }) }] : o2.pieces.forEach((t3) => { + t3.attributes.fontSize = i2; }); } this.emit("documentChanged", this); @@ -303,10 +303,10 @@ var require_dist = __commonJS({ if (-1 !== s2) { const t4 = this.blocks[s2]; t4.heading = e2; - const i2 = this.getHeadingFontSize(e2); + const o2 = this.getHeadingFontSize(e2); if (Array.isArray(t4.pieces)) { - t4.pieces.every((t5) => "" === t5.text.trim() || "\u200B" === t5.text) && e2 ? t4.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = t4.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: i2 }) }] : t4.pieces.forEach((t5) => { - t5.attributes.fontSize = i2; + t4.pieces.every((t5) => "" === t5.text.trim() || "\u200B" === t5.text) && e2 ? t4.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = t4.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: o2 }) }] : t4.pieces.forEach((t5) => { + t5.attributes.fontSize = o2; }); } } @@ -362,31 +362,31 @@ var require_dist = __commonJS({ } else this.editorView.container.focus(); const s2 = window.getSelection(); if (!s2) return; - const i2 = document.createRange(); - let o2 = 0; + const o2 = document.createRange(); + let i2 = 0; const l2 = [this.editorView.container]; let a2; - const r2 = (null === (n2 = this.editorView.container.textContent) || void 0 === n2 ? void 0 : n2.length) || 0; - if (!(t2 < 0 || t2 > r2)) { + const d2 = (null === (n2 = this.editorView.container.textContent) || void 0 === n2 ? void 0 : n2.length) || 0; + if (!(t2 < 0 || t2 > d2)) { for (; a2 = l2.pop(); ) if (3 === a2.nodeType) { - const e3 = a2, n3 = o2 + e3.length; - if (t2 >= o2 && t2 <= n3) { - i2.setStart(e3, Math.min(t2 - o2, e3.length)), i2.collapse(true); + const e3 = a2, n3 = i2 + e3.length; + if (t2 >= i2 && t2 <= n3) { + o2.setStart(e3, Math.min(t2 - i2, e3.length)), o2.collapse(true); break; } - o2 = n3; + i2 = n3; } else if ("BR" === a2.tagName) { - if (t2 === o2) { - i2.setStartBefore(a2), i2.collapse(true); + if (t2 === i2) { + o2.setStartBefore(a2), o2.collapse(true); break; } - o2++; + i2++; } else { const t3 = a2; let e3 = t3.childNodes.length; for (; e3--; ) l2.push(t3.childNodes[e3]); } - s2.removeAllRanges(), s2.addRange(i2); + s2.removeAllRanges(), s2.addRange(o2); } } toggleBoldRange(t2, e2, n2 = "") { @@ -428,20 +428,20 @@ var require_dist = __commonJS({ t2 < e2 && this.formatAttribute(t2, e2, "bgColor", n2); } isRangeEntirelyAttribute(t2, e2, n2) { - let s2 = this.currentOffset, i2 = true; + let s2 = this.currentOffset, o2 = true; if ("" !== this.selectedBlockId && null !== this.selectedBlockId) { - const o2 = this.blocks.findIndex((t3) => t3.dataId === this.selectedBlockId); - if (-1 === o2 || !this.blocks[o2].pieces) return false; - for (let l2 of this.blocks[o2].pieces) { - const o3 = s2 + l2.text.length; - if (o3 > t2 && s2 < e2 && !l2.attributes[n2]) { - i2 = false; + const i2 = this.blocks.findIndex((t3) => t3.dataId === this.selectedBlockId); + if (-1 === i2 || !this.blocks[i2].pieces) return false; + for (let l2 of this.blocks[i2].pieces) { + const i3 = s2 + l2.text.length; + if (i3 > t2 && s2 < e2 && !l2.attributes[n2]) { + o2 = false; break; } - s2 = o3; + s2 = i3; } } - return i2; + return o2; } mergePieces(t2) { let e2 = []; @@ -455,15 +455,15 @@ var require_dist = __commonJS({ let n2 = 0; if ("" !== e2 && null !== e2) for (let s2 of this.blocks) { if ("table" === s2.type || "layout" === s2.type || !s2.pieces) continue; - const i2 = s2.pieces.reduce((t3, e3) => t3 + e3.text.length, 0); + const o2 = s2.pieces.reduce((t3, e3) => t3 + e3.text.length, 0); if (s2.dataId == e2) { let e3 = null; - for (let i3 of s2.pieces) { - const s3 = n2, o2 = s3 + i3.text.length; - if (t2 >= s3 && t2 < o2) return t2 === s3 && e3 ? e3 : i3; - e3 = i3, n2 = o2; + for (let o3 of s2.pieces) { + const s3 = n2, i2 = s3 + o3.text.length; + if (t2 >= s3 && t2 < i2) return t2 === s3 && e3 ? e3 : o3; + e3 = o3, n2 = i2; } - } else n2 += i2; + } else n2 += o2; } return null; } @@ -492,71 +492,71 @@ var require_dist = __commonJS({ if (!n2) return null; const s2 = window.getSelection(); if (!s2 || 0 === s2.rangeCount) return null; - const i2 = s2.getRangeAt(0); - if (!n2.contains(i2.startContainer)) return null; - let o2 = 0, l2 = null; + const o2 = s2.getRangeAt(0); + if (!n2.contains(o2.startContainer)) return null; + let i2 = 0, l2 = null; const a2 = document.createTreeWalker(n2, NodeFilter.SHOW_TEXT, null); - let r2 = null; + let d2 = null; for (; a2.nextNode(); ) { const t3 = a2.currentNode; - if (console.log(t3, "textPosition - currentNode: vicky"), t3 === i2.startContainer) { - o2 += i2.startOffset, l2 = t3, r2 = t3.parentElement; + if (console.log(t3, "textPosition - currentNode: vicky"), t3 === o2.startContainer) { + i2 += o2.startOffset, l2 = t3, d2 = t3.parentElement; break; } - o2 += (null === (e2 = t3.textContent) || void 0 === e2 ? void 0 : e2.length) || 0; + i2 += (null === (e2 = t3.textContent) || void 0 === e2 ? void 0 : e2.length) || 0; } - return console.log({ offset: o2, childNode: l2, innerHTML: r2.innerHTML, innerText: r2.innerText }, "textPosition - return values: vicky"), { offset: o2, childNode: l2, innerHTML: r2.innerHTML, innerText: r2.innerText }; + return console.log({ offset: i2, childNode: l2, innerHTML: d2.innerHTML, innerText: d2.innerText }, "textPosition - return values: vicky"), { offset: i2, childNode: l2, innerHTML: d2.innerHTML, innerText: d2.innerText }; } removeExclusiveEndBlock(t2, e2) { if (e2.length <= 1) return; const n2 = t2.endContainer, s2 = t2.endOffset; - let i2 = false; - if ((n2.nodeType === Node.TEXT_NODE || n2.nodeType === Node.ELEMENT_NODE) && (i2 = 0 === s2), !i2) return; - const o2 = this.getDataIdFromNode(n2); - if (!o2) return; - if (o2 !== this.getDataIdFromNode(t2.startContainer) && e2.includes(o2)) { - const t3 = e2.lastIndexOf(o2); + let o2 = false; + if ((n2.nodeType === Node.TEXT_NODE || n2.nodeType === Node.ELEMENT_NODE) && (o2 = 0 === s2), !o2) return; + const i2 = this.getDataIdFromNode(n2); + if (!i2) return; + if (i2 !== this.getDataIdFromNode(t2.startContainer) && e2.includes(i2)) { + const t3 = e2.lastIndexOf(i2); t3 > -1 && e2.splice(t3, 1); } } } - function i(t2) { + function o(t2) { const e2 = window.getSelection(); if (!e2 || 0 === e2.rangeCount) return null; const n2 = e2.getRangeAt(0), s2 = n2.cloneRange(); s2.selectNodeContents(t2), s2.setEnd(n2.startContainer, n2.startOffset); - const i2 = s2.toString().length; + const o2 = s2.toString().length; s2.setEnd(n2.endContainer, n2.endOffset); - return { start: i2, end: s2.toString().length }; + return { start: o2, end: s2.toString().length }; } - function o(t2, e2) { + function i(t2, e2) { if (!e2) return; let n2 = 0; const s2 = document.createRange(); s2.setStart(t2, 0), s2.collapse(true); - const i2 = [t2]; - let o2, l2 = false, a2 = false; - for (; !a2 && (o2 = i2.pop()); ) if (3 === o2.nodeType) { - const t3 = o2, i3 = n2 + t3.length; - !l2 && e2.start >= n2 && e2.start <= i3 && (s2.setStart(t3, e2.start - n2), l2 = true), l2 && e2.end >= n2 && e2.end <= i3 && (s2.setEnd(t3, e2.end - n2), a2 = true), n2 = i3; - } else if ("BR" === o2.tagName) l2 || e2.start !== n2 || (s2.setStartBefore(o2), l2 = true), l2 && e2.end === n2 && (s2.setEndBefore(o2), a2 = true), n2++; + const o2 = [t2]; + let i2, l2 = false, a2 = false; + for (; !a2 && (i2 = o2.pop()); ) if (3 === i2.nodeType) { + const t3 = i2, o3 = n2 + t3.length; + !l2 && e2.start >= n2 && e2.start <= o3 && (s2.setStart(t3, e2.start - n2), l2 = true), l2 && e2.end >= n2 && e2.end <= o3 && (s2.setEnd(t3, e2.end - n2), a2 = true), n2 = o3; + } else if ("BR" === i2.tagName) l2 || e2.start !== n2 || (s2.setStartBefore(i2), l2 = true), l2 && e2.end === n2 && (s2.setEndBefore(i2), a2 = true), n2++; else { - const t3 = o2; + const t3 = i2; let e3 = t3.childNodes.length; - for (; e3--; ) i2.push(t3.childNodes[e3]); + for (; e3--; ) o2.push(t3.childNodes[e3]); } - const r2 = window.getSelection(); - r2 && (r2.removeAllRanges(), r2.addRange(s2)); + const d2 = window.getSelection(); + d2 && (d2.removeAllRanges(), d2.addRange(s2)); } function l(t2) { - const e2 = i(t2.container); + const e2 = o(t2.container); return e2 ? [e2.start, e2.end] : [0, 0]; } const a = /((https?:\/\/|www\.)[\w\-._~:\/?#[\]@!$&'()*+,;=%]+|\b[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[\w\-._~:\/?#[\]@!$&'()*+,;=%]*)?)/g; - function r(t2, e2) { + function d(t2, e2) { return e2 > 0 && "@" === t2[e2 - 1]; } - function d(t2) { + function r(t2) { if (!t2) return t2; let e2 = t2.trim(); const n2 = e2.match(/^https?:\/\/[\w.-]+(?::\d+)?\/(https?:\/\/.*)$/); @@ -570,7 +570,7 @@ var require_dist = __commonJS({ this.imageHandler = t2; } render() { - const t2 = i(this.container); + const t2 = o(this.container); this.container.innerHTML = "", this.document.blocks.forEach((t3) => { var e2; if ("" !== t3.dataId) { @@ -590,16 +590,16 @@ var require_dist = __commonJS({ e3.className = "code_block_header"; const s2 = document.createElement("span"); s2.className = "code_block_language", s2.innerText = t3.language || "text"; - const i2 = document.createElement("span"); - i2.className = "code_block_hint", i2.innerText = "double-click to edit"; - const o2 = document.createElement("button"); - o2.className = "code_block_cancel", o2.innerHTML = "×", o2.title = "Remove block", o2.addEventListener("mousedown", (t4) => { + const o2 = document.createElement("span"); + o2.className = "code_block_hint", o2.innerText = "double-click to edit"; + const i2 = document.createElement("button"); + i2.className = "code_block_cancel", i2.innerHTML = "×", i2.title = "Remove block", i2.addEventListener("mousedown", (t4) => { t4.stopPropagation(); - }), o2.onclick = (e4) => { + }), i2.onclick = (e4) => { e4.stopPropagation(), e4.preventDefault(), n2.remove(); const s3 = this.document.blocks.findIndex((e5) => e5.dataId === t3.dataId); -1 !== s3 && (this.document.blocks.splice(s3, 1), this.document.selectedBlockId === t3.dataId && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); - }, e3.appendChild(s2), e3.appendChild(i2), e3.appendChild(o2); + }, e3.appendChild(s2), e3.appendChild(o2), e3.appendChild(i2); const l2 = document.createElement("pre"); l2.className = "code_block_content"; const a2 = document.createElement("code"); @@ -614,7 +614,7 @@ var require_dist = __commonJS({ }); this.container.appendChild(n2); } - }), o(this.container, t2); + }), i(this.container, t2); } renderPiece(t2) { const e2 = t2.text.split("\n"); @@ -622,41 +622,41 @@ var require_dist = __commonJS({ } wrapAttributes(t2, e2) { const n2 = document.createDocumentFragment(); - return t2.forEach((s2, i2) => { - let o2 = document.createTextNode(s2); + return t2.forEach((s2, o2) => { + let i2 = document.createTextNode(s2); if (e2.strikethrough) { const t3 = document.createElement("s"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.underline) { const t3 = document.createElement("u"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.italic) { const t3 = document.createElement("em"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.bold) { const t3 = document.createElement("strong"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.subscript) { const t3 = document.createElement("sub"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.superscript) { const t3 = document.createElement("sup"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } const l2 = document.getElementById("fontFamily"), a2 = document.getElementById("fontSize"); - let r2 = "Arial", c2 = "16px"; - l2 && (r2 = l2.value), a2 && (c2 = a2.value); + let d2 = "Arial", c2 = "16px"; + l2 && (d2 = l2.value), a2 && (c2 = a2.value); const h2 = document.createElement("span"); - if (h2.style.fontFamily = e2.fontFamily || r2, h2.style.fontSize = e2.fontSize || c2, e2.fontColor && "string" == typeof e2.fontColor && (h2.style.color = e2.fontColor), e2.bgColor && "string" == typeof e2.bgColor && (h2.style.backgroundColor = e2.bgColor), e2.hyperlink && "string" == typeof e2.hyperlink) { + if (h2.style.fontFamily = e2.fontFamily || d2, h2.style.fontSize = e2.fontSize || c2, e2.fontColor && "string" == typeof e2.fontColor && (h2.style.color = e2.fontColor), e2.bgColor && "string" == typeof e2.bgColor && (h2.style.backgroundColor = e2.bgColor), e2.hyperlink && "string" == typeof e2.hyperlink) { const t3 = document.createElement("a"); - t3.href = d(e2.hyperlink), t3.appendChild(o2), o2 = t3; + t3.href = r(e2.hyperlink), t3.appendChild(i2), i2 = t3; } - h2.appendChild(o2), o2 = h2, n2.appendChild(o2), i2 < t2.length - 1 && n2.appendChild(document.createElement("br")); + h2.appendChild(i2), i2 = h2, n2.appendChild(i2), o2 < t2.length - 1 && n2.appendChild(document.createElement("br")); }), n2; } } @@ -703,53 +703,53 @@ var require_dist = __commonJS({ setUndoRedoManager(t2) { this.undoRedoManager = t2; } - hanldeHyperlinkClick(t2, e2, n2, s2, i2) { - const o2 = this.getCommonHyperlinkInRange(t2, e2, n2, s2, i2); - this.showHyperlinkInput(o2); + hanldeHyperlinkClick(t2, e2, n2, s2, o2) { + const i2 = this.getCommonHyperlinkInRange(t2, e2, n2, s2, o2); + this.showHyperlinkInput(i2); } - getCommonHyperlinkInRange(t2, e2, n2, s2, i2) { - let o2 = n2, l2 = 0; - s2 && (l2 = i2.findIndex((t3) => t3.dataId === s2)); - const a2 = i2[l2].pieces; - let r2 = null; + getCommonHyperlinkInRange(t2, e2, n2, s2, o2) { + let i2 = n2, l2 = 0; + s2 && (l2 = o2.findIndex((t3) => t3.dataId === s2)); + const a2 = o2[l2].pieces; + let d2 = null; for (let n3 of a2) { - const s3 = o2 + n3.text.length; - if (s3 > t2 && o2 < e2) { + const s3 = i2 + n3.text.length; + if (s3 > t2 && i2 < e2) { const t3 = n3.attributes.hyperlink || null; - if (null === r2) r2 = t3; - else if (r2 !== t3) return null; + if (null === d2) d2 = t3; + else if (d2 !== t3) return null; } - o2 = s3; + i2 = s3; } - return r2; + return d2; } showHyperlinkInput(t2) { var e2, n2, s2; - const o2 = document.getElementById(u.HYPERLINK_CONTAINER_ID), l2 = document.getElementById(u.HYPERLINK_INPUT_ID), a2 = document.getElementById(u.HYPERLINK_APPLY_BTN_ID), r2 = document.getElementById(u.HYPERLINK_CANCEL_BTN_ID); - if (o2 && l2 && a2 && r2) { - o2.style.display = "block"; + const i2 = document.getElementById(u.HYPERLINK_CONTAINER_ID), l2 = document.getElementById(u.HYPERLINK_INPUT_ID), a2 = document.getElementById(u.HYPERLINK_APPLY_BTN_ID), d2 = document.getElementById(u.HYPERLINK_CANCEL_BTN_ID); + if (i2 && l2 && a2 && d2) { + i2.style.display = "block"; const c2 = window.getSelection(); if (c2 && c2.rangeCount > 0) { const t3 = c2.getRangeAt(0); - let i2 = null; - if (t3 && "function" == typeof t3.getBoundingClientRect) i2 = t3.getBoundingClientRect(); + let o2 = null; + if (t3 && "function" == typeof t3.getBoundingClientRect) o2 = t3.getBoundingClientRect(); else if (t3 && "function" == typeof t3.getClientRects) { const n3 = null === (e2 = t3.getClientRects) || void 0 === e2 ? void 0 : e2.call(t3); - i2 = n3 && n3.length ? n3[0] : null; + o2 = n3 && n3.length ? n3[0] : null; } - (!i2 || Number.isNaN(i2.top) && Number.isNaN(i2.left)) && (i2 = this.editorView.container.getBoundingClientRect()); + (!o2 || Number.isNaN(o2.top) && Number.isNaN(o2.left)) && (o2 = this.editorView.container.getBoundingClientRect()); const l3 = (null === window || void 0 === window ? void 0 : window.scrollY) || 0, a3 = (null === window || void 0 === window ? void 0 : window.scrollX) || 0; - o2.style.top = `${(null !== (n2 = i2.bottom) && void 0 !== n2 ? n2 : i2.top) + l3 + 5}px`, o2.style.left = `${(null !== (s2 = i2.left) && void 0 !== s2 ? s2 : 0) + a3}px`; + i2.style.top = `${(null !== (n2 = o2.bottom) && void 0 !== n2 ? n2 : o2.top) + l3 + 5}px`, i2.style.left = `${(null !== (s2 = o2.left) && void 0 !== s2 ? s2 : 0) + a3}px`; } - l2.value = t2 || "", this.savedSelection = i(this.editorView.container), this.highlightSelection(), l2.focus(), a2.onclick = null, r2.onclick = null; + l2.value = t2 || "", this.savedSelection = o(this.editorView.container), this.highlightSelection(), l2.focus(), a2.onclick = null, d2.onclick = null; const h2 = this.document.dataIds, u2 = () => { - const t3 = d(l2.value.trim()); - t3 && this.applyHyperlink(t3, h2), o2.style.display = "none"; + const t3 = r(l2.value.trim()); + t3 && this.applyHyperlink(t3, h2), i2.style.display = "none"; }; a2.onclick = u2, l2.onkeydown = (t3) => { "Enter" === t3.key && (t3.preventDefault(), u2()); - }, r2.onclick = () => { - this.removeHyperlink(h2), o2.style.display = "none"; + }, d2.onclick = () => { + this.removeHyperlink(h2), i2.style.display = "none"; }; } } @@ -775,10 +775,10 @@ var require_dist = __commonJS({ }); } applyHyperlink(t2, e2) { - this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), o(this.editorView.container, this.savedSelection); + this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), i(this.editorView.container, this.savedSelection); const [n2, s2] = l(this.editorView); if (n2 < s2) { - const i2 = d(t2); + const o2 = r(t2); e2.length > 1 ? this.document.blocks.forEach((t3) => { if (e2.includes(t3.dataId)) { this.document.selectedBlockId = t3.dataId; @@ -787,16 +787,16 @@ var require_dist = __commonJS({ e3 += t4.text.length; }); let s3 = n2 - e3; - this.document.formatAttribute(s3, e3, "hyperlink", i2); + this.document.formatAttribute(s3, e3, "hyperlink", o2); } - }) : this.document.formatAttribute(n2, s2, "hyperlink", i2), this.editorView.render(); - const o2 = window.getSelection(); - o2 && o2.removeAllRanges(), this.editorView.container.focus(); + }) : this.document.formatAttribute(n2, s2, "hyperlink", o2), this.editorView.render(); + const i2 = window.getSelection(); + i2 && i2.removeAllRanges(), this.editorView.container.focus(); } this.savedSelection = null; } removeHyperlink(t2) { - this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), o(this.editorView.container, this.savedSelection); + this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), i(this.editorView.container, this.savedSelection); const [e2, n2] = l(this.editorView); e2 < n2 && (t2.length > 1 ? this.document.blocks.forEach((n3) => { if (t2.includes(n3.dataId)) { @@ -808,7 +808,7 @@ var require_dist = __commonJS({ let s2 = e2 - t3; this.document.formatAttribute(s2, t3, "hyperlink", false); } - }) : this.document.formatAttribute(e2, n2, "hyperlink", false), this.editorView.render(), o(this.editorView.container, this.savedSelection), this.editorView.container.focus()), this.savedSelection = null; + }) : this.document.formatAttribute(e2, n2, "hyperlink", false), this.editorView.render(), i(this.editorView.container, this.savedSelection), this.editorView.container.focus()), this.savedSelection = null; } addClickOutsideListener(t2) { this.removeClickOutsideListener(), this.clickOutsideHandler = (e2) => { @@ -822,25 +822,25 @@ var require_dist = __commonJS({ } showHyperlinkViewButton(t2) { var e2, n2, s2; - const i2 = document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID), o2 = document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID); - if (i2 && o2) { - i2.style.display = "block"; + const o2 = document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID), i2 = document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID); + if (o2 && i2) { + o2.style.display = "block"; const l2 = window.getSelection(); if (l2 && l2.rangeCount > 0) { const t3 = l2.getRangeAt(0); - let o3 = null; - if (t3 && "function" == typeof t3.getBoundingClientRect) o3 = t3.getBoundingClientRect(); + let i3 = null; + if (t3 && "function" == typeof t3.getBoundingClientRect) i3 = t3.getBoundingClientRect(); else if (t3 && "function" == typeof t3.getClientRects) { const n3 = null === (e2 = t3.getClientRects) || void 0 === e2 ? void 0 : e2.call(t3); - o3 = n3 && n3.length ? n3[0] : null; + i3 = n3 && n3.length ? n3[0] : null; } - o3 || (o3 = this.editorView.container.getBoundingClientRect()); - const a2 = (null === window || void 0 === window ? void 0 : window.scrollY) || 0, r2 = (null === window || void 0 === window ? void 0 : window.scrollX) || 0; - o3 && (i2.style.top = `${(null !== (n2 = o3.bottom) && void 0 !== n2 ? n2 : o3.top) + a2 + 5}px`, i2.style.left = `${(null !== (s2 = o3.left) && void 0 !== s2 ? s2 : 0) + r2}px`); + i3 || (i3 = this.editorView.container.getBoundingClientRect()); + const a2 = (null === window || void 0 === window ? void 0 : window.scrollY) || 0, d2 = (null === window || void 0 === window ? void 0 : window.scrollX) || 0; + i3 && (o2.style.top = `${(null !== (n2 = i3.bottom) && void 0 !== n2 ? n2 : i3.top) + a2 + 5}px`, o2.style.left = `${(null !== (s2 = i3.left) && void 0 !== s2 ? s2 : 0) + d2}px`); } - t2 && (o2.innerText = t2, o2.href = d(t2)); + t2 && (i2.innerText = t2, i2.href = r(t2)); } - this.addClickOutsideListener(i2); + this.addClickOutsideListener(o2); } hideHyperlinkViewButton() { const t2 = document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID); @@ -852,20 +852,20 @@ var require_dist = __commonJS({ } function g(t2, e2) { let s2 = Object.assign({}, e2); - const i2 = []; + const o2 = []; if (t2 instanceof HTMLElement) { if ("A" === t2.tagName) { const e3 = t2.getAttribute("href"); e3 && (s2.hyperlink = e3); } "STRONG" !== t2.tagName && "B" !== t2.tagName || (s2.bold = true), "EM" !== t2.tagName && "I" !== t2.tagName || (s2.italic = true), "U" === t2.tagName && (s2.underline = true), t2.childNodes.forEach((t3) => { - i2.push(...g(t3, s2)); + o2.push(...g(t3, s2)); }); } else if (t2 instanceof Text) { const e3 = t2.nodeValue || ""; - "" !== e3.trim() && i2.push(new n(e3, Object.assign({}, s2))); + "" !== e3.trim() && o2.push(new n(e3, Object.assign({}, s2))); } - return i2; + return o2; } const f = { bold: '\n Bold\n \n ', italic: '\n Italic\n \n ', underline: '\n Underline\n \n ', strikethrough: '\n Strikethrough\n \n ', subscript: '\n \n ', superscript: '\n \n ', left_align: '\n Left Align\n \n ', center_align: '\n Center Align\n ', right_align: '\n Right Align', justify: '\n Justify\n ', bullet_list: '\n Bullet List', numbered_list: '\n Numbererd List\n \n ', insert_table: '\n \n \n \n \n \n \n \n ', insert_layout: '\n Insert Layout\n \n ', heading: '\n Heading\n \n ', hyperlink: '\n Hyperlink\n \n \n ', image: '\n Insert Image\n \n ', stop_microphone: ' \n \n \n \n \n ', start_microphone: '\n \n \n \n \n ', close_icon: '\n \n ', emoji: '\n Emoji\n \n \n \n \n ', insert_math: '\n \n ', textToSppech: '\n \n \n \n \n Icon_24px_TexttoSpeech_Color\n \n \n \n \n \n \n \n ', speaker_on: '\n \n \n \n \n ', speaker_off: '\n \n ' }, b = { dropdowns: ["fontFamily", "fontSize", "heading"], colors: ["fontColor", "bgColor"], formatting: ["bold", "italic", "underline", "strikethrough"], alignment: ["alignLeft", "alignCenter", "alignRight"], lists: ["unorderedList", "orderedList"], media: ["hyperlink", "image", "emoji", "insert_math"], utility: ["getHtmlContent", "loadHtmlContent"] }; function y() { @@ -873,13 +873,13 @@ var require_dist = __commonJS({ return t2.className = "toolbar-separator", t2; } function C(t2, e2) { - const n2 = u.EDITOR_ID, s2 = u.TOOLBAR_ID, i2 = u.POPUP_TOOLBAR_ID, o2 = ["Arial", "Times New Roman", "Courier New", "Verdana"], l2 = ["12px", "14px", "16px", "18px", "20px"], a2 = document.getElementById(t2); + const n2 = u.EDITOR_ID, s2 = u.TOOLBAR_ID, o2 = u.POPUP_TOOLBAR_ID, i2 = ["Arial", "Times New Roman", "Courier New", "Verdana"], l2 = ["12px", "14px", "16px", "18px", "20px"], a2 = document.getElementById(t2); if (!a2) throw new Error(u.EDITOR_ELEMENT_NT_FOUND); a2.classList.add("editor-container"); - const r2 = document.createElement("div"); - r2.className = u.TOOLBAR_CLASSNAME, r2.id = s2, a2.appendChild(r2), false === (null == e2 ? void 0 : e2.showToolbar) && (r2.style.display = "none"); const d2 = document.createElement("div"); - d2.id = n2, d2.className = u.EDITOR_CLASSNAME, d2.contentEditable = "true", d2.spellcheck = true, d2.lang = "en", a2.appendChild(d2); + d2.className = u.TOOLBAR_CLASSNAME, d2.id = s2, a2.appendChild(d2), false === (null == e2 ? void 0 : e2.showToolbar) && (d2.style.display = "none"); + const r2 = document.createElement("div"); + r2.id = n2, r2.className = u.EDITOR_CLASSNAME, r2.contentEditable = "true", r2.spellcheck = true, r2.lang = "en", a2.appendChild(r2); const c2 = { bold: "B", italic: "I", underline: "U", hyperlink: "🔗", alignLeft: "⇤", alignCenter: "↔", alignRight: "⇥", unorderedList: "•", orderedList: "1.", fontFamily: "fontFamily", fontSize: "fontSize", fontColor: "A", subscript: "X2", superscript: "X2", justify: "⇄", insert_table: "⊢", insert_layout: "❐", insert_math: "\u03A3", heading: "H", image: "📷", colors: "🎨" }, h2 = { bold: "Bold (Ctrl+B)", italic: "Italic (Ctrl+I)", underline: "Underline (Ctrl+U)", strikethrough: "Strikethrough", hyperlink: "Insert Link (Ctrl+H)", alignLeft: "Align Left (Ctrl+L)", alignCenter: "Align Center (Ctrl+E)", alignRight: "Align Right (Ctrl+R)", unorderedList: "Bullet List", orderedList: "Numbered List", fontColor: "Text Color", bgColor: "Highlight Color", image: "Insert Image", emoji: "Emoji", getHtmlContent: "Get HTML", loadHtmlContent: "Load HTML", insert_table: "Insert table", insert_math: "Insert Equation", textToSpeech: "Text To Sppech" }, p2 = [{ feature: "alignLeft", id: "alignLeft", icon: f.left_align }, { feature: "alignCenter", id: "alignCenter", icon: f.center_align }, { feature: "alignRight", id: "alignRight", icon: f.right_align }, { feature: "unorderedList", id: "unorderedList", icon: f.bullet_list }, { feature: "orderedList", id: "orderedList", icon: f.numbered_list }, { feature: "hyperlink", id: "hyperlink", icon: f.hyperlink }, { feature: "emoji", id: "emoji", icon: f.emoji }, { feature: "strikethrough", id: "strikethrough", icon: f.strikethrough }, { feature: "insert_table", id: "insert_table", icon: f.insert_table }, { feature: "insert_math", id: "insert_math", icon: f.insert_math }, { feature: "subscript", id: "subscript", icon: f.subscript }, { feature: "superscript", id: "superscript", icon: f.superscript }, { feature: "textToSpeech", id: "textToSpeech", icon: f.speaker_on }], m2 = (t3, e3) => { const n3 = document.createElement("select"); return n3.dataset.action = t3, n3.id = t3, e3.forEach((t4) => { @@ -887,7 +887,7 @@ var require_dist = __commonJS({ e4.value = t4, e4.textContent = t4, n3.appendChild(e4); }), n3; }, g2 = document.createElement("div"); - g2.id = i2, g2.className = u.POPUP_TOOLBAR_CLASSNAME, g2.style.display = "none", a2.appendChild(g2), e2.popupFeatures && e2.popupFeatures.forEach((t3, e3) => { + g2.id = o2, g2.className = u.POPUP_TOOLBAR_CLASSNAME, g2.style.display = "none", a2.appendChild(g2), e2.popupFeatures && e2.popupFeatures.forEach((t3, e3) => { e3 > 0 && "hyperlink" === t3 && g2.appendChild(y()); const n3 = p2.find((e4) => e4.feature === t3) || { icon: c2[t3] || t3 }, s3 = document.createElement("button"); s3.dataset.action = t3, s3.innerHTML = n3.icon, s3.dataset.tooltip = h2[t3] || t3.split("_").map((t4) => t4.charAt(0).toUpperCase() + t4.slice(1)).join(" "), g2.appendChild(s3); @@ -898,12 +898,12 @@ var require_dist = __commonJS({ for (const [e3, n4] of Object.entries(b)) if (n4.includes(t4)) return e3; return null; })(t3); - if (n3 > 0 && s3 && C2 && s3 !== C2 && r2.appendChild(y()), C2 = s3, "fontFamily" === t3) { - const t4 = m2(u.FONT_FAMILY_SELECT_ID, o2); - r2.appendChild(t4); + if (n3 > 0 && s3 && C2 && s3 !== C2 && d2.appendChild(y()), C2 = s3, "fontFamily" === t3) { + const t4 = m2(u.FONT_FAMILY_SELECT_ID, i2); + d2.appendChild(t4); } else if ("fontSize" === t3) { const t4 = m2(u.FONT_SIZE_SELECT_ID, l2); - r2.appendChild(t4); + d2.appendChild(t4); } else if ("fontColor" === t3) { if (document.getElementById(u.FONT_COLOR_WRAPPER_ID)) return; const t4 = document.createElement("span"); @@ -914,8 +914,8 @@ var require_dist = __commonJS({ n4.id = u.FONT_COLOR_PICKER_WRAPPER_ID, n4.style.display = "none", n4.style.position = "absolute", n4.style.top = "100%", n4.style.left = "0", n4.style.marginTop = "4px", n4.style.zIndex = "1000", n4.style.backgroundColor = "#ffffff", n4.style.border = "1px solid #d1d1d1", n4.style.borderRadius = "4px", n4.style.padding = "8px", n4.style.boxShadow = "0 2px 8px rgba(0,0,0,0.15)", n4.style.width = "135px"; const s4 = document.createElement("input"); s4.type = "color", s4.id = u.FONT_COLOR_PICKER_ID, s4.setAttribute("data-action", "fontColor"), s4.style.width = "100%", s4.style.height = "32px", s4.style.border = "1px solid #d1d1d1", s4.style.borderRadius = "4px", s4.style.cursor = "pointer", s4.style.marginBottom = "8px", s4.value = "#000000", n4.appendChild(s4); - const i3 = document.createElement("button"); - i3.id = u.FONT_COLOR_RESET_ID, i3.type = "button", i3.textContent = "Reset", i3.style.display = "block", i3.style.width = "100%", i3.style.padding = "6px 12px", i3.style.fontSize = "12px", i3.style.border = "1px solid #000000", i3.style.borderRadius = "4px", i3.style.backgroundColor = "#f8f8f8", i3.style.cursor = "pointer", i3.style.transition = "background-color 0.2s", i3.onmouseenter = () => i3.style.backgroundColor = "#e8e8e8", i3.onmouseleave = () => i3.style.backgroundColor = "#f8f8f8", n4.appendChild(i3), t4.appendChild(n4), r2.appendChild(t4); + const o3 = document.createElement("button"); + o3.id = u.FONT_COLOR_RESET_ID, o3.type = "button", o3.textContent = "Reset", o3.style.display = "block", o3.style.width = "100%", o3.style.padding = "6px 12px", o3.style.fontSize = "12px", o3.style.border = "1px solid #000000", o3.style.borderRadius = "4px", o3.style.backgroundColor = "#f8f8f8", o3.style.cursor = "pointer", o3.style.transition = "background-color 0.2s", o3.onmouseenter = () => o3.style.backgroundColor = "#e8e8e8", o3.onmouseleave = () => o3.style.backgroundColor = "#f8f8f8", n4.appendChild(o3), t4.appendChild(n4), d2.appendChild(t4); } else if ("bgColor" === t3) { if (document.getElementById(u.BG_COLOR_WRAPPER_ID)) return; const t4 = document.createElement("span"); @@ -926,11 +926,11 @@ var require_dist = __commonJS({ n4.id = u.BG_COLOR_PICKER_WRAPPER_ID, n4.style.display = "none", n4.style.position = "absolute", n4.style.top = "100%", n4.style.left = "0", n4.style.marginTop = "4px", n4.style.zIndex = "1000", n4.style.backgroundColor = "#ffffff", n4.style.border = "1px solid #000000", n4.style.borderRadius = "4px", n4.style.padding = "8px", n4.style.boxShadow = "0 2px 8px rgba(0,0,0,0.15)", n4.style.width = "135px"; const s4 = document.createElement("input"); s4.setAttribute("data-action", "bgColor"), s4.type = "color", s4.id = u.BG_COLOR_PICKER_ID, s4.style.width = "100%", s4.style.height = "32px", s4.style.border = "1px solid #000000ff", s4.style.borderRadius = "4px", s4.style.cursor = "pointer", s4.style.marginBottom = "8px", s4.value = "#ffffff", n4.appendChild(s4); - const i3 = document.createElement("button"); - i3.id = u.BG_COLOR_RESET_ID, i3.type = "button", i3.textContent = "Reset", i3.style.display = "block", i3.style.width = "100%", i3.style.padding = "6px 12px", i3.style.fontSize = "12px", i3.style.border = "1px solid #d1d1d1", i3.style.borderRadius = "4px", i3.style.backgroundColor = "#f8f8f8", i3.style.cursor = "pointer", i3.style.transition = "background-color 0.2s", i3.onmouseenter = () => i3.style.backgroundColor = "#e8e8e8", i3.onmouseleave = () => i3.style.backgroundColor = "#f8f8f8", n4.appendChild(i3), t4.appendChild(n4), r2.appendChild(t4); + const o3 = document.createElement("button"); + o3.id = u.BG_COLOR_RESET_ID, o3.type = "button", o3.textContent = "Reset", o3.style.display = "block", o3.style.width = "100%", o3.style.padding = "6px 12px", o3.style.fontSize = "12px", o3.style.border = "1px solid #d1d1d1", o3.style.borderRadius = "4px", o3.style.backgroundColor = "#f8f8f8", o3.style.cursor = "pointer", o3.style.transition = "background-color 0.2s", o3.onmouseenter = () => o3.style.backgroundColor = "#e8e8e8", o3.onmouseleave = () => o3.style.backgroundColor = "#f8f8f8", n4.appendChild(o3), t4.appendChild(n4), d2.appendChild(t4); } else if ("getHtmlContent" === t3) { const t4 = document.createElement("button"); - t4.id = u.GET_HTML_BUTTON_ID, t4.type = "button", t4.textContent = "Get HTML", t4.dataset.tooltip = h2.getHtmlContent, r2.appendChild(t4); + t4.id = u.GET_HTML_BUTTON_ID, t4.type = "button", t4.textContent = "Get HTML", t4.dataset.tooltip = h2.getHtmlContent, d2.appendChild(t4); } else if ("loadHtmlContent" === t3) { const t4 = document.createElement("select"); t4.id = u.LOAD_HTML_BUTTON_ID, t4.dataset.action = "loadHtmlContent", t4.dataset.tooltip = h2.loadHtmlContent, t4.style.cursor = "pointer", t4.style.padding = "4px 8px", t4.style.border = "1px solid #ccc", t4.style.borderRadius = "4px", t4.style.backgroundColor = "#f9f9f9", t4.style.fontSize = "13px", t4.style.outline = "none", t4.style.color = "#333", t4.style.height = "28px", t4.addEventListener("mouseenter", () => { @@ -943,7 +943,7 @@ var require_dist = __commonJS({ [...[{ name: "Default Test", html: u.TEST_HTML_CODE }, { name: "Blog Post", html: u.TEST_BLOG_POST_HTML_CODE }, { name: "Newsletter", html: u.TEST_NEWSLATER_HTML_CODE }, { name: "Resume", html: u.TEST_RESUME_HTML_CODE }, { name: "Email", html: u.TEST_EMAIL_HTML_CODE }, { name: "Meeting Notes", html: u.TEST_MEETING_HTML_CODE }], ...e2.templates || []].forEach((e3, n5) => { const s4 = document.createElement("option"); s4.value = n5.toString(), s4.dataset.html = e3.html, s4.textContent = e3.name, t4.appendChild(s4); - }), r2.appendChild(t4); + }), d2.appendChild(t4); } else if ("heading" === t3) { const t4 = document.createElement("select"); t4.id = u.HEADING_SELECT_ID, t4.dataset.action = "heading", t4.dataset.tooltip = h2.heading || "Heading", t4.style.cursor = "pointer", t4.style.padding = "4px 8px", t4.style.border = "1px solid #ccc", t4.style.borderRadius = "4px", t4.style.backgroundColor = "#f9f9f9", t4.style.fontSize = "13px", t4.style.outline = "none", t4.style.color = "#333", t4.style.height = "28px", t4.addEventListener("mouseenter", () => { @@ -955,29 +955,29 @@ var require_dist = __commonJS({ e3.value = "", e3.textContent = "Normal", t4.appendChild(e3), ["H1", "H2", "H3", "H4", "H5", "H6"].forEach((e4, n4) => { const s4 = document.createElement("option"); s4.value = e4.toLowerCase(), s4.textContent = `Heading ${n4 + 1}`, t4.appendChild(s4); - }), r2.appendChild(t4); + }), d2.appendChild(t4); } else if (p2.map((t4) => t4.feature).includes(t3)) { const e3 = p2.find((e4) => e4.feature === t3), n4 = document.createElement("button"); - n4.id = t3, n4.dataset.action = t3, n4.innerHTML = (null == e3 ? void 0 : e3.icon) || "", n4.dataset.tooltip = h2[t3] || t3, r2.appendChild(n4); + n4.id = t3, n4.dataset.action = t3, n4.innerHTML = (null == e3 ? void 0 : e3.icon) || "", n4.dataset.tooltip = h2[t3] || t3, d2.appendChild(n4); } else { const e3 = document.createElement("button"); - e3.dataset.action = t3, e3.innerHTML = c2[t3] || t3, e3.id = t3, e3.dataset.tooltip = h2[t3] || t3.split("_").map((t4) => t4.charAt(0).toUpperCase() + t4.slice(1)).join(" "), r2.appendChild(e3); + e3.dataset.action = t3, e3.innerHTML = c2[t3] || t3, e3.id = t3, e3.dataset.tooltip = h2[t3] || t3.split("_").map((t4) => t4.charAt(0).toUpperCase() + t4.slice(1)).join(" "), d2.appendChild(e3); } }); const k2 = document.createElement("div"); k2.id = u.HYPERLINK_CONTAINER_ID, k2.style.display = "none"; const v2 = document.createElement("input"); v2.type = "text", v2.id = u.HYPERLINK_INPUT_ID, v2.placeholder = u.HYPERLINK_PLACEHOLDER; - const x2 = document.createElement("button"); - x2.id = u.HYPERLINK_APPLY_BTN_ID, x2.textContent = "Link"; const I2 = document.createElement("button"); - I2.id = u.HYPERLINK_CANCEL_BTN_ID, I2.textContent = "Unlink", k2.appendChild(v2), k2.appendChild(x2), k2.appendChild(I2), r2.appendChild(k2); + I2.id = u.HYPERLINK_APPLY_BTN_ID, I2.textContent = "Link"; + const x2 = document.createElement("button"); + x2.id = u.HYPERLINK_CANCEL_BTN_ID, x2.textContent = "Unlink", k2.appendChild(v2), k2.appendChild(I2), k2.appendChild(x2), d2.appendChild(k2); const E2 = document.createElement("div"); E2.id = u.VIEW_HYPERLINK_CONTAINER_ID, E2.style.display = "none"; const w2 = document.createElement("span"); w2.id = u.VIEW_HYPERLINK_LABEL_ID, w2.innerHTML = "Visit URL : "; const _2 = document.createElement("a"); - return _2.id = u.VIEW_HYPERLINK_ANCHOR_ID, _2.href = "", _2.target = "_blank", E2.appendChild(w2), E2.appendChild(_2), r2.appendChild(E2), { mainEditorId: n2, toolbarId: s2, popupToolbarId: i2 }; + return _2.id = u.VIEW_HYPERLINK_ANCHOR_ID, _2.href = "", _2.target = "_blank", E2.appendChild(w2), E2.appendChild(_2), d2.appendChild(E2), { mainEditorId: n2, toolbarId: s2, popupToolbarId: o2 }; } class k { constructor(t2) { @@ -993,12 +993,12 @@ var require_dist = __commonJS({ } parseElement(t2) { const e2 = t2.getAttribute("data-id") || `data-id-${Date.now()}-${Math.floor(1e3 * Math.random())}`, n2 = t2.className || "paragraph-block", s2 = t2.style.textAlign || "left"; - let i2 = null, o2 = null; - "UL" === t2.tagName ? i2 = "ul" : "OL" === t2.tagName && (i2 = "ol", o2 = parseInt(t2.getAttribute("start") || "1", 10)); + let o2 = null, i2 = null; + "UL" === t2.tagName ? o2 = "ul" : "OL" === t2.tagName && (o2 = "ol", i2 = parseInt(t2.getAttribute("start") || "1", 10)); let l2 = []; - i2 ? this.parseListItems(t2, l2) : this.parseParagraphText(t2, l2); - const a2 = t2.tagName.toLowerCase(), r2 = a2.match(/^h[1-6]$/) ? a2 : null; - return Object.assign(Object.assign(Object.assign(Object.assign({ dataId: e2, class: n2, alignment: s2, pieces: l2 }, i2 ? { listType: i2 } : {}), null !== o2 ? { listStart: o2 } : {}), {}), r2 ? { heading: r2 } : {}); + o2 ? this.parseListItems(t2, l2) : this.parseParagraphText(t2, l2); + const a2 = t2.tagName.toLowerCase(), d2 = a2.match(/^h[1-6]$/) ? a2 : null; + return Object.assign(Object.assign(Object.assign(Object.assign({ dataId: e2, class: n2, alignment: s2, pieces: l2 }, o2 ? { listType: o2 } : {}), null !== i2 ? { listStart: i2 } : {}), {}), d2 ? { heading: d2 } : {}); } parseListItems(t2, e2) { t2.querySelectorAll("li").forEach((t3) => { @@ -1007,14 +1007,14 @@ var require_dist = __commonJS({ }); } parseParagraphText(t2, e2) { - const s2 = t2.querySelectorAll("span"), i2 = /* @__PURE__ */ new Map(); + const s2 = t2.querySelectorAll("span"), o2 = /* @__PURE__ */ new Map(); s2.forEach((t3) => { const e3 = this.extractTextAttributes(t3); if (console.log(e3, "piece parseParagraphText span", t3.textContent, t3.style.color), e3) { - const t4 = i2.get(e3.text); - t4 ? (t4.attributes.bold = t4.attributes.bold || e3.attributes.bold, t4.attributes.italic = t4.attributes.italic || e3.attributes.italic, t4.attributes.underline = t4.attributes.underline || e3.attributes.underline, t4.attributes.fontFamily = e3.attributes.fontFamily || t4.attributes.fontFamily, t4.attributes.fontSize = e3.attributes.fontSize || t4.attributes.fontSize, t4.attributes.fontColor = e3.attributes.fontColor || t4.attributes.fontColor, t4.attributes.bgColor = e3.attributes.bgColor || t4.attributes.bgColor) : i2.set(e3.text, Object.assign({}, e3)); + const t4 = o2.get(e3.text); + t4 ? (t4.attributes.bold = t4.attributes.bold || e3.attributes.bold, t4.attributes.italic = t4.attributes.italic || e3.attributes.italic, t4.attributes.underline = t4.attributes.underline || e3.attributes.underline, t4.attributes.fontFamily = e3.attributes.fontFamily || t4.attributes.fontFamily, t4.attributes.fontSize = e3.attributes.fontSize || t4.attributes.fontSize, t4.attributes.fontColor = e3.attributes.fontColor || t4.attributes.fontColor, t4.attributes.bgColor = e3.attributes.bgColor || t4.attributes.bgColor) : o2.set(e3.text, Object.assign({}, e3)); } - }), i2.forEach((t3) => { + }), o2.forEach((t3) => { e2.push(new n(t3.text, t3.attributes)); }), console.log(e2, "pieces--parseParagraphText (merged)"); } @@ -1075,31 +1075,31 @@ var require_dist = __commonJS({ insertImageAtPosition(t2, e2, s2) { if (!t2 || "number" != typeof e2 || !this.editorView) return; console.log(t2, e2, s2, "vicky insertImageAtPosition", this.document.blocks); - const i2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, o2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, l2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, a2 = { dataId: i2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "image", image: t2 }, r2 = { dataId: o2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "text" }; - let d2 = this.document.selectedBlockId; + const o2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, i2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, l2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, a2 = { dataId: o2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "image", image: t2 }, d2 = { dataId: i2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "text" }; + let r2 = this.document.selectedBlockId; const c2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); let h2 = []; const { remainingText: p2, piece: m2 } = (function(t3, e3) { const n2 = window.getSelection(); if (!n2 || 0 === n2.rangeCount) return { remainingText: "", piece: null }; const s3 = n2.getRangeAt(0).startContainer; - let i3 = ""; - const o3 = e3.blocks.filter((e4) => { + let o3 = ""; + const i3 = e3.blocks.filter((e4) => { if (e4.dataId === t3) return e4; }); - if (!o3[0] || !o3[0].pieces) return { remainingText: "", piece: null }; + if (!i3[0] || !i3[0].pieces) return { remainingText: "", piece: null }; const l3 = document.querySelector(`[data-id="${t3}"]`), a3 = e3.getCursorOffsetInParent(`[data-id="${t3}"]`); - let r3 = [], d3 = 0; - if (o3[0].pieces.forEach((t4, e4) => { - i3 += t4.text, (null == a3 ? void 0 : a3.innerText) === t4.text && (d3 = e4, r3.push(t4)); - }), o3[0].pieces.length > 1 && o3[0].pieces.forEach((t4, e4) => { - d3 < e4 && r3.push(t4); + let d3 = [], r3 = 0; + if (i3[0].pieces.forEach((t4, e4) => { + o3 += t4.text, (null == a3 ? void 0 : a3.innerText) === t4.text && (r3 = e4, d3.push(t4)); + }), i3[0].pieces.length > 1 && i3[0].pieces.forEach((t4, e4) => { + r3 < e4 && d3.push(t4); }), !l3) return console.error(`Element with data-id "${t3}" not found.`), { remainingText: "", piece: null }; if (!l3.contains(s3)) return console.error(`Cursor is not inside the element with data-id "${t3}".`), { remainingText: "", piece: null }; - const c3 = i3, h3 = null == a3 ? void 0 : a3.offset, u2 = c3.slice(h3), p3 = c3.slice(0, h3); - return l3.textContent = p3, { remainingText: u2, piece: r3 }; - })(d2 || "", this.document); - console.log(d2 || "", this.document, "extractTextFromDataId-vicky", p2, m2); + const c3 = o3, h3 = null == a3 ? void 0 : a3.offset, u2 = c3.slice(h3), p3 = c3.slice(0, h3); + return l3.textContent = p3, { remainingText: u2, piece: d3 }; + })(r2 || "", this.document); + console.log(r2 || "", this.document, "extractTextFromDataId-vicky", p2, m2); const g2 = " " + p2; let f2 = this.document.blocks; if (g2.length > 0) { @@ -1113,9 +1113,9 @@ var require_dist = __commonJS({ })(this.document.blocks, this.document.selectedBlockId || "", { dataId: l2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: e3, type: "text" }); } this.document.blocks = f2, this.document.deleteRange(this.currentCursorLocation, this.currentCursorLocation + p2.length, this.document.selectedBlockId, this.document.currentOffset), this.document.blocks.length > c2 + 1 ? this.document.blocks.forEach((t3, e3) => { - h2.push(t3), e3 === c2 ? h2.push(a2) : d2 === this.document.selectedBlockId && (d2 = t3.dataId); - }) : (h2 = [...this.document.blocks, a2, r2], d2 = r2.dataId), this.document.blocks = h2, this.editorView.render(), this.document.selectedBlockId = d2; - const b2 = document.querySelector(`[data-id="${d2}"]`); + h2.push(t3), e3 === c2 ? h2.push(a2) : r2 === this.document.selectedBlockId && (r2 = t3.dataId); + }) : (h2 = [...this.document.blocks, a2, d2], r2 = d2.dataId), this.document.blocks = h2, this.editorView.render(), this.document.selectedBlockId = r2; + const b2 = document.querySelector(`[data-id="${r2}"]`); b2.focus(), setTimeout(() => { const t3 = document.createRange(), e3 = window.getSelection(); if (b2.firstChild) t3.setStart(b2.firstChild, 1); @@ -1130,8 +1130,8 @@ var require_dist = __commonJS({ if (!t2 || !e2) return document.createDocumentFragment(); const n2 = document.createDocumentFragment(), s2 = document.createElement("img"); s2.src = t2, s2.style.maxWidth = "30%", s2.setAttribute("contenteditable", "false"), n2.appendChild(s2); - const i2 = document.createElement("span"); - return i2.setAttribute("contenteditable", "false"), i2.appendChild(n2), s2.addEventListener("click", () => this.addStyleToImage(e2)), i2; + const o2 = document.createElement("span"); + return o2.setAttribute("contenteditable", "false"), o2.appendChild(n2), s2.addEventListener("click", () => this.addStyleToImage(e2)), o2; } addStyleToImage(t2) { if (t2 && !this.isCrossIconVisible) { @@ -1139,10 +1139,10 @@ var require_dist = __commonJS({ n2 && (n2.style.position = "relative"); const s2 = null == e2 ? void 0 : e2.querySelector("img"); s2 && (s2.style.border = "2px solid blue"); - const i2 = document.createElement("div"); - i2.className = u.IMAGE_CROSS_CLASS, i2.innerHTML = "x", Object.assign(i2.style, { position: "absolute", top: "0", left: "50%", transform: "translate(-50%, 0)", background: "#fff", borderRadius: "50%", width: "30px", height: "30px", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", border: "3px solid blue", zIndex: "999" }), i2.addEventListener("mouseover", () => i2.style.border = "3px solid black"), i2.addEventListener("mouseout", () => i2.style.border = "3px solid blue"), i2.addEventListener("click", (t3) => { + const o2 = document.createElement("div"); + o2.className = u.IMAGE_CROSS_CLASS, o2.innerHTML = "x", Object.assign(o2.style, { position: "absolute", top: "0", left: "50%", transform: "translate(-50%, 0)", background: "#fff", borderRadius: "50%", width: "30px", height: "30px", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", border: "3px solid blue", zIndex: "999" }), o2.addEventListener("mouseover", () => o2.style.border = "3px solid black"), o2.addEventListener("mouseout", () => o2.style.border = "3px solid blue"), o2.addEventListener("click", (t3) => { t3.stopPropagation(), this.deleteImage(); - }), null == n2 || n2.appendChild(i2), this.isImageHighlighted = true, this.highLightedImageDataId = t2, this.isCrossIconVisible = true; + }), null == n2 || n2.appendChild(o2), this.isImageHighlighted = true, this.highLightedImageDataId = t2, this.isCrossIconVisible = true; } } clearImageStyling() { @@ -1162,7 +1162,7 @@ var require_dist = __commonJS({ this.highLightedImageDataId && (this.document.blocks = this.document.blocks.filter((t2) => t2.dataId !== this.highLightedImageDataId), this.highLightedImageDataId = "", this.isImageHighlighted = false, this.clearImageStyling(), this.document.emit("documentChanged", this)); } } - class x { + class I { constructor(t2, e2) { this.snapshotUndoStack = [], this.snapshotRedoStack = [], this.maxSnapshots = 5e3, this.document = t2, this.editorView = e2; } @@ -1171,7 +1171,7 @@ var require_dist = __commonJS({ return { blocks: JSON.parse(JSON.stringify(this.document.blocks)), dataIds: [...this.document.dataIds], selectedBlockId: this.document.selectedBlockId, currentOffset: this.document.currentOffset, selection: this.getCurrentSelection(), cursorPosition: t2 }; } getCurrentSelection() { - const t2 = i(this.document.editorView.container); + const t2 = o(this.document.editorView.container); return t2 ? { start: t2.start, end: t2.end } : { start: 0, end: 0 }; } saveUndoSnapshot() { @@ -1200,7 +1200,7 @@ var require_dist = __commonJS({ e2 && this.restoreSnapshot(e2); } } - class I extends e { + class x extends e { constructor(t2) { super(), this.container = t2, this.setupButtons(); } @@ -1220,8 +1220,8 @@ var require_dist = __commonJS({ if (0 === e2.width && 0 === e2.height) return void this.hide(); this.container.style.display = "flex"; const n2 = this.container.offsetWidth, s2 = this.container.offsetHeight; - let i2 = e2.top + window.scrollY - s2 - 8, o2 = e2.left + window.scrollX + e2.width / 2 - n2 / 2; - i2 < window.scrollY && (i2 = e2.bottom + window.scrollY + 8), o2 < 0 && (o2 = 5), this.container.style.top = `${i2}px`, this.container.style.left = `${o2}px`; + let o2 = e2.top + window.scrollY - s2 - 8, i2 = e2.left + window.scrollX + e2.width / 2 - n2 / 2; + o2 < window.scrollY && (o2 = e2.bottom + window.scrollY + 8), i2 < 0 && (i2 = 5), this.container.style.top = `${o2}px`, this.container.style.left = `${i2}px`; } hide() { this.container.style.display = "none"; @@ -1282,8 +1282,8 @@ var require_dist = __commonJS({ class w { constructor(t2, e2, n2, s2) { this.isRecording = false, this.silenceTimer = null, this.document = t2, this.editorView = e2, this.onStateChange = n2, this.insertText = s2; - const i2 = window.SpeechRecognition || window.webkitSpeechRecognition; - i2 ? (this.recognition = new i2(), this.recognition.continuous = true, this.recognition.interimResults = false, this.recognition.onresult = (t3) => { + const o2 = window.SpeechRecognition || window.webkitSpeechRecognition; + o2 ? (this.recognition = new o2(), this.recognition.continuous = true, this.recognition.interimResults = false, this.recognition.onresult = (t3) => { const e3 = t3.results[t3.results.length - 1]; if (e3.isFinal) { const t4 = e3[0].transcript + " "; @@ -1330,18 +1330,18 @@ var require_dist = __commonJS({ n2.className = "main_modal_header"; const s2 = document.createElement("h3"); s2.className = "main_modal_title", s2.textContent = "Insert Table"; - const i2 = document.createElement("button"); - i2.className = "main_modal_close", i2.setAttribute("aria-label", "Close"), i2.innerHTML = f.close_icon, i2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(i2); - const o2 = document.createElement("div"); - o2.className = "main_modal_body"; + const o2 = document.createElement("button"); + o2.className = "main_modal_close", o2.setAttribute("aria-label", "Close"), o2.innerHTML = f.close_icon, o2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(o2); + const i2 = document.createElement("div"); + i2.className = "main_modal_body"; const l2 = document.createElement("div"); l2.className = "main_modal_inputs"; const a2 = document.createElement("div"); a2.className = "all_input"; - const r2 = document.createElement("label"); - r2.textContent = "Rows", r2.className = "input_label", r2.setAttribute("for", "modal_input_row"); - const d2 = document.createElement("input"); - d2.type = "number", d2.id = "modal_input_row", d2.className = "modal_inputs", d2.placeholder = "Enter the row number 1 to 20", d2.min = "1", d2.max = "20", d2.value = "3", a2.appendChild(r2), a2.appendChild(d2); + const d2 = document.createElement("label"); + d2.textContent = "Rows", d2.className = "input_label", d2.setAttribute("for", "modal_input_row"); + const r2 = document.createElement("input"); + r2.type = "number", r2.id = "modal_input_row", r2.className = "modal_inputs", r2.placeholder = "Enter the row number 1 to 20", r2.min = "1", r2.max = "20", r2.value = "3", a2.appendChild(d2), a2.appendChild(r2); const c2 = document.createElement("div"); c2.className = "all_input"; const h2 = document.createElement("label"); @@ -1354,9 +1354,9 @@ var require_dist = __commonJS({ m2.className = "modal_close_button modal_close_button_secondary", m2.textContent = "Cancel", m2.type = "button", m2.onclick = () => this.closeModal(); const g2 = document.createElement("button"); g2.className = "modal_close_button modal_close_button_primary", g2.textContent = "Insert Table", g2.type = "button", g2.onclick = () => { - const t3 = Math.max(1, Math.min(20, parseInt(d2.value) || 3)), e3 = Math.max(1, Math.min(20, parseInt(u2.value) || 3)); + const t3 = Math.max(1, Math.min(20, parseInt(r2.value) || 3)), e3 = Math.max(1, Math.min(20, parseInt(u2.value) || 3)); this.insertTable(t3, e3), this.closeModal(); - }, p2.appendChild(m2), p2.appendChild(g2), o2.appendChild(l2), e2.appendChild(n2), e2.appendChild(o2), e2.appendChild(p2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { + }, p2.appendChild(m2), p2.appendChild(g2), i2.appendChild(l2), e2.appendChild(n2), e2.appendChild(i2), e2.appendChild(p2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { e3.target === t2 && this.closeModal(); }), document.body.appendChild(t2), this.modal = t2, requestAnimationFrame(() => { t2.classList.add("table_modal_visible"); @@ -1369,23 +1369,23 @@ var require_dist = __commonJS({ }, 200)); } insertTable(t2, e2) { - const s2 = `data-id-${Date.now()}`, i2 = `data-id-${Date.now() + 1}`, o2 = document.createElement("div"); - o2.className = "table_wrapper", o2.setAttribute("data-type", "tbl"), o2.setAttribute("data-id", s2), o2.setAttribute("contenteditable", "false"); + const s2 = `data-id-${Date.now()}`, o2 = `data-id-${Date.now() + 1}`, i2 = document.createElement("div"); + i2.className = "table_wrapper", i2.setAttribute("data-type", "tbl"), i2.setAttribute("data-id", s2), i2.setAttribute("contenteditable", "false"); const l2 = document.createElement("div"); l2.className = "table_controls"; const a2 = document.createElement("button"); a2.className = "table_delete_button", a2.innerHTML = f.close_icon, a2.onclick = () => { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === s2); -1 !== t3 && (this.document.blocks.splice(t3, 1), this.document.selectedBlockId === s2 && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); - }, l2.appendChild(a2), o2.appendChild(l2); - const r2 = document.createElement("table"); - r2.className = "tbl"; - const d2 = document.createElement("thead"), c2 = document.createElement("tr"); + }, l2.appendChild(a2), i2.appendChild(l2); + const d2 = document.createElement("table"); + d2.className = "tbl"; + const r2 = document.createElement("thead"), c2 = document.createElement("tr"); for (let t3 = 0; t3 < e2; t3++) { const e3 = document.createElement("th"); e3.className = "tblCell tbl_header_cell", e3.contentEditable = "true", e3.setAttribute("data-placeholder", `Header ${t3 + 1}`), this.setupCellEvents(e3), c2.appendChild(e3); } - d2.appendChild(c2), r2.appendChild(d2); + r2.appendChild(c2), d2.appendChild(r2); const h2 = document.createElement("tbody"); for (let n2 = 0; n2 < t2; n2++) { const t3 = document.createElement("tr"); @@ -1395,16 +1395,16 @@ var require_dist = __commonJS({ } h2.appendChild(t3); } - r2.appendChild(h2), o2.appendChild(r2); + d2.appendChild(h2), i2.appendChild(d2); let u2 = this.document.blocks.length; if (this.document.selectedBlockId) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); -1 !== t3 && (u2 = t3 + 1); } - const p2 = { dataId: s2, type: "table", element: o2 }, m2 = { dataId: i2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; + const p2 = { dataId: s2, type: "table", element: i2 }, m2 = { dataId: o2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; this.document.blocks.splice(u2, 0, p2, m2), this.document.selectedBlockId = s2, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document), setTimeout(() => { - const t3 = o2.querySelector(".tblCell"); - t3 && (t3.focus(), this.setActiveTable(o2.querySelector("table"))); + const t3 = i2.querySelector(".tblCell"); + t3 && (t3.focus(), this.setActiveTable(i2.querySelector("table"))); }, 0); } setupCellEvents(t2) { @@ -1418,9 +1418,9 @@ var require_dist = __commonJS({ const s2 = e2; if ("Tab" === s2.key) { s2.preventDefault(), s2.stopPropagation(); - const e3 = Array.from((null === (n2 = t2.closest("table")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".tblCell")) || []), i2 = e3.indexOf(t2); - if (s2.shiftKey) i2 > 0 && (e3[i2 - 1].focus(), this.selectAllInCell(e3[i2 - 1])); - else if (i2 < e3.length - 1) e3[i2 + 1].focus(), this.selectAllInCell(e3[i2 + 1]); + const e3 = Array.from((null === (n2 = t2.closest("table")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".tblCell")) || []), o2 = e3.indexOf(t2); + if (s2.shiftKey) o2 > 0 && (e3[o2 - 1].focus(), this.selectAllInCell(e3[o2 - 1])); + else if (o2 < e3.length - 1) e3[o2 + 1].focus(), this.selectAllInCell(e3[o2 + 1]); else { const e4 = t2.closest(".table_wrapper"), n3 = null == e4 ? void 0 : e4.nextElementSibling; n3 && (n3.focus(), this.clearTableActive()); @@ -1515,14 +1515,14 @@ var require_dist = __commonJS({ n3.style.marginBottom = "12px"; const s2 = document.createElement("div"); s2.textContent = t3, s2.style.cssText = "\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 6px;\n ", n3.appendChild(s2); - const i2 = document.createElement("div"); - i2.style.cssText = "\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 2px;\n ", e3.forEach((t4) => { + const o2 = document.createElement("div"); + o2.style.cssText = "\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 2px;\n ", e3.forEach((t4) => { const e4 = this.resolveChar(t4), n4 = document.createElement("button"); n4.textContent = e4, n4.title = `${t4.name} ${t4.shortcode}`, n4.style.cssText = "\n font-size: 20px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 5px;\n padding: 4px;\n line-height: 1.2;\n transition: background 0.1s;\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n ", n4.addEventListener("mouseenter", () => n4.style.background = "#f0f0f0"), n4.addEventListener("mouseleave", () => n4.style.background = "transparent"), n4.addEventListener("mousedown", (n5) => { var s3; n5.preventDefault(), this.saveRecentEmoji(t4), null === (s3 = this.onSelectCallback) || void 0 === s3 || s3.call(this, e4); - }), i2.appendChild(n4); - }), n3.appendChild(i2), this.gridArea.appendChild(n3); + }), o2.appendChild(n4); + }), n3.appendChild(o2), this.gridArea.appendChild(n3); }; if (e2) { const t3 = []; @@ -1552,8 +1552,8 @@ var require_dist = __commonJS({ n2.className = "code_editor_modal_title"; const s2 = document.createElement("div"); s2.className = "code_editor_modal_actions", this.copyBtn = document.createElement("button"), this.copyBtn.className = "copy_editor_btn", this.copyBtn.innerText = "Copy", this.copyBtn.onclick = () => this.handleCopy(), this.saveBtn = document.createElement("button"), this.saveBtn.className = "copy_editor_btn copy_editor_btn--primary", this.saveBtn.innerText = "Save", this.saveBtn.onclick = () => this.handleSave(), this.cancelBtn = document.createElement("button"), this.cancelBtn.className = "copy_editor_btn copy_editor_btn--cancel", this.cancelBtn.innerText = "Cancel", this.cancelBtn.onclick = () => this.handleClose(), s2.appendChild(this.copyBtn), s2.appendChild(this.saveBtn), s2.appendChild(this.cancelBtn), e2.appendChild(n2), e2.appendChild(s2); - const i2 = document.createElement("div"); - i2.className = "editor_moal_wrapper", this.lineNumbers = document.createElement("div"), this.lineNumbers.className = "editor_moal_line_number", this.pre = document.createElement("pre"), this.pre.className = "editor_modal_pre_block", this.pre.setAttribute("aria-hidden", "true"), this.codeHighlight = document.createElement("code"), this.codeHighlight.className = "modal_editor_highlight", this.pre.appendChild(this.codeHighlight), this.textArea = document.createElement("textarea"), this.textArea.className = "modal_editor_text_area", this.textArea.spellcheck = false, i2.appendChild(this.lineNumbers), i2.appendChild(this.pre), i2.appendChild(this.textArea), t2.appendChild(e2), t2.appendChild(i2), this.container.appendChild(t2), document.body.appendChild(this.container), this.attachEventListeners(); + const o2 = document.createElement("div"); + o2.className = "editor_moal_wrapper", this.lineNumbers = document.createElement("div"), this.lineNumbers.className = "editor_moal_line_number", this.pre = document.createElement("pre"), this.pre.className = "editor_modal_pre_block", this.pre.setAttribute("aria-hidden", "true"), this.codeHighlight = document.createElement("code"), this.codeHighlight.className = "modal_editor_highlight", this.pre.appendChild(this.codeHighlight), this.textArea = document.createElement("textarea"), this.textArea.className = "modal_editor_text_area", this.textArea.spellcheck = false, o2.appendChild(this.lineNumbers), o2.appendChild(this.pre), o2.appendChild(this.textArea), t2.appendChild(e2), t2.appendChild(o2), this.container.appendChild(t2), document.body.appendChild(this.container), this.attachEventListeners(); } attachEventListeners() { this.textArea.addEventListener("input", () => { @@ -1608,10 +1608,10 @@ var require_dist = __commonJS({ n2.className = "main_modal_header"; const s2 = document.createElement("h3"); s2.className = "main_modal_title", s2.textContent = "Insert Layout"; - const i2 = document.createElement("button"); - i2.className = "main_modal_close", i2.setAttribute("aria-label", "Close"), i2.innerHTML = f.close_icon, i2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(i2); - const o2 = document.createElement("div"); - o2.className = "main_modal_body"; + const o2 = document.createElement("button"); + o2.className = "main_modal_close", o2.setAttribute("aria-label", "Close"), o2.innerHTML = f.close_icon, o2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(o2); + const i2 = document.createElement("div"); + i2.className = "main_modal_body"; const l2 = document.createElement("label"); l2.textContent = "Preset Splits", l2.className = "input_label", l2.style.display = "block", l2.style.marginBottom = "8px"; const a2 = document.createElement("div"); @@ -1622,17 +1622,17 @@ var require_dist = __commonJS({ this.insertLayout(t3.cols, t3.widths), this.closeModal(); }, a2.appendChild(e3); }); - const r2 = document.createElement("label"); - r2.textContent = "Or Custom Splits (comma separated %)", r2.className = "input_label", r2.style.display = "block", r2.style.marginBottom = "8px"; - const d2 = document.createElement("input"); - d2.type = "text", d2.className = "modal_inputs", d2.placeholder = "e.g. 20, 60, 20", d2.style.width = "100%", o2.appendChild(l2), o2.appendChild(a2), o2.appendChild(r2), o2.appendChild(d2); + const d2 = document.createElement("label"); + d2.textContent = "Or Custom Splits (comma separated %)", d2.className = "input_label", d2.style.display = "block", d2.style.marginBottom = "8px"; + const r2 = document.createElement("input"); + r2.type = "text", r2.className = "modal_inputs", r2.placeholder = "e.g. 20, 60, 20", r2.style.width = "100%", i2.appendChild(l2), i2.appendChild(a2), i2.appendChild(d2), i2.appendChild(r2); const c2 = document.createElement("div"); c2.className = "main_modal_footer"; const h2 = document.createElement("button"); h2.className = "modal_close_button modal_close_button_secondary", h2.textContent = "Cancel", h2.type = "button", h2.onclick = () => this.closeModal(); const u2 = document.createElement("button"); u2.className = "modal_close_button modal_close_button_primary", u2.textContent = "Insert Custom", u2.type = "button", u2.onclick = () => { - const t3 = d2.value.trim(); + const t3 = r2.value.trim(); if (t3) { const e3 = t3.split(",").map((t4) => parseFloat(t4.trim())).filter((t4) => !isNaN(t4)); if (e3.length > 0) { @@ -1641,7 +1641,7 @@ var require_dist = __commonJS({ } else this.insertLayout(2, [50, 50]); } else this.insertLayout(2, [50, 50]); this.closeModal(); - }, c2.appendChild(h2), c2.appendChild(u2), e2.appendChild(n2), e2.appendChild(o2), e2.appendChild(c2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { + }, c2.appendChild(h2), c2.appendChild(u2), e2.appendChild(n2), e2.appendChild(i2), e2.appendChild(c2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { e3.target === t2 && this.closeModal(); }), document.body.appendChild(t2), this.modal = t2, requestAnimationFrame(() => { t2.classList.add("table_modal_visible"); @@ -1654,31 +1654,31 @@ var require_dist = __commonJS({ }, 200)); } insertLayout(t2, e2) { - const s2 = `data-id-${Date.now()}`, i2 = `data-id-${Date.now() + 1}`, o2 = document.createElement("div"); - o2.className = "layout_wrapper", o2.setAttribute("data-type", "layout"), o2.setAttribute("data-id", s2), o2.setAttribute("contenteditable", "false"); + const s2 = `data-id-${Date.now()}`, o2 = `data-id-${Date.now() + 1}`, i2 = document.createElement("div"); + i2.className = "layout_wrapper", i2.setAttribute("data-type", "layout"), i2.setAttribute("data-id", s2), i2.setAttribute("contenteditable", "false"); const l2 = document.createElement("div"); l2.className = "table_controls"; const a2 = document.createElement("button"); a2.className = "table_delete_button", a2.innerHTML = f.close_icon, a2.onclick = () => { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === s2); -1 !== t3 && (this.document.blocks.splice(t3, 1), this.document.selectedBlockId === s2 && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); - }, l2.appendChild(a2), o2.appendChild(l2); - const r2 = document.createElement("div"); - r2.className = "layout_container", r2.style.display = "flex", r2.style.width = "100%", r2.style.gap = "10px"; + }, l2.appendChild(a2), i2.appendChild(l2); + const d2 = document.createElement("div"); + d2.className = "layout_container", d2.style.display = "flex", d2.style.width = "100%", d2.style.gap = "10px"; for (let n2 = 0; n2 < t2; n2++) { const s3 = document.createElement("div"); - s3.className = "layout_column tblCell", s3.style.flex = `0 0 calc(${e2[n2]}% - ${10 * (t2 - 1) / t2}px)`, s3.style.border = "1px dashed #ccc", s3.style.padding = "10px", s3.style.minHeight = "40px", s3.style.boxSizing = "border-box", s3.contentEditable = "true", s3.setAttribute("data-placeholder", `Column ${n2 + 1}`), this.setupCellEvents(s3), r2.appendChild(s3); + s3.className = "layout_column tblCell", s3.style.flex = `0 0 calc(${e2[n2]}% - ${10 * (t2 - 1) / t2}px)`, s3.style.border = "1px dashed #ccc", s3.style.padding = "10px", s3.style.minHeight = "40px", s3.style.boxSizing = "border-box", s3.contentEditable = "true", s3.setAttribute("data-placeholder", `Column ${n2 + 1}`), this.setupCellEvents(s3), d2.appendChild(s3); } - o2.appendChild(r2); - let d2 = this.document.blocks.length; + i2.appendChild(d2); + let r2 = this.document.blocks.length; if (this.document.selectedBlockId) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); - -1 !== t3 && (d2 = t3 + 1); + -1 !== t3 && (r2 = t3 + 1); } - const c2 = { dataId: s2, type: "layout", element: o2 }, h2 = { dataId: i2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; - this.document.blocks.splice(d2, 0, c2, h2), this.document.selectedBlockId = s2, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document), setTimeout(() => { - const t3 = o2.querySelector(".layout_column"); - t3 && (t3.focus(), this.setActiveLayout(o2.querySelector(".layout_container"))); + const c2 = { dataId: s2, type: "layout", element: i2 }, h2 = { dataId: o2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; + this.document.blocks.splice(r2, 0, c2, h2), this.document.selectedBlockId = s2, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document), setTimeout(() => { + const t3 = i2.querySelector(".layout_column"); + t3 && (t3.focus(), this.setActiveLayout(i2.querySelector(".layout_container"))); }, 0); } setupCellEvents(t2) { @@ -1692,9 +1692,9 @@ var require_dist = __commonJS({ const s2 = e2; if ("Tab" === s2.key) { s2.preventDefault(), s2.stopPropagation(); - const e3 = Array.from((null === (n2 = t2.closest(".layout_container")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".layout_column")) || []), i2 = e3.indexOf(t2); - if (s2.shiftKey) i2 > 0 && (e3[i2 - 1].focus(), this.selectAllInCell(e3[i2 - 1])); - else if (i2 < e3.length - 1) e3[i2 + 1].focus(), this.selectAllInCell(e3[i2 + 1]); + const e3 = Array.from((null === (n2 = t2.closest(".layout_container")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".layout_column")) || []), o2 = e3.indexOf(t2); + if (s2.shiftKey) o2 > 0 && (e3[o2 - 1].focus(), this.selectAllInCell(e3[o2 - 1])); + else if (o2 < e3.length - 1) e3[o2 + 1].focus(), this.selectAllInCell(e3[o2 + 1]); else { const e4 = t2.closest(".layout_wrapper"), n3 = null == e4 ? void 0 : e4.nextElementSibling; n3 && (n3.focus(), this.clearLayoutActive()); @@ -1747,41 +1747,41 @@ var require_dist = __commonJS({ n2.className = "table_modal", n2.id = "math_modal"; const s2 = document.createElement("div"); s2.className = "main_modal", s2.setAttribute("role", "dialog"), s2.setAttribute("aria-modal", "true"), s2.setAttribute("aria-label", "Insert Equation"), s2.style.width = "400px", s2.style.height = "390px", s2.style.maxHeight = "90vh", s2.style.position = "fixed", s2.style.top = "90px", s2.style.right = "-90px", s2.style.margin = "0"; - const i2 = document.createElement("div"); - i2.className = "main_modal_header"; - const o2 = document.createElement("h3"); - o2.className = "main_modal_title", o2.textContent = this.editingBlockId ? "Edit Equation" : "Insert Equation"; + const o2 = document.createElement("div"); + o2.className = "main_modal_header"; + const i2 = document.createElement("h3"); + i2.className = "main_modal_title", i2.textContent = this.editingBlockId ? "Edit Equation" : "Insert Equation"; const l2 = document.createElement("button"); - l2.className = "main_modal_close", l2.setAttribute("aria-label", "Close"), l2.innerHTML = f.close_icon, l2.onclick = () => this.closeModal(), i2.appendChild(o2), i2.appendChild(l2); + l2.className = "main_modal_close", l2.setAttribute("aria-label", "Close"), l2.innerHTML = f.close_icon, l2.onclick = () => this.closeModal(), o2.appendChild(i2), o2.appendChild(l2); const a2 = document.createElement("div"); a2.className = "main_modal_body"; - const r2 = document.createElement("label"); - r2.textContent = "LaTeX Input:", r2.className = "input_label", r2.style.display = "block", r2.style.marginBottom = "8px"; - const d2 = document.createElement("textarea"); - d2.className = "modal_inputs", d2.style.width = "100%", d2.style.height = "80px", d2.style.resize = "vertical", d2.placeholder = "e.g. c = \\pm\\sqrt{a^2 + b^2}", d2.value = t2; + const d2 = document.createElement("label"); + d2.textContent = "LaTeX Input:", d2.className = "input_label", d2.style.display = "block", d2.style.marginBottom = "8px"; + const r2 = document.createElement("textarea"); + r2.className = "modal_inputs", r2.style.width = "100%", r2.style.height = "80px", r2.style.resize = "vertical", r2.placeholder = "e.g. c = \\pm\\sqrt{a^2 + b^2}", r2.value = t2; const c2 = document.createElement("label"); c2.textContent = "Preview:", c2.className = "input_label", c2.style.display = "block", c2.style.marginTop = "16px", c2.style.marginBottom = "8px"; const h2 = document.createElement("div"); h2.style.padding = "10px", h2.style.border = "1px solid #ccc", h2.style.borderRadius = "4px", h2.style.minHeight = "50px", h2.style.display = "flex", h2.style.alignItems = "center", h2.style.justifyContent = "center", h2.style.overflowX = "auto"; const u2 = () => { try { - katex.render(d2.value || "Preview", h2, { throwOnError: false }); + katex.render(r2.value || "Preview", h2, { throwOnError: false }); } catch (t3) { console.error("error", t3), h2.textContent = "Invalid LaTeX"; } }; - d2.addEventListener("input", u2), a2.appendChild(r2), a2.appendChild(d2), a2.appendChild(c2), a2.appendChild(h2); + r2.addEventListener("input", u2), a2.appendChild(d2), a2.appendChild(r2), a2.appendChild(c2), a2.appendChild(h2); const p2 = document.createElement("div"); p2.className = "main_modal_footer"; const m2 = document.createElement("button"); m2.className = "modal_close_button modal_close_button_secondary", m2.textContent = "Cancel", m2.type = "button", m2.onclick = () => this.closeModal(); const g2 = document.createElement("button"); g2.className = "modal_close_button modal_close_button_primary", g2.textContent = "Apply Equation", g2.type = "button", g2.onclick = () => { - d2.value.trim() && this.insertEquation(d2.value.trim()), this.closeModal(); - }, p2.appendChild(m2), p2.appendChild(g2), s2.appendChild(i2), s2.appendChild(a2), s2.appendChild(p2), n2.appendChild(s2), n2.addEventListener("click", (t3) => { + r2.value.trim() && this.insertEquation(r2.value.trim()), this.closeModal(); + }, p2.appendChild(m2), p2.appendChild(g2), s2.appendChild(o2), s2.appendChild(a2), s2.appendChild(p2), n2.appendChild(s2), n2.addEventListener("click", (t3) => { t3.target === n2 && this.closeModal(); }), document.body.appendChild(n2), this.modal = n2, requestAnimationFrame(() => { - n2.classList.add("table_modal_visible"), d2.focus(), u2(); + n2.classList.add("table_modal_visible"), r2.focus(), u2(); }); } closeModal() { @@ -1800,29 +1800,29 @@ var require_dist = __commonJS({ } return void this.document.emit("documentChanged", this.document); } - const s2 = `data-id-${Date.now()}`, i2 = document.createElement("div"); - i2.setAttribute("data-id", s2), i2.setAttribute("contenteditable", "false"), i2.style.display = "inline-flex", i2.style.alignItems = "center", i2.style.gap = "6px", i2.style.margin = "4px", i2.style.cursor = "pointer", i2.style.position = "relative"; - const o2 = document.createElement("button"); - o2.className = "table_delete_button", o2.innerHTML = f.close_icon, o2.style.cursor = "pointer", o2.style.opacity = "0", o2.style.transition = "opacity 0.2s", i2.onmouseenter = () => { - o2.style.opacity = "1"; - }, i2.onmouseleave = () => { - o2.style.opacity = "0"; - }, o2.onclick = (t3) => { + const s2 = `data-id-${Date.now()}`, o2 = document.createElement("div"); + o2.setAttribute("data-id", s2), o2.setAttribute("contenteditable", "false"), o2.style.display = "inline-flex", o2.style.alignItems = "center", o2.style.gap = "6px", o2.style.margin = "4px", o2.style.cursor = "pointer", o2.style.position = "relative"; + const i2 = document.createElement("button"); + i2.className = "table_delete_button", i2.innerHTML = f.close_icon, i2.style.cursor = "pointer", i2.style.opacity = "0", i2.style.transition = "opacity 0.2s", o2.onmouseenter = () => { + i2.style.opacity = "1"; + }, o2.onmouseleave = () => { + i2.style.opacity = "0"; + }, i2.onclick = (t3) => { t3.stopPropagation(); const e3 = this.document.blocks.findIndex((t4) => t4.dataId === s2); -1 !== e3 && (this.document.blocks.splice(e3, 1), this.document.selectedBlockId === s2 && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); }; const l2 = document.createElement("span"); - l2.className = "math_node", l2.dataset.latex = t2, l2.innerHTML = e2, i2.onclick = (e3) => { + l2.className = "math_node", l2.dataset.latex = t2, l2.innerHTML = e2, o2.onclick = (e3) => { e3.stopPropagation(), this.openMathModal(t2, s2); - }, i2.appendChild(l2), i2.appendChild(o2); + }, o2.appendChild(l2), o2.appendChild(i2); let a2 = this.document.blocks.length; if (this.document.selectedBlockId) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); -1 !== t3 && (a2 = t3 + 1); } - const r2 = { dataId: s2, type: "math", element: i2 }, d2 = { dataId: `data-id-${Date.now() + 1}`, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; - this.document.blocks.splice(a2, 0, r2, d2), this.document.selectedBlockId = d2.dataId, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document); + const d2 = { dataId: s2, type: "math", element: o2 }, r2 = { dataId: `data-id-${Date.now() + 1}`, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; + this.document.blocks.splice(a2, 0, d2, r2), this.document.selectedBlockId = r2.dataId, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document); } } class O { @@ -1853,13 +1853,13 @@ var require_dist = __commonJS({ } class N extends e { constructor(t2, e2) { - var i2, o2, l2, d2, g2, b2, y2, T2, L2, N2, H, M, P, D; + var o2, i2, l2, r2, g2, b2, y2, T2, L2, N2, H, M, P, D; super(), this.savedSelection = null, this.debounceTimer = null; const { mainEditorId: z, toolbarId: V, popupToolbarId: F } = C(t2, e2); this.editorContainer = document.getElementById(z) || null, this.toolbarContainer = document.getElementById(V) || null; const j = document.getElementById(F) || null; if (!this.editorContainer || !this.toolbarContainer || !j) throw new Error("Editor element not found or incorrect element type."); - this.document = new s(), this.editorView = new c(this.editorContainer, this.document), this.toolbarView = new h(this.toolbarContainer), this.popupToolbarView = new I(j), this.linkPopupView = new E(), this.hyperlinkHandler = new p(this.editorContainer, this.editorView, this.document), this.imageHandler = new v(this.editorContainer, this.document), this.undoRedoManager = new x(this.document, this.editorView), this.editorView.setImageHandler(this.imageHandler), this.imageHandler.setEditorView(this.editorView), this.document.setEditorView(this.editorView), this.document.setUndoRedoManager(this.undoRedoManager), this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager), this.linkPopupView.setCallbacks((t3) => this.openLink(t3), (t3) => this.unlinkText(t3)), this.insertTableHandler = new _(this.editorView.container, this.document), this.insertLayoutHandler = new R(this.editorView.container, this.document), this.insertMathHandler = new B(this.editorView.container, this.document), this.textToSpeechHandler = new O((t3) => { + this.document = new s(), this.editorView = new c(this.editorContainer, this.document), this.toolbarView = new h(this.toolbarContainer), this.popupToolbarView = new x(j), this.linkPopupView = new E(), this.hyperlinkHandler = new p(this.editorContainer, this.editorView, this.document), this.imageHandler = new v(this.editorContainer, this.document), this.undoRedoManager = new I(this.document, this.editorView), this.editorView.setImageHandler(this.imageHandler), this.imageHandler.setEditorView(this.editorView), this.document.setEditorView(this.editorView), this.document.setUndoRedoManager(this.undoRedoManager), this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager), this.linkPopupView.setCallbacks((t3) => this.openLink(t3), (t3) => this.unlinkText(t3)), this.insertTableHandler = new _(this.editorView.container, this.document), this.insertLayoutHandler = new R(this.editorView.container, this.document), this.insertMathHandler = new B(this.editorView.container, this.document), this.textToSpeechHandler = new O((t3) => { const e3 = document.getElementById("textToSpeech"); e3 && (e3.innerHTML = t3 ? f.speaker_off : f.speaker_on, e3.dataset.tooltip = t3 ? "stop Reading" : "start Reading"); }), this.speechToTextHandler = new w(this.document, this.editorView, (t3) => { @@ -1875,10 +1875,10 @@ var require_dist = __commonJS({ U && (U.innerHTML = "", U.insertAdjacentHTML("afterbegin", f.start_microphone), U.dataset.tooltip = "start"); const q = document.getElementById("textToSpeech"); q && (q.innerHTML = "", q.insertAdjacentHTML("afterbegin", f.speaker_on), q.dataset.tooltip = "start Reading"), this.emojiPickerView = new A(), this.codeEditorModal = new S(), this.emojiPickerView.onSelect((t3) => { - var e3, n2, s2, i3; - const o3 = null !== (n2 = null === (e3 = this.savedSelection) || void 0 === e3 ? void 0 : e3.start) && void 0 !== n2 ? n2 : 0, l3 = null !== (i3 = null === (s2 = this.savedSelection) || void 0 === s2 ? void 0 : s2.end) && void 0 !== i3 ? i3 : o3; - l3 > o3 && this.document.deleteRange(o3, l3, this.document.selectedBlockId, this.document.currentOffset, false), this.document.insertAt(t3, Object.assign({}, this.currentAttributes), o3, this.document.selectedBlockId, 0, "", "batch"); - const a2 = o3 + t3.length; + var e3, n2, s2, o3; + const i3 = null !== (n2 = null === (e3 = this.savedSelection) || void 0 === e3 ? void 0 : e3.start) && void 0 !== n2 ? n2 : 0, l3 = null !== (o3 = null === (s2 = this.savedSelection) || void 0 === s2 ? void 0 : s2.end) && void 0 !== o3 ? o3 : i3; + l3 > i3 && this.document.deleteRange(i3, l3, this.document.selectedBlockId, this.document.currentOffset, false), this.document.insertAt(t3, Object.assign({}, this.currentAttributes), i3, this.document.selectedBlockId, 0, "", "batch"); + const a2 = i3 + t3.length; this.savedSelection = { start: a2, end: a2 }, this.setCursorPosition(a2); }), this.currentAttributes = { bold: false, italic: false, underline: false, strikethrough: false, subscript: false, superscript: false, undo: false, redo: false, hyperlink: false }, this.manualOverride = false, this.lastPiece = null, this.toolbarView.on("toolbarAction", (t3, e3 = []) => this.handleToolbarAction(t3, e3)), this.popupToolbarView.on("popupAction", (t3) => this.handleToolbarAction(t3)), this.document.on("documentChanged", () => { if (0 === this.document.blocks.length || 1 === this.document.blocks.length && this.document.blocks[0].pieces.every((t3) => "" === t3.text.trim() || "\u200B" === t3.text)) { @@ -1915,23 +1915,23 @@ var require_dist = __commonJS({ }), document.addEventListener("selectionchange", () => { const t3 = window.getSelection(); t3 && !t3.isCollapsed || (this.document.dataIds = [], this.document.selectAll = false); - }), null === (i2 = document.getElementById("fontColor")) || void 0 === i2 || i2.addEventListener("click", (t3) => { + }), null === (o2 = document.getElementById("fontColor")) || void 0 === o2 || o2.addEventListener("click", (t3) => { t3.stopPropagation(); const e3 = document.getElementById("colorWrapper"), n2 = document.getElementById("fontColorPicker"); if (!e3 || !n2) return; const s2 = "block" === e3.style.display; e3.style.display = s2 ? "none" : "block"; - }), null === (o2 = document.getElementById("fontColorPicker")) || void 0 === o2 || o2.addEventListener("input", (t3) => { - const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), i3 = document.getElementById("fontColorIndicator"); - i3 && (i3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { + }), null === (i2 = document.getElementById("fontColorPicker")) || void 0 === i2 || i2.addEventListener("input", (t3) => { + const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), o3 = document.getElementById("fontColorIndicator"); + o3 && (o3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { if (this.document.dataIds.includes(t4.dataId)) { this.document.selectedBlockId = t4.dataId; let s3 = 0; t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i4 = n2 - s3; - this.document.applyFontColor(i4, s3, e3); + let o4 = n2 - s3; + this.document.applyFontColor(o4, s3, e3); } }) : (this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout(() => { this.document.applyFontColor(n2, s2, e3); @@ -1941,25 +1941,25 @@ var require_dist = __commonJS({ t3 && (t3.value = "#000000", e3 && (e3.style.backgroundColor = "#000000"), t3.dispatchEvent(new Event("input"))); }), document.addEventListener("click", (t3) => { var e3; - const n2 = t3.target, s2 = document.getElementById("colorWrapper"), i3 = document.getElementById("colorBgWrapper"), o3 = document.getElementById("fontColor"), l3 = document.getElementById("bgColor"); - !s2 || n2.closest("#colorWrapper") || n2 === o3 || (null == o3 ? void 0 : o3.contains(n2)) || (s2.style.display = "none"), !i3 || n2.closest("#colorBgWrapper") || n2 === l3 || (null == l3 ? void 0 : l3.contains(n2)) || (i3.style.display = "none"), (null === (e3 = this.editorContainer) || void 0 === e3 ? void 0 : e3.contains(n2)) || n2.closest(".hyperlink-popup") || this.hyperlinkHandler.hideHyperlinkViewButton(); - }), null === (d2 = document.getElementById("bgColor")) || void 0 === d2 || d2.addEventListener("click", (t3) => { + const n2 = t3.target, s2 = document.getElementById("colorWrapper"), o3 = document.getElementById("colorBgWrapper"), i3 = document.getElementById("fontColor"), l3 = document.getElementById("bgColor"); + !s2 || n2.closest("#colorWrapper") || n2 === i3 || (null == i3 ? void 0 : i3.contains(n2)) || (s2.style.display = "none"), !o3 || n2.closest("#colorBgWrapper") || n2 === l3 || (null == l3 ? void 0 : l3.contains(n2)) || (o3.style.display = "none"), (null === (e3 = this.editorContainer) || void 0 === e3 ? void 0 : e3.contains(n2)) || n2.closest(".hyperlink-popup") || this.hyperlinkHandler.hideHyperlinkViewButton(); + }), null === (r2 = document.getElementById("bgColor")) || void 0 === r2 || r2.addEventListener("click", (t3) => { t3.stopPropagation(); const e3 = document.getElementById("colorBgWrapper"), n2 = document.getElementById("bgColorPicker"); if (!e3 || !n2) return; const s2 = "block" === e3.style.display; e3.style.display = s2 ? "none" : "block"; }), null === (g2 = document.getElementById("bgColorPicker")) || void 0 === g2 || g2.addEventListener("input", (t3) => { - const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), i3 = document.getElementById("bgColorIndicator"); - i3 && (i3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { + const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), o3 = document.getElementById("bgColorIndicator"); + o3 && (o3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { if (this.document.dataIds.includes(t4.dataId)) { this.document.selectedBlockId = t4.dataId; let s3 = 0; t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i4 = n2 - s3; - this.document.applyBgColor(i4, s3, e3); + let o4 = n2 - s3; + this.document.applyBgColor(o4, s3, e3); } }) : (this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout(() => { this.document.applyBgColor(n2, s2, e3); @@ -1978,7 +1978,7 @@ var require_dist = __commonJS({ this.htmlToJsonParser = new k(n2), console.log(this.htmlToJsonParser, "this.htmlToJsonParser"); const s2 = this.htmlToJsonParser.parse(); this.document.blocks = s2, s2.length > 0 && (this.document.dataIds[0] = s2[0].dataId, this.document.selectedBlockId = s2[0].dataId), this.document.emit("documentChanged", this); - const [i3] = this.getSelectionRange(); + const [o3] = this.getSelectionRange(); this.document.blocks.forEach((t4) => { if (this.document.dataIds.includes(t4.dataId)) { this.document.selectedBlockId = t4.dataId; @@ -1986,7 +1986,7 @@ var require_dist = __commonJS({ t4.pieces.forEach((t5) => { e4 += t5.text.length; }); - let n3 = i3 - e4; + let n3 = o3 - e4; t4.fontSize && this.document.setFontSize(n3, e4, t4.fontSize); } }), console.log("blocks", this.document.blocks, this.document.dataIds, this.document.currentOffset), console.log("htmltoJson", JSON.stringify(s2, null, 2), s2); @@ -2000,8 +2000,8 @@ var require_dist = __commonJS({ t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i3 = n2 - s3; - this.document.setFontFamily(i3, s3, e3); + let o3 = n2 - s3; + this.document.setFontFamily(o3, s3, e3); } }) : this.document.setFontFamily(n2, s2, e3); }), null === (N2 = document.getElementById("fontSize")) || void 0 === N2 || N2.addEventListener("change", (t3) => { @@ -2014,8 +2014,8 @@ var require_dist = __commonJS({ t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i3 = n2 - s3; - this.document.setFontSize(i3, s3, e3); + let o3 = n2 - s3; + this.document.setFontSize(o3, s3, e3); } }) : this.document.setFontSize(n2, s2, e3); }), null === (H = document.getElementById("heading")) || void 0 === H || H.addEventListener("change", (t3) => { @@ -2071,50 +2071,50 @@ var require_dist = __commonJS({ }), this.document.emit("documentChanged", this.document), this.editorContainer.addEventListener("paste", (t3) => { var e3, s2; this.undoRedoManager.saveUndoSnapshot(), t3.preventDefault(); - const i3 = null === (e3 = t3.clipboardData) || void 0 === e3 ? void 0 : e3.getData("text/html"), [o3, l3] = this.getSelectionRange(); - l3 > o3 && this.document.deleteRange(o3, l3, this.document.selectedBlockId, this.document.currentOffset); - let d3 = []; - if (i3) d3 = m(i3); + const o3 = null === (e3 = t3.clipboardData) || void 0 === e3 ? void 0 : e3.getData("text/html"), [i3, l3] = this.getSelectionRange(); + l3 > i3 && this.document.deleteRange(i3, l3, this.document.selectedBlockId, this.document.currentOffset); + let r3 = []; + if (o3) r3 = m(o3); else { const e4 = (function(t4) { const e5 = []; let n2, s3 = 0; for (; null !== (n2 = a.exec(t4)); ) { - const i4 = n2.index; - let o4 = n2[0], l4 = ""; - const a2 = o4.match(/[.,!?;:)\]\}"']+$/); - if (a2 && (l4 = a2[0], o4 = o4.slice(0, -l4.length)), r(t4, i4)) continue; - i4 > s3 && e5.push({ text: t4.substring(s3, i4), isUrl: false }); - let d4 = o4; - d4.startsWith("http") || (d4 = "https://" + d4), e5.push({ text: o4, isUrl: true, url: d4 }), l4 && e5.push({ text: l4, isUrl: false }), s3 = i4 + n2[0].length; + const o4 = n2.index; + let i4 = n2[0], l4 = ""; + const a2 = i4.match(/[.,!?;:)\]\}"']+$/); + if (a2 && (l4 = a2[0], i4 = i4.slice(0, -l4.length)), d(t4, o4)) continue; + o4 > s3 && e5.push({ text: t4.substring(s3, o4), isUrl: false }); + let r4 = i4; + r4.startsWith("http") || (r4 = "https://" + r4), e5.push({ text: i4, isUrl: true, url: r4 }), l4 && e5.push({ text: l4, isUrl: false }), s3 = o4 + n2[0].length; } return s3 < t4.length && e5.push({ text: t4.substring(s3), isUrl: false }), e5; })((null === (s2 = t3.clipboardData) || void 0 === s2 ? void 0 : s2.getData("text/plain")) || ""); - d3 = e4.map((t4) => t4.isUrl && t4.url ? new n(t4.text, Object.assign(Object.assign({}, this.currentAttributes), { hyperlink: t4.url })) : new n(t4.text, Object.assign({}, this.currentAttributes))); + r3 = e4.map((t4) => t4.isUrl && t4.url ? new n(t4.text, Object.assign(Object.assign({}, this.currentAttributes), { hyperlink: t4.url })) : new n(t4.text, Object.assign({}, this.currentAttributes))); } - let c2 = o3; - for (const t4 of d3) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), c2, this.document.selectedBlockId, 0, "", "batch"), c2 += t4.text.length; + let c2 = i3; + for (const t4 of r3) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), c2, this.document.selectedBlockId, 0, "", "batch"), c2 += t4.text.length; this.setCursorPosition(c2); }), this.editorContainer.addEventListener("dragover", (t3) => { t3.preventDefault(); }), this.editorContainer.addEventListener("drop", (t3) => { var e3, s2; t3.preventDefault(), this.undoRedoManager.saveUndoSnapshot(); - const i3 = null === (e3 = t3.dataTransfer) || void 0 === e3 ? void 0 : e3.getData("text/html"), [o3, l3] = this.getSelectionRange(); - l3 > o3 && this.document.deleteRange(o3, l3, this.document.selectedBlockId, this.document.currentOffset); + const o3 = null === (e3 = t3.dataTransfer) || void 0 === e3 ? void 0 : e3.getData("text/html"), [i3, l3] = this.getSelectionRange(); + l3 > i3 && this.document.deleteRange(i3, l3, this.document.selectedBlockId, this.document.currentOffset); let a2 = []; - if (i3) a2 = m(i3); + if (o3) a2 = m(o3); else { const e4 = (null === (s2 = t3.dataTransfer) || void 0 === s2 ? void 0 : s2.getData("text/plain")) || ""; a2 = [new n(e4, Object.assign({}, this.currentAttributes))]; } - let r2 = o3; - for (const t4 of a2) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), r2, this.document.selectedBlockId, 0, "", "batch"), r2 += t4.text.length; - this.setCursorPosition(r2); + let d2 = i3; + for (const t4 of a2) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), d2, this.document.selectedBlockId, 0, "", "batch"), d2 += t4.text.length; + this.setCursorPosition(d2); }); } getSelectionRange() { - const t2 = i(this.editorView.container); + const t2 = o(this.editorView.container); return t2 ? [t2.start, t2.end] : [0, 0]; } applyFontColor(t2) { @@ -2154,16 +2154,16 @@ var require_dist = __commonJS({ this.insertMathHandler.openMathModal(); break; case "emoji": - this.savedSelection = i(this.editorView.container); + this.savedSelection = o(this.editorView.container); const e3 = document.querySelector('[data-action="emoji"]'); e3.addEventListener("mousedown", (t3) => { t3.preventDefault(); }), e3 && this.emojiPickerView.open(e3); break; case "textToSpeech": - const o2 = this.getTextForSpeech(); - if (!o2) return void console.warn("Nothing to read"); - this.textToSpeechHandler.toggle(o2); + const i2 = this.getTextForSpeech(); + if (!i2) return void console.warn("Nothing to read"); + this.textToSpeechHandler.toggle(i2); break; default: if (n2 < s2) switch (this.undoRedoManager.saveUndoSnapshot(), t2) { @@ -2256,16 +2256,16 @@ var require_dist = __commonJS({ var t2, e2, n2; const s2 = window.getSelection(); if (!s2 || 0 === s2.rangeCount || !(null === (t2 = this.editorContainer) || void 0 === t2 ? void 0 : t2.contains(s2.anchorNode))) return this.hyperlinkHandler.hideHyperlinkViewButton(), void this.popupToolbarView.hide(); - const i2 = (null === (e2 = s2.anchorNode) || void 0 === e2 ? void 0 : e2.nodeType) === Node.TEXT_NODE ? s2.anchorNode.parentElement : s2.anchorNode; - if (null == i2 ? void 0 : i2.closest(".tblCell")) return void this.popupToolbarView.hide(); - const o2 = document.getElementById("textToSpeech"); - s2 && !s2.isCollapsed && s2.toString().trim() ? null == o2 || o2.classList.remove("hidden") : null == o2 || o2.classList.add("hidden"); + const o2 = (null === (e2 = s2.anchorNode) || void 0 === e2 ? void 0 : e2.nodeType) === Node.TEXT_NODE ? s2.anchorNode.parentElement : s2.anchorNode; + if (null == o2 ? void 0 : o2.closest(".tblCell")) return void this.popupToolbarView.hide(); + const i2 = document.getElementById("textToSpeech"); + s2 && !s2.isCollapsed && s2.toString().trim() ? null == i2 || i2.classList.remove("hidden") : null == i2 || i2.classList.add("hidden"); const [l2] = this.getSelectionRange(); if (this.imageHandler.currentCursorLocation = l2, s2.isCollapsed ? (this.document.dataIds = [], this.document.selectAll = false, this.popupToolbarView.hide()) : (this.document.getAllSelectedDataIds(), this.document.dataIds.length === this.document.blocks.length && this.document.blocks.length > 0 && (this.document.selectAll = true), this.popupToolbarView.show(s2)), !s2 || 0 === s2.rangeCount) return; s2 && true === s2.isCollapsed && (this.document.dataIds = [], this.document.selectAll = false); - const a2 = s2.getRangeAt(0), r2 = (null === (n2 = a2.startContainer.parentElement) || void 0 === n2 ? void 0 : n2.closest("[data-id]")) || a2.startContainer; - if (r2 instanceof HTMLElement) { - const t3 = r2.getAttribute("data-id") || (a2.startContainer instanceof HTMLElement ? a2.startContainer.getAttribute("data-id") : null); + const a2 = s2.getRangeAt(0), d2 = (null === (n2 = a2.startContainer.parentElement) || void 0 === n2 ? void 0 : n2.closest("[data-id]")) || a2.startContainer; + if (d2 instanceof HTMLElement) { + const t3 = d2.getAttribute("data-id") || (a2.startContainer instanceof HTMLElement ? a2.startContainer.getAttribute("data-id") : null); if (t3) { const e3 = this.document.blocks.find((e4) => e4.dataId === t3); e3 && "table" !== e3.type && (this.document.selectedBlockId = t3); @@ -2275,18 +2275,18 @@ var require_dist = __commonJS({ } handleKeydown(t2) { var e2, s2; - const [i2, o2] = this.getSelectionRange(); - if (this.imageHandler.currentCursorLocation = i2, ("Enter" === t2.key || " " === t2.key) && this.document.selectedBlockId) { + const [o2, i2] = this.getSelectionRange(); + if (this.imageHandler.currentCursorLocation = o2, ("Enter" === t2.key || " " === t2.key) && this.document.selectedBlockId) { const e3 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); if (-1 !== e3) { const s3 = this.document.blocks[e3]; if ("text" === s3.type && Array.isArray(s3.pieces)) { - const i3 = s3.pieces.map((t3) => t3.text).join("").replace(/\u200B/g, "").trim().match(/^```([a-zA-Z0-9_\-\+]*)$/); - if (i3) { - t2.preventDefault(), this.undoRedoManager.saveUndoSnapshot(), s3.type = "code", s3.language = i3[1] || "text", s3.code = "", s3.pieces = [], s3.class = "code_block_wrapper"; - const o3 = `data-id-${Date.now()}`; - return this.document.blocks.splice(e3 + 1, 0, { dataId: o3, class: "paragraph-block", pieces: [new n("\u200B", { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false })], type: "text" }), this.document.selectedBlockId = o3, this.document.emit("documentChanged", this.document), void setTimeout(() => { - this.setCursorPosition(this.document.currentOffset + 1, o3); + const o3 = s3.pieces.map((t3) => t3.text).join("").replace(/\u200B/g, "").trim().match(/^```([a-zA-Z0-9_\-\+]*)$/); + if (o3) { + t2.preventDefault(), this.undoRedoManager.saveUndoSnapshot(), s3.type = "code", s3.language = o3[1] || "text", s3.code = "", s3.pieces = [], s3.class = "code_block_wrapper"; + const i3 = `data-id-${Date.now()}`; + return this.document.blocks.splice(e3 + 1, 0, { dataId: i3, class: "paragraph-block", pieces: [new n("\u200B", { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false })], type: "text" }), this.document.selectedBlockId = i3, this.document.emit("documentChanged", this.document), void setTimeout(() => { + this.setCursorPosition(this.document.currentOffset + 1, i3); }, 0); } } @@ -2294,53 +2294,53 @@ var require_dist = __commonJS({ } if ("Enter" === t2.key) { t2.preventDefault(), this.undoRedoManager.saveUndoSnapshot(); - const s3 = `data-id-${Date.now()}`, l2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId), a2 = this.document.blocks[l2], r2 = (null === (e2 = null == a2 ? void 0 : a2.pieces) || void 0 === e2 ? void 0 : e2.length) > 0 ? a2.pieces[a2.pieces.length - 1] : null, d2 = r2 ? Object.assign({}, r2.attributes) : { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false }; - if (a2 && "image" === a2.type) this.document.blocks.splice(l2 + 1, 0, { dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", d2)], type: "text" }), this.document.emit("documentChanged", this), this.imageHandler.setCursorPostion(1, s3); + const s3 = `data-id-${Date.now()}`, l2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId), a2 = this.document.blocks[l2], d2 = (null === (e2 = null == a2 ? void 0 : a2.pieces) || void 0 === e2 ? void 0 : e2.length) > 0 ? a2.pieces[a2.pieces.length - 1] : null, r2 = d2 ? Object.assign({}, d2.attributes) : { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false }; + if (a2 && "image" === a2.type) this.document.blocks.splice(l2 + 1, 0, { dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", r2)], type: "text" }), this.document.emit("documentChanged", this), this.imageHandler.setCursorPostion(1, s3); else if (!a2 || "ol" !== a2.listType && "ul" !== a2.listType && "li" !== a2.listType) { const t3 = this.getCurrentCursorBlock(), e3 = null == t3 ? void 0 : t3.toString(); if (e3 && a2 && "text" === a2.type) { - const t4 = i2 - this.document.currentOffset, o3 = [], l3 = []; - let r3 = 0; + const t4 = o2 - this.document.currentOffset, i3 = [], l3 = []; + let d3 = 0; for (const e4 of a2.pieces) { - const s4 = r3 + e4.text.length; - if (s4 <= t4) o3.push(e4.clone()); - else if (r3 >= t4) l3.push(e4.clone()); + const s4 = d3 + e4.text.length; + if (s4 <= t4) i3.push(e4.clone()); + else if (d3 >= t4) l3.push(e4.clone()); else { - const s5 = t4 - r3, i3 = e4.text.slice(0, s5), a3 = e4.text.slice(s5); - i3 && o3.push(new n(i3, Object.assign({}, e4.attributes))), a3 && l3.push(new n(a3, Object.assign({}, e4.attributes))); + const s5 = t4 - d3, o3 = e4.text.slice(0, s5), a3 = e4.text.slice(s5); + o3 && i3.push(new n(o3, Object.assign({}, e4.attributes))), a3 && l3.push(new n(a3, Object.assign({}, e4.attributes))); } - r3 = s4; + d3 = s4; } - a2.pieces = o3.length > 0 ? o3 : [new n("\u200B", d2)]; - const c2 = l3.length > 0 ? l3 : [new n("\u200B", d2)], h2 = this.addBlockAfter(this.document.blocks, e3, { dataId: s3, class: "paragraph-block", pieces: c2, type: "text" }); + a2.pieces = i3.length > 0 ? i3 : [new n("\u200B", r2)]; + const c2 = l3.length > 0 ? l3 : [new n("\u200B", r2)], h2 = this.addBlockAfter(this.document.blocks, e3, { dataId: s3, class: "paragraph-block", pieces: c2, type: "text" }); this.document.blocks = h2; - } else this.document.blocks.push({ dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", d2)], type: "text" }); + } else this.document.blocks.push({ dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", r2)], type: "text" }); } else { - let t3 = [new n("\u200B", d2)]; - const e3 = i2 - this.document.currentOffset; + let t3 = [new n("\u200B", r2)]; + const e3 = o2 - this.document.currentOffset; if ("text" === a2.type && a2.pieces) { - const s4 = [], i3 = []; - let o4 = 0; + const s4 = [], o3 = []; + let i4 = 0; for (const t4 of a2.pieces) { - const l3 = o4 + t4.text.length; + const l3 = i4 + t4.text.length; if (l3 <= e3) s4.push(t4.clone()); - else if (o4 >= e3) i3.push(t4.clone()); + else if (i4 >= e3) o3.push(t4.clone()); else { - const l4 = e3 - o4, a3 = t4.text.slice(0, l4), r4 = t4.text.slice(l4); - a3 && s4.push(new n(a3, Object.assign({}, t4.attributes))), r4 && i3.push(new n(r4, Object.assign({}, t4.attributes))); + const l4 = e3 - i4, a3 = t4.text.slice(0, l4), d4 = t4.text.slice(l4); + a3 && s4.push(new n(a3, Object.assign({}, t4.attributes))), d4 && o3.push(new n(d4, Object.assign({}, t4.attributes))); } - o4 = l3; + i4 = l3; } - a2.pieces = s4.length > 0 ? s4 : [new n("\u200B", d2)], t3 = i3.length > 0 ? i3 : [new n("\u200B", d2)]; + a2.pieces = s4.length > 0 ? s4 : [new n("\u200B", r2)], t3 = o3.length > 0 ? o3 : [new n("\u200B", r2)]; } - let o3 = { dataId: s3, class: "paragraph-block", pieces: t3, type: "text" }, r3 = ""; - if ("ol" === a2.listType ? (o3.listType = "li", o3.listStart = a2.listStart + 1, o3.parentId = a2.dataId, r3 = a2.dataId) : "li" === a2.listType ? (o3.listType = "li", o3.listStart = a2.listStart + 1, o3.parentId = a2.parentId, r3 = a2.parentId) : "ul" === a2.listType && (o3.listType = "ul", o3.parentId = a2.parentId || a2.dataId), this.document.blocks.splice(l2 + 1, 0, o3), "ol" === a2.listType || "li" === a2.listType) for (let t4 = l2 + 2; t4 < this.document.blocks.length; t4++) { + let i3 = { dataId: s3, class: "paragraph-block", pieces: t3, type: "text" }, d3 = ""; + if ("ol" === a2.listType ? (i3.listType = "li", i3.listStart = a2.listStart + 1, i3.parentId = a2.dataId, d3 = a2.dataId) : "li" === a2.listType ? (i3.listType = "li", i3.listStart = a2.listStart + 1, i3.parentId = a2.parentId, d3 = a2.parentId) : "ul" === a2.listType && (i3.listType = "ul", i3.parentId = a2.parentId || a2.dataId), this.document.blocks.splice(l2 + 1, 0, i3), "ol" === a2.listType || "li" === a2.listType) for (let t4 = l2 + 2; t4 < this.document.blocks.length; t4++) { const e4 = this.document.blocks[t4]; - if ("li" !== e4.listType || e4.parentId !== r3) break; + if ("li" !== e4.listType || e4.parentId !== d3) break; e4.listStart += 1; } } - this.syncCurrentAttributesWithCursor(), this.editorView.render(), this.setCursorPosition(o2 + 1, s3); + this.syncCurrentAttributesWithCursor(), this.editorView.render(), this.setCursorPosition(i2 + 1, s3); } else if ("Backspace" === t2.key) { if (t2.preventDefault(), this.imageHandler.isImageHighlighted) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.imageHandler.highLightedImageDataId); @@ -2352,21 +2352,21 @@ var require_dist = __commonJS({ this.undoRedoManager.saveUndoSnapshot(); const t3 = this.document.dataIds[0], e4 = this.document.blocks.findIndex((e5) => e5.dataId === t3); this.document.deleteBlocks(); - let s3 = null, i3 = 0; + let s3 = null, o3 = 0; if (0 === this.document.blocks.length) { const t4 = `data-id-${Date.now()}`; - this.document.blocks.push({ dataId: t4, class: "paragraph-block", pieces: [new n(" ")], type: "text" }), s3 = t4, i3 = 0, this.editorView.render(); - } else if (e4 < this.document.blocks.length) s3 = this.document.blocks[e4].dataId, i3 = 0; + this.document.blocks.push({ dataId: t4, class: "paragraph-block", pieces: [new n(" ")], type: "text" }), s3 = t4, o3 = 0, this.editorView.render(); + } else if (e4 < this.document.blocks.length) s3 = this.document.blocks[e4].dataId, o3 = 0; else { const t4 = this.document.blocks[this.document.blocks.length - 1]; - s3 = t4.dataId, i3 = t4.pieces.reduce((t5, e5) => t5 + e5.text.length, 0); + s3 = t4.dataId, o3 = t4.pieces.reduce((t5, e5) => t5 + e5.text.length, 0); } - return void this.setCursorPosition(i3, s3); + return void this.setCursorPosition(o3, s3); } - if (o2 > i2) { + if (i2 > o2) { this.undoRedoManager.saveUndoSnapshot(); - const t3 = Math.min(this.document.currentOffset, i2); - this.document.deleteRange(i2, o2, this.document.selectedBlockId, t3, true), this.setCursorPosition(i2 - 1); + const t3 = Math.min(this.document.currentOffset, o2); + this.document.deleteRange(o2, i2, this.document.selectedBlockId, t3, true), this.setCursorPosition(o2 - 1); const e4 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); console.log(e4, "index lntgerr"); if (null === document.querySelector(`[data-id="${this.document.selectedBlockId}"]`)) { @@ -2375,30 +2375,30 @@ var require_dist = __commonJS({ const e5 = this.document.blocks.map((e6, n2) => (void 0 === (null == e6 ? void 0 : e6.listType) && null === (null == e6 ? void 0 : e6.listType) || ("ol" === (null == e6 ? void 0 : e6.listType) ? (t4 = 1, e6.listStart = 1) : "li" === (null == e6 ? void 0 : e6.listType) && (t4 += 1, e6.listStart = t4)), e6)); console.log(e5, "blocks lntgerr"), this.document.emit("documentChanged", this); } - } else if (i2 === o2 && i2 > 0) { + } else if (o2 === i2 && o2 > 0) { const t3 = this.editorView.container.textContent || ""; - let e4 = i2 - 1; - if (i2 >= 2) { - const n2 = t3.charCodeAt(i2 - 1), s3 = t3.charCodeAt(i2 - 2); - n2 >= 56320 && n2 <= 57343 && s3 >= 55296 && s3 <= 56319 && (e4 = i2 - 2); + let e4 = o2 - 1; + if (o2 >= 2) { + const n2 = t3.charCodeAt(o2 - 1), s3 = t3.charCodeAt(o2 - 2); + n2 >= 56320 && n2 <= 57343 && s3 >= 55296 && s3 <= 56319 && (e4 = o2 - 2); } - this.document.deleteRange(e4, i2, this.document.selectedBlockId, this.document.currentOffset, true), this.setCursorPosition(e4); + this.document.deleteRange(e4, o2, this.document.selectedBlockId, this.document.currentOffset, true), this.setCursorPosition(e4); } } else if (1 !== t2.key.length || t2.ctrlKey || t2.metaKey || t2.altKey) { if ("Delete" === t2.key) { - if (t2.preventDefault(), i2 === o2) { - if (this.undoRedoManager.saveUndoSnapshot(), o2 > i2) { - const t4 = Math.min(this.document.currentOffset, i2); - this.document.deleteRange(i2, o2, this.document.selectedBlockId, t4), this.setCursorPosition(i2); - } else if (o2 > i2) return this.undoRedoManager.saveUndoSnapshot(), void this.document.deleteRange(i2, o2, this.document.selectedBlockId); + if (t2.preventDefault(), o2 === i2) { + if (this.undoRedoManager.saveUndoSnapshot(), i2 > o2) { + const t4 = Math.min(this.document.currentOffset, o2); + this.document.deleteRange(o2, i2, this.document.selectedBlockId, t4), this.setCursorPosition(o2); + } else if (i2 > o2) return this.undoRedoManager.saveUndoSnapshot(), void this.document.deleteRange(o2, i2, this.document.selectedBlockId); const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); if (-1 === t3) return; const e3 = this.document.blocks[t3].pieces.reduce((t4, e4) => t4 + e4.text.length, 0); - i2 - this.document.currentOffset < e3 ? (this.document.deleteRange(i2, i2 + 1, this.document.selectedBlockId, this.document.currentOffset, false), this.setCursorPosition(i2)) : o2 > i2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(i2, o2, this.document.selectedBlockId), this.setCursorPosition(i2)); + o2 - this.document.currentOffset < e3 ? (this.document.deleteRange(o2, o2 + 1, this.document.selectedBlockId, this.document.currentOffset, false), this.setCursorPosition(o2)) : i2 > o2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(o2, i2, this.document.selectedBlockId), this.setCursorPosition(o2)); } this.hyperlinkHandler.hideHyperlinkViewButton(); } - } else t2.preventDefault(), o2 > i2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(i2, o2, this.document.selectedBlockId, this.document.currentOffset, false)), console.log("insertat", t2.key, this.currentAttributes, i2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.document.insertAt(t2.key, this.currentAttributes, i2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.setCursorPosition(i2 + 1); + } else t2.preventDefault(), i2 > o2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(o2, i2, this.document.selectedBlockId, this.document.currentOffset, false)), console.log("insertat", t2.key, this.currentAttributes, o2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.document.insertAt(t2.key, this.currentAttributes, o2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.setCursorPosition(o2 + 1); } extractTextFromDataId(t2) { const e2 = window.getSelection(); @@ -2406,18 +2406,18 @@ var require_dist = __commonJS({ const n2 = e2.getRangeAt(0).startContainer; let s2 = ""; console.log(0, "count lntgerr"); - const i2 = this.document.blocks.filter((e3) => { + const o2 = this.document.blocks.filter((e3) => { if (e3.dataId === t2) return e3; - }), o2 = document.querySelector(`[data-id="${t2}"]`), l2 = this.document.getCursorOffsetInParent(`[data-id="${t2}"]`); - let a2 = [], r2 = 0; - if (i2[0].pieces.forEach((t3, e3) => { - s2 += t3.text, (null == l2 ? void 0 : l2.innerText) === t3.text && (r2 = e3, a2.push(t3)); - }), i2[0].pieces.length > 1 && i2[0].pieces.forEach((t3, e3) => { - r2 < e3 && a2.push(t3); - }), !o2) return console.error(`Element with data-id "${t2}" not found.`), { remainingText: "", piece: null }; - if (!o2.contains(n2)) return console.error(`Cursor is not inside the element with data-id "${t2}".`), { remainingText: "", piece: null }; - const d2 = s2, c2 = null == l2 ? void 0 : l2.offset, h2 = d2.slice(c2), u2 = d2.slice(0, c2); - return o2.textContent = u2, { remainingText: h2, piece: a2 }; + }), i2 = document.querySelector(`[data-id="${t2}"]`), l2 = this.document.getCursorOffsetInParent(`[data-id="${t2}"]`); + let a2 = [], d2 = 0; + if (o2[0].pieces.forEach((t3, e3) => { + s2 += t3.text, (null == l2 ? void 0 : l2.innerText) === t3.text && (d2 = e3, a2.push(t3)); + }), o2[0].pieces.length > 1 && o2[0].pieces.forEach((t3, e3) => { + d2 < e3 && a2.push(t3); + }), !i2) return console.error(`Element with data-id "${t2}" not found.`), { remainingText: "", piece: null }; + if (!i2.contains(n2)) return console.error(`Cursor is not inside the element with data-id "${t2}".`), { remainingText: "", piece: null }; + const r2 = s2, c2 = null == l2 ? void 0 : l2.offset, h2 = r2.slice(c2), u2 = r2.slice(0, c2); + return i2.textContent = u2, { remainingText: h2, piece: a2 }; } getCurrentCursorBlock() { const t2 = window.getSelection(); @@ -2438,16 +2438,16 @@ var require_dist = __commonJS({ const e3 = (null === (t2 = n2.anchorNode) || void 0 === t2 ? void 0 : t2.nodeType) === Node.TEXT_NODE ? n2.anchorNode.parentElement : n2.anchorNode; if (null == e3 ? void 0 : e3.closest(".tblCell")) return; } - const [s2, i2] = this.getSelectionRange(); - console.log("log1", { start: s2, end: i2 }); - const o2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); - if ("image" === (null === (e2 = this.document.blocks[o2]) || void 0 === e2 ? void 0 : e2.type) ? this.imageHandler.addStyleToImage(this.document.selectedBlockId || "") : this.imageHandler.isImageHighlighted && this.imageHandler.clearImageStyling(), s2 === i2) { + const [s2, o2] = this.getSelectionRange(); + console.log("log1", { start: s2, end: o2 }); + const i2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); + if ("image" === (null === (e2 = this.document.blocks[i2]) || void 0 === e2 ? void 0 : e2.type) ? this.imageHandler.addStyleToImage(this.document.selectedBlockId || "") : this.imageHandler.isImageHighlighted && this.imageHandler.clearImageStyling(), s2 === o2) { const t3 = this.document.findPieceAtOffset(s2, this.document.selectedBlockId); t3 ? (t3 !== this.lastPiece && (this.manualOverride = false, this.lastPiece = t3), this.manualOverride || (this.currentAttributes = { bold: t3.attributes.bold, italic: t3.attributes.italic, underline: t3.attributes.underline, strikethrough: t3.attributes.strikethrough || false, subscript: t3.attributes.subscript || false, superscript: t3.attributes.superscript || false, hyperlink: t3.attributes.hyperlink || false, fontFamily: t3.attributes.fontFamily, fontSize: t3.attributes.fontSize, fontColor: t3.attributes.fontColor, bgColor: t3.attributes.bgColor }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes)), this.hyperlinkHandler.hideHyperlinkViewButton()) : (this.hyperlinkHandler.hideHyperlinkViewButton(), this.manualOverride || (this.currentAttributes = { bold: false, italic: false, underline: false, strikethrough: false, subscript: false, superscript: false, hyperlink: false }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes)), this.lastPiece = null); } else { this.hyperlinkHandler.hideHyperlinkViewButton(); - const t3 = this.document.isRangeEntirelyAttribute(s2, i2, "bold"), e3 = this.document.isRangeEntirelyAttribute(s2, i2, "italic"), n3 = this.document.isRangeEntirelyAttribute(s2, i2, "underline"), o3 = this.document.isRangeEntirelyAttribute(s2, i2, "strikethrough"), l3 = this.document.isRangeEntirelyAttribute(s2, i2, "subscript"), a2 = this.document.isRangeEntirelyAttribute(s2, i2, "superscript"); - this.currentAttributes = { bold: t3, italic: e3, underline: n3, strikethrough: o3, subscript: l3, superscript: a2, hyperlink: false }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes); + const t3 = this.document.isRangeEntirelyAttribute(s2, o2, "bold"), e3 = this.document.isRangeEntirelyAttribute(s2, o2, "italic"), n3 = this.document.isRangeEntirelyAttribute(s2, o2, "underline"), i3 = this.document.isRangeEntirelyAttribute(s2, o2, "strikethrough"), l3 = this.document.isRangeEntirelyAttribute(s2, o2, "subscript"), a2 = this.document.isRangeEntirelyAttribute(s2, o2, "superscript"); + this.currentAttributes = { bold: t3, italic: e3, underline: n3, strikethrough: i3, subscript: l3, superscript: a2, hyperlink: false }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes); } const l2 = document.getElementById("heading"); if (l2) if (this.document.selectedBlockId) { @@ -2464,26 +2464,26 @@ var require_dist = __commonJS({ const n2 = window.getSelection(); if (!n2) return; const s2 = document.createRange(); - let i2 = 0; - const o2 = [this.editorView.container]; + let o2 = 0; + const i2 = [this.editorView.container]; let l2; - for (; l2 = o2.pop(); ) if (3 === l2.nodeType) { - const e3 = l2, n3 = i2 + e3.length; - if (t2 >= i2 && t2 <= n3) { - s2.setStart(e3, t2 - i2), s2.collapse(true); + for (; l2 = i2.pop(); ) if (3 === l2.nodeType) { + const e3 = l2, n3 = o2 + e3.length; + if (t2 >= o2 && t2 <= n3) { + s2.setStart(e3, t2 - o2), s2.collapse(true); break; } - i2 = n3; + o2 = n3; } else if ("BR" === l2.tagName) { - if (t2 === i2) { + if (t2 === o2) { s2.setStartBefore(l2), s2.collapse(true); break; } - i2++; + o2++; } else { const t3 = l2; let e3 = t3.childNodes.length; - for (; e3--; ) o2.push(t3.childNodes[e3]); + for (; e3--; ) i2.push(t3.childNodes[e3]); } n2.removeAllRanges(), n2.addRange(s2); } @@ -2528,6 +2528,11 @@ var require_dist = __commonJS({ var t2; return (null === (t2 = this.editorContainer) || void 0 === t2 ? void 0 : t2.textContent) || ""; } + loadHtmlContent(t2) { + this.undoRedoManager.saveUndoSnapshot(), this.htmlToJsonParser = new k(t2); + const e2 = this.htmlToJsonParser.parse(); + this.document.blocks = e2, e2.length > 0 ? (this.document.dataIds[0] = e2[0].dataId, this.document.selectedBlockId = e2[0].dataId) : (this.document.dataIds = [], this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document); + } } window.TextIgniter = N, t.TextIgniter = N; }); @@ -2543,18 +2548,899 @@ module.exports = __toCommonJS(index_exports); // src/component/TextIgniterComponent.ts var import_textigniter = __toESM(require_dist(), 1); + +// #style-inject:#style-inject +function styleInject(css, { insertAt } = {}) { + if (!css || typeof document === "undefined") return; + const head = document.head || document.getElementsByTagName("head")[0]; + const style = document.createElement("style"); + style.type = "text/css"; + if (insertAt === "top") { + if (head.firstChild) { + head.insertBefore(style, head.firstChild); + } else { + head.appendChild(style); + } + } else { + head.appendChild(style); + } + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + style.appendChild(document.createTextNode(css)); + } +} + +// ../core/dist/styles/text-igniter.css +styleInject(`.editor-container { + border: none; + padding: 0; + border-radius: 12px; +} +.toolbar { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 4px; + padding: 8px 12px; + margin-bottom: 0; + background: #fff; + border-radius: 10px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); +} +.toolbar-separator { + width: 1px; + height: 24px; + background: #e5e7eb; + margin: 0 8px; +} +.toolbar button { + padding: 8px; + border: none; + border-radius: 6px; + background: transparent; + cursor: pointer; + font-size: 15px; + font-weight: 500; + color: #000000; + transition: all 0.15s ease; + display: inline-flex; + align-items: center; + justify-content: center; + position: relative; + min-width: 32px; + height: 32px; +} +.toolbar button:hover { + background: #f3f4f6; +} +.toolbar button:hover#fontColor, +.toolbar button:hover#bgColor { + background: transparent !important; +} +.toolbar button[data-tooltip]:hover#fontColor, +.toolbar button[data-tooltip]:hover#bgColor { + background: transparent !important; +} +.toolbar button.active { + background: #e5e7eb; + color: #111827; +} +.toolbar button svg { + width: 18px; + height: 18px; + display: block; +} +.toolbar button[data-tooltip], +.toolbar select[data-tooltip], +.popup-toolbar button[data-tooltip] { + position: relative; +} +.toolbar button[data-tooltip]::before, +.toolbar select[data-tooltip]::before, +.popup-toolbar button[data-tooltip]::before { + content: attr(data-tooltip); + position: absolute; + bottom: calc(100% + 8px); + left: 50%; + transform: translateX(-50%) scale(0.9); + padding: 8px 12px; + background: #1f2937; + color: #fff; + font-size: 12px; + font-weight: 500; + border-radius: 8px; + white-space: nowrap; + z-index: 1000; + pointer-events: none; + opacity: 0; + transition: opacity 0.15s ease, transform 0.15s ease; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} +.toolbar button[data-tooltip]::after, +.toolbar select[data-tooltip]::after, +.popup-toolbar button[data-tooltip]::after { + content: ""; + position: absolute; + bottom: calc(100% + 4px); + left: 50%; + transform: translateX(-50%) scale(0.9); + border: 5px solid transparent; + z-index: 1000; + pointer-events: none; + opacity: 0; + transition: opacity 0.15s ease, transform 0.15s ease; +} +.toolbar button[data-tooltip]:hover::before, +.toolbar button[data-tooltip]:hover::after, +.toolbar select[data-tooltip]:hover::before, +.toolbar select[data-tooltip]:hover::after, +.popup-toolbar button[data-tooltip]:hover::before, +.popup-toolbar button[data-tooltip]:hover::after { + opacity: 1; + transform: translateX(-50%) scale(1); +} +#fontFamily, +#fontSize { + padding: 6px 12px; + padding-right: 28px; + border: 1px solid #e5e7eb; + border-radius: 8px; + background-color: #fff; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + cursor: pointer; + font-size: 14px; + font-weight: 500; + color: #000000; + transition: all 0.15s ease; + appearance: none; + -webkit-appearance: none; +} +#fontFamily:hover, +#fontSize:hover { + border-color: #d1d5db; + background-color: #f9fafb; +} +#fontFamily:focus, +#fontSize:focus { + outline: none; + border-color: #9ca3af; + box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15); +} +#fontFamily { + min-width: 130px; +} +#fontSize { + min-width: 75px; +} +#editor { + border: 1px solid #e5e7eb; + border-radius: 10px; + padding: 20px 24px; + min-height: 200px; + outline: none; + white-space: pre-wrap; + overflow-wrap: break-word; + background: #fff; + margin-top: 12px; + font-size: 15px; + line-height: 1.6; + color: #1f2937; +} +#editor h1, +#editor h2, +#editor h3, +#editor h4, +#editor h5, +#editor h6 { + font-weight: normal; + margin: 0; + padding: 0; +} +#editor:focus { + border-color: #d1d5db; + box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.1); +} +.paragraph-block { + padding: 2px 0; + margin: 0; +} +#fontColor, +#bgColor { + font-size: 15px; + font-weight: 600; + position: relative; + padding-bottom: 10px; +} +#fontColor::after { + content: ""; + position: absolute; + bottom: 4px; + left: 50%; + transform: translateX(-50%); + width: 14px; + height: 3px; + border-radius: 2px; +} +#bgColor::after { + content: ""; + position: absolute; + bottom: 4px; + left: 50%; + transform: translateX(-50%); + width: 14px; + height: 3px; + border-radius: 2px; +} +#fontColorPicker, +#bgColorPicker { + border: 0; + padding: 0; + margin: 0; + height: 20px; + width: 20px; + cursor: pointer; + border-radius: 4px; +} +#fontColorWrapper { + display: flex; + align-items: center; + gap: 4px; +} +#hyperlink-container, +#hyperlink-container-view { + position: absolute; + display: none; + z-index: 1000; + padding: 12px; + border: 1px solid #e5e7eb; + border-radius: 10px; + background: white; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05); +} +#hyperlink-input { + width: 220px; + margin-right: 8px; + padding: 8px 12px; + border: 1px solid #e5e7eb; + border-radius: 6px; + font-size: 14px; + transition: all 0.15s ease; +} +#hyperlink-input:focus { + outline: none; + border-color: #9ca3af; + box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15); +} +#apply-hyperlink, +#cancel-hyperlink { + padding: 8px 14px; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + transition: all 0.15s ease; +} +#apply-hyperlink { + background: #1f2937; + color: white; +} +#apply-hyperlink:hover { + background: #000000; +} +#cancel-hyperlink { + background: #f3f4f6; + color: #000000; +} +#cancel-hyperlink:hover { + background: #e5e7eb; +} +.temporary-selection-highlight { + background-color: rgba(59, 130, 246, 0.3); +} +.popup-toolbar { + position: absolute; + z-index: 1001; + background: #fff; + border-radius: 10px; + padding: 6px 8px; + display: none; + align-items: center; + gap: 2px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 4px 10px rgba(0, 0, 0, 0.05); + border: 1px solid #e5e7eb; +} +.popup-toolbar button { + background: transparent; + border: none; + color: #000000; + cursor: pointer; + padding: 6px 8px; + border-radius: 6px; + display: inline-flex; + align-items: center; + justify-content: center; + transition: all 0.15s ease; +} +.popup-toolbar button:hover { + background: #f3f4f6; +} +.popup-toolbar button.active { + background: #e5e7eb; +} +.popup-toolbar button svg { + width: 16px; + height: 16px; + display: block; +} +.popup-toolbar .toolbar-separator { + width: 1px; + height: 20px; + background: #e5e7eb; + margin: 0 4px; +} +.ti-toast { + position: fixed; + left: 50%; + bottom: 24px; + transform: translateX(-50%); + background: #1f2937; + color: #fff; + padding: 12px 18px; + border-radius: 10px; + font-size: 14px; + font-weight: 500; + z-index: 2000; + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease, transform 0.2s ease; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); +} +.ti-toast.ti-toast--show { + opacity: 1; +} +.text-igniter a { + color: #2563eb; + text-decoration: underline; + text-decoration-color: rgba(37, 99, 235, 0.3); + text-underline-offset: 2px; + cursor: pointer; + transition: all 0.15s ease; +} +.text-igniter a:hover { + color: #1d4ed8; + text-decoration-color: rgba(37, 99, 235, 0.6); +} +.text-igniter a:visited { + color: #7c3aed; +} +.link-popup { + position: absolute; + background: #1f2937; + border-radius: 8px; + padding: 4px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); + z-index: 1000; + display: none; + animation: fadeIn 0.15s ease; + flex-direction: row; + gap: 2px; +} +.link-popup button { + background: transparent; + color: white; + border: none; + padding: 6px; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + transition: background 0.15s ease; + width: 28px; + height: 28px; + display: flex; + align-items: center; + justify-content: center; +} +.link-popup button:hover { + background: rgba(255, 255, 255, 0.1); +} +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-4px); + } + to { + opacity: 1; + transform: translateY(0); + } +} +#editor img { + max-width: 100%; + border-radius: 8px; + margin: 8px 0; +} +#editor .image-float-right { + float: right; + margin: 0 0 12px 16px; + max-width: 200px; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} +#editor .image-float-left { + float: left; + margin: 0 16px 12px 0; + max-width: 200px; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} +.table_wrapper { + margin: 12px 0; + width: 100%; + overflow-x: auto; +} +.table_controls { + display: flex; + justify-content: flex-end; + margin-bottom: 6px; + opacity: 0; + transition: opacity 0.2s ease; +} +.table_wrapper:hover .table_controls, +.table_wrapper:focus-within .table_controls, +.layout_wrapper:hover .table_controls, +.layout_wrapper:focus-within .table_controls { + opacity: 1; +} +.table_delete_button { + background: transparent; + color: #ef4444; + border: 1px solid transparent; + padding: 4px 8px; + border-radius: 4px; + font-size: 12px; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 4px; +} +.table_delete_button:hover { + background: #fef2f2; + border-color: #f87171; +} +.tbl { + width: 100%; + border-collapse: collapse; + table-layout: fixed; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 0 0 1px #e5e7eb; +} +.tbl_active { + box-shadow: 0 0 0 2px #3b82f6; +} +.tblCell { + border: 1px solid #e5e7eb; + padding: 10px 12px; + min-width: 80px; + background: #fff; + vertical-align: top; + outline: none; + transition: background-color 0.15s ease; +} +.tblCell:focus, +.tblCell_focused { + background: #f8fafc; + outline: 2px solid #3b82f6; + outline-offset: -2px; +} +.tbl_header_cell { + background: #f4f5f8; + font-weight: 600; + border-bottom-width: 2px; +} +.tblCell[data-placeholder]:empty:before { + content: attr(data-placeholder); + color: #9ca3af; + pointer-events: none; +} +.table_modal { + position: fixed; + inset: 0; + display: flex; + border: none; + align-items: center; + justify-content: center; + z-index: 99; + opacity: 0; + transition: all 0.1s ease; + visibility: hidden; +} +.table_modal_visible { + opacity: 1; + visibility: visible; +} +.main_modal { + position: absolute; + inset: 90px 1170px; + background: #f5f2f2; + border-radius: 12px; + width: 100%; + max-width: 380px; + height: 30%; + max-height: 220px; + box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.04); + overflow: hidden; +} +.layout_main_modal { + height: auto; + max-height: 380px; +} +.table_modal_visible .main_modal { + transform: scale(1); +} +.main_modal_header { + padding: 16px 20px; + border-bottom: 1px solid #e5e7eb; + display: flex; + align-items: center; + justify-content: space-between; +} +.main_modal_title { + margin: 0; + font-size: 16px; + font-weight: 600; + color: #111827; +} +.main_modal_close { + background: transparent; + border: none; + color: #6b7280; + cursor: pointer; + padding: 4px; + border-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + transition: background 0.15s ease, color 0.15s ease; +} +.main_modal_close:hover { + background: #f3f4f6; + color: #111827; +} +.main_modal_body { + padding: 20px; +} +.main_modal-divider { + display: flex; + align-items: center; + text-align: center; + margin: 20px 0; + color: #9ca3af; + font-size: 12px; + font-weight: 500; +} +.main_modal-divider::before, +.main_modal-divider::after { + content: ""; + flex: 1; + border-bottom: 1px solid #e5e7eb; +} +.main_modal-divider span { + padding: 0 10px; +} +.main_modal_inputs { + display: flex; + gap: 16px; +} +.all_input { + flex: 1; + display: flex; + flex-direction: column; + gap: 6px; +} +.ti-input-label { + font-size: 13px; + font-weight: 500; + color: #374151; +} +.modal_inputs { + width: 100%; + padding: 8px 12px; + border: 1px solid #d1d5db; + border-radius: 6px; + font-size: 14px; + transition: all 0.15s ease; + box-sizing: border-box; +} +.modal_inputs:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} +.main_modal_footer { + padding: 16px 20px; + background: #f9fafb; + border-top: 1px solid #e5e7eb; + display: flex; + justify-content: flex-end; + gap: 10px; +} +.modal_close_button { + padding: 8px 16px; + border-radius: 6px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.15s ease; + border: 1px solid transparent; +} +.modal_close_button_secondary { + background: #fff; + border-color: #d1d5db; + color: #374151; +} +.modal_close_button_secondary:hover { + background: #f3f4f6; +} +.modal_close_button_primary { + background: #3b82f6; + color: #fff; +} +.modal_close_button_primary:hover { + background: #2563eb; +} +.code_block_wrapper { + background: #f8f8f8; + border: 1px solid #e2e2e2; + border-radius: 8px; + margin: 12px 0; + overflow: hidden; + font-family: + "Fira Code", + "Cascadia Code", + "Courier New", + monospace; + position: relative; + cursor: default; + user-select: none; + syntax: none; +} +.code_block_wrapper * { + pointer-events: none; +} +.code_block_header { + background: #f0f0f0; + border-bottom: 1px solid #e2e2e2; + padding: 5px 10px; + display: flex; + align-items: center; + gap: 8px; + user-select: none; +} +.code_block_language { + font-size: 11px; + font-weight: 600; + color: #888; + font-family: "Fira Code", monospace; + letter-spacing: 0.04em; + flex: 0 0 auto; +} +.code_block_hint { + font-size: 11px; + color: #bbb; + flex: 1; +} +.code_block_cancel { + width: 20px; + height: 20px; + border-radius: 50%; + border: none; + background: transparent; + color: #bbb; + font-size: 16px; + pointer-events: all; + line-height: 1; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + flex: 0 0 auto; + transition: background 0.15s, color 0.15s; + padding: 0; +} +.code_block_cancel:hover { + background: #ffe4e4; + color: #dc2626; +} +.code_block_content { + margin: 0; + padding: 14px 16px; + color: #1e1e1e; + background: #f8f8f8; + overflow-x: auto; + font-size: 13.5px; + line-height: 1.65; + white-space: pre; + tab-size: 2; +} +.code_editor_modal { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.25); + display: flex; + align-items: center; + justify-content: center; + z-index: 9999; + backdrop-filter: blur(2px); +} +.code_editor_modal_content { + background: #ffffff; + width: 88vw; + height: 88vh; + border-radius: 12px; + display: flex; + flex-direction: column; + overflow: hidden; + border: 1px solid #e0e0e0; + box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15); +} +.code_editor_modal_header { + background: #f5f5f5; + padding: 9px 14px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #e2e2e2; + flex: 0 0 auto; +} +.code_editor_modal_title { + font-size: 12px; + font-weight: 600; + color: #888; + font-family: "Fira Code", monospace; + letter-spacing: 0.04em; +} +.code_editor_modal_actions { + display: flex; + gap: 6px; +} +.copy_editor_btn { + font-size: 12px; + font-family: inherit; + padding: 4px 12px; + border-radius: 6px; + border: 1px solid #d4d4d4; + background: #fff; + color: #444; + cursor: pointer; + transition: background 0.15s, border-color 0.15s; + white-space: nowrap; +} +.copy_editor_btn:hover { + background: #f0f0f0; +} +.copy_editor_btn--primary { + background: #1a1a1a; + color: #fff; + border-color: #1a1a1a; +} +.copy_editor_btn--primary:hover { + background: #333; + border-color: #333; +} +.copy_editor_btn--cancel:hover { + background: #ffe4e4; + color: #dc2626; + border-color: #fca5a5; +} +.editor_moal_wrapper { + flex: 1; + display: flex; + overflow: hidden; + position: relative; + background: #fff; +} +.editor_moal_line_number { + padding: 14px 10px 14px 12px; + background: #f8f8f8; + border-right: 1px solid #ebebeb; + font-family: "Fira Code", monospace; + font-size: 13px; + line-height: 1.65; + color: #ccc; + text-align: right; + user-select: none; + overflow: hidden; + min-width: 44px; + flex: 0 0 auto; +} +.editor_moal_line_number span { + display: block; +} +.modal_editor_text_area, +.editor_modal_pre_block { + position: absolute; + top: 0; + left: 44px; + width: calc(100% - 44px); + height: 100%; + margin: 0; + padding: 14px 16px; + border: none; + font-family: + "Fira Code", + "Cascadia Code", + "Courier New", + monospace; + font-size: 13.5px; + line-height: 1.65; + white-space: pre; + overflow: auto; + tab-size: 2; + box-sizing: border-box; +} +.modal_editor_text_area { + color: transparent; + background: transparent; + caret-color: #1a1a1a; + resize: none; + outline: none; + z-index: 2; +} +.editor_modal_pre_block { + color: #1e1e1e; + background: #fff; + z-index: 1; + pointer-events: none; + overflow: hidden; +} +.modal_editor_highlight { + display: block; +} +.layout_wrapper { + margin: 12px 0; + width: 100%; + position: relative; +} +.layout_active { + outline: 2px solid #3b82f6; + outline-offset: 4px; + border-radius: 4px; +} +`); + +// src/component/TextIgniterComponent.ts var TextIgniterComponent = class extends HTMLElement { constructor() { super(); this.initialized = false; this.config = {}; this.template = `
`; + this.initialValue = ""; if (!this.firstElementChild) { this.innerHTML = this.template; } } + get value() { + if (this.textIgniter) { + return this.textIgniter.getContent(); + } + return this.initialValue; + } + set value(val) { + this.initialValue = val; + if (this.textIgniter) { + if (this.textIgniter.getContent() !== val) { + this.textIgniter.loadHtmlContent(val); + } + } + } static get observedAttributes() { - return ["config"]; + return ["config", "value"]; } attributeChangedCallback(name, oldValue, newValue) { if (name === "config" && newValue !== oldValue) { @@ -2566,12 +3452,18 @@ var TextIgniterComponent = class extends HTMLElement { } catch (e) { console.error("Failed to parse config: ", e); } + } else if (name === "value" && newValue !== oldValue) { + this.value = newValue; } } connectedCallback() { if (this.initialized) { return; } + const attrValue = this.getAttribute("value"); + if (attrValue) { + this.initialValue = attrValue; + } this.initializeEditor(); } initializeEditor() { @@ -2590,6 +3482,9 @@ var TextIgniterComponent = class extends HTMLElement { editorContainer, this.config ); + if (this.initialValue) { + this.textIgniter.loadHtmlContent(this.initialValue); + } this.textIgniter.onContentChange((data) => { const event = new CustomEvent("content-change", { detail: data, diff --git a/packages/web-component/dist/index.cjs.map b/packages/web-component/dist/index.cjs.map index 619156a..768bd40 100644 --- a/packages/web-component/dist/index.cjs.map +++ b/packages/web-component/dist/index.cjs.map @@ -1 +1 @@ -{"version":3,"sources":["../../core/dist/index.js","../src/index.ts","../src/component/TextIgniterComponent.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).TextIgniter={})}(this,function(t){\"use strict\";class e{constructor(){this.events={}}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}emit(t,e){this.events[t]&&this.events[t].forEach(t=>t(e))}}class n{constructor(t,e={}){this.text=t;const n=document.getElementById(\"fontFamily\"),s=document.getElementById(\"fontSize\");let i=\"Arial\",o=\"16px\",l=document.getElementById(\"fontColorPicker\"),a=document.getElementById(\"bgColorPicker\");n&&(i=n.value),s&&(o=s.value);const r=e.fontColor||(l?l.value:\"#000000\"),d=e.bgColor||(a?a.value:\"#ffffff\");this.attributes={bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,subscript:e.subscript||!1,superscript:e.superscript||!1,undo:e.undo||!1,redo:e.redo||!1,fontFamily:e.fontFamily||i,fontSize:e.fontSize||o,hyperlink:e.hyperlink||!1,fontColor:r,bgColor:d}}isBold(){return this.attributes.bold}setBold(t){this.attributes.bold=t}isItalic(){return this.attributes.italic}isUndo(){return this.attributes.undo}isRedo(){return this.attributes.redo}setItalic(t){this.attributes.italic=t}isUnderline(){return this.attributes.underline}setUnderline(t){this.attributes.underline=t}isStrikethrough(){return this.attributes.strikethrough||!1}setStrikethrough(t){this.attributes.strikethrough=t}setUndo(t){this.attributes.undo=t}setRedo(t){this.attributes.redo=t}clone(){return new n(this.text,Object.assign({},this.attributes))}hasSameAttributes(t){return this.attributes.bold===t.attributes.bold&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&(this.attributes.strikethrough||!1)===(t.attributes.strikethrough||!1)&&(this.attributes.subscript||!1)===(t.attributes.subscript||!1)&&(this.attributes.superscript||!1)===(t.attributes.superscript||!1)&&this.attributes.undo===t.attributes.undo&&this.attributes.redo===t.attributes.redo&&this.attributes.fontFamily===t.attributes.fontFamily&&this.attributes.fontSize===t.attributes.fontSize&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&this.attributes.hyperlink===t.attributes.hyperlink&&this.attributes.fontColor===t.attributes.fontColor&&this.attributes.bgColor===t.attributes.bgColor}getHyperlink(){return this.attributes.hyperlink||!1}setHyperlink(t){this.attributes.hyperlink=t}}class s extends e{get selectedBlockId(){return this._selectedBlockId}set selectedBlockId(t){if(this._selectedBlockId!==t){this._selectedBlockId=t;const e=document.querySelector('[id=\"editor\"]'),n=document.querySelector('[data-id=\"'+t+'\"]');if(e&&n){const t=this.getCursorOffset(e),s=this.getCursorOffset(n);this.currentOffset=t-s}else this.currentOffset=0}}constructor(){super(),this.dataIds=[],this.selectAll=!1,this._selectedBlockId=null,this.pieces=[new n(\"\")],this.blocks=[{type:\"text\",dataId:\"data-id-1734604240404\",class:\"paragraph-block\",alignment:\"left\",pieces:[new n(\"​\")]}],this.selectedBlockId=\"data-id-1734604240404\",this.currentOffset=0}setEditorView(t){this.editorView=t}getPlainText(){return this.pieces.map(t=>t.text).join(\"\")}setUndoRedoManager(t){this.undoRedoManager=t}insertAt(t,e,s,i=\"\",o=0,l=\"\",a=\"\",r=!1){r||\"batch\"===a||this.undoRedoManager.saveUndoSnapshot(),console.log(\"inserted,\",{start:s,text:t}),console.log(\"inserted,\",this.blocks);let d=0,c=[],h=!1,u=0;if(\"\"===i||null===i)return;if(u=this.blocks.findIndex(t=>t.dataId===i),-1===u||!this.blocks[u].pieces)return;d=this.currentOffset;for(let i of this.blocks[u].pieces){const o=d+i.text.length;if(!h&&s<=o){const o=s-d;o>0&&c.push(new n(i.text.slice(0,o),Object.assign({},i.attributes))),c.push(new n(t,{bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,hyperlink:e.hyperlink||!1})),ot.dataId===s),-1===r||!this.blocks[r].pieces)return;a=i;let c=-1;if(o&&t===a&&r>0&&e===t&&(c=r-1>=0&&\"image\"===this.blocks[r-1].type?r-2:r-1,c>=0&&this.blocks[c]))for(let t of this.blocks[c].pieces)l.push(t.clone()),d=!0;for(let s of this.blocks[r].pieces){const i=a+s.text.length,o=a;if(i<=t||o>=e)l.push(s.clone());else{const a=s.text;if(t>o){const e=a.slice(0,t-o);e.length>0&&l.push(new n(e,Object.assign({},s.attributes)))}if(e0&&l.push(new n(t,Object.assign({},s.attributes)))}}a=i}let h=this.mergePieces(l),u=!1;d&&c>=0?(!this.blocks[r]||\"ol\"!==this.blocks[r].listType&&\"li\"!==this.blocks[r].listType||(u=!0),this.blocks[c].pieces=h,this.blocks.splice(r,1)):0===h.length?this.blocks.length>1?(!this.blocks[r]||\"ol\"!==this.blocks[r].listType&&\"li\"!==this.blocks[r].listType||(u=!0),this.blocks.splice(r,1)):(h=[new n(\" \")],this.blocks[r].pieces=h):this.blocks[r].pieces=h,u&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}deleteBlocks(){const t=this.blocks.some(t=>this.dataIds.includes(t.dataId)&&(\"ol\"===t.listType||\"li\"===t.listType));this.blocks=this.blocks.filter(t=>{if(!this.dataIds.includes(t.dataId))return t}),this.dataIds=[],this.selectAll=!1,0===this.blocks.length&&this.blocks.push({dataId:`data-id-${Date.now()}`,class:\"paragraph-block\",type:\"text\",pieces:[new n(\"​\")]}),t&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getSelectedTextDataId(){const t=window.getSelection();if(!t||0===t.rangeCount)return null;const e=t.getRangeAt(0).startContainer,n=(e.nodeType===Node.TEXT_NODE?e.parentElement:e).closest(\"[data-id]\");return(null==n?void 0:n.getAttribute(\"data-id\"))||null}getAllSelectedDataIds(){var t;const e=window.getSelection();if(!e||0===e.rangeCount)return[];const n=e.getRangeAt(0),s=[],i=document.createNodeIterator(n.commonAncestorContainer,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let o;for(;o=i.nextNode();)if(n.intersectsNode(o)){const e=o.nodeType===Node.TEXT_NODE?o.parentElement:o,n=null===(t=null==e?void 0:e.closest(\"[data-id]\"))||void 0===t?void 0:t.getAttribute(\"data-id\");n&&!s.includes(n)&&s.push(n)}return this.removeExclusiveEndBlock(n,s),this.dataIds=s,console.log(\"selected id 3\",this.dataIds,s),s}handleCtrlASelection(){const t=[],e=document.getElementById(\"editor\");if(e){e.querySelectorAll(\"[data-id]\").forEach(e=>{const n=e.getAttribute(\"data-id\");n&&!t.includes(n)&&t.push(n)})}return this.dataIds=t,console.log(\"selected id 2\",this.dataIds,t),t}getSelectedDataIds(){const t=window.getSelection();if(!t||0===t.rangeCount)return[];const e=t.getRangeAt(0),n=[],s=e.startContainer,i=e.endContainer,o=this.getDataIdFromNode(s),l=this.getDataIdFromNode(i);return o&&!n.includes(o)&&n.push(o),l&&!n.includes(l)&&n.push(l),this.removeExclusiveEndBlock(e,n),this.dataIds=n,console.log(\"selected id 1\",this.dataIds,n),n}getDataIdFromNode(t){var e;const n=t.nodeType===Node.TEXT_NODE?t.parentElement:t;return(null===(e=null==n?void 0:n.closest(\"[data-id]\"))||void 0===e?void 0:e.getAttribute(\"data-id\"))||null}getCursorOffset(t){const e=window.getSelection();if(!e||0===e.rangeCount||!t)return-1;const n=e.getRangeAt(0);let s=0;const i=t=>{if(t===n.startContainer)return s+=n.startOffset,!0;t.nodeType===Node.TEXT_NODE&&(s+=(t.textContent||\"\").length);for(const e of Array.from(t.childNodes))if(i(e))return!0;return!1};return i(t),s}formatAttribute(t,e,s,i){console.log(\"formatAttribute\",t,e,s,i);let o=[],l=0,a=-1;if(\"\"===this.selectedBlockId||null===this.selectedBlockId)return;if(a=this.blocks.findIndex(t=>t.dataId===this.selectedBlockId),-1===a||!this.blocks[a].pieces)return;l=this.currentOffset;for(let r of this.blocks[a].pieces){const a=l+r.text.length;if(a<=t||l>=e)o.push(r.clone());else{const a=l,d=r.text,c=Math.max(t-a,0),h=Math.min(e-a,d.length);c>0&&o.push(new n(d.slice(0,c),Object.assign({},r.attributes)));const u=new n(d.slice(c,h),Object.assign({},r.attributes));(\"bold\"!==s&&\"italic\"!==s&&\"underline\"!==s&&\"strikethrough\"!==s&&\"subscript\"!==s&&\"superscript\"!=s&&\"undo\"!==s&&\"redo\"!==s&&\"hyperlink\"!==s||\"boolean\"!=typeof i)&&(\"fontFamily\"!==s&&\"fontSize\"!==s&&\"hyperlink\"!==s&&\"fontColor\"!==s&&\"bgColor\"!==s||\"string\"!=typeof i)||(u.attributes[s]=i),o.push(u),he.dataId===t);if(-1===n)return;const s=this.blocks[n];\"ol\"===s.listType||\"li\"===s.listType?(s.listType=null,s.listStart=void 0,s.parentId=void 0):(s.listType=\"ol\",s.listStart=1,s.parentId=s.dataId),this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getHeadingFontSize(t){switch(t){case\"h1\":return\"32px\";case\"h2\":return\"24px\";case\"h3\":return\"18px\";case\"h4\":default:return\"16px\";case\"h5\":return\"13px\";case\"h6\":return\"11px\"}}toggleHeading(t,e){var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1===s)return;const i=this.blocks[s];i.heading=e;const o=this.getHeadingFontSize(e);if(Array.isArray(i.pieces)){i.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?i.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=i.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:o})}]:i.pieces.forEach(t=>{t.attributes.fontSize=o})}this.emit(\"documentChanged\",this)}toggleHeadingForMultipleBlocks(t,e){t.forEach(t=>{var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1!==s){const t=this.blocks[s];t.heading=e;const i=this.getHeadingFontSize(e);if(Array.isArray(t.pieces)){t.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?t.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=t.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:i})}]:t.pieces.forEach(t=>{t.attributes.fontSize=i})}}}),this.emit(\"documentChanged\",this)}toggleOrderedListForMultipleBlocks(t){if(0===t.length)return;const e=t.sort((t,e)=>this.blocks.findIndex(e=>e.dataId===t)-this.blocks.findIndex(t=>t.dataId===e));if(e.every(t=>{const e=this.blocks.find(e=>e.dataId===t);return e&&(\"ol\"===e.listType||\"li\"===e.listType)}))e.forEach(t=>{const e=this.blocks.find(e=>e.dataId===t);e&&(e.listType=null,e.listStart=void 0,e.parentId=void 0)});else{const t=e[0];e.forEach((e,n)=>{const s=this.blocks.find(t=>t.dataId===e);s&&(0===n?(s.listType=\"ol\",s.listStart=1,s.parentId=t):(s.listType=\"li\",s.listStart=n+1,s.parentId=t))})}this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}toggleUnorderedList(t){const e=this.blocks.findIndex(e=>e.dataId===t);if(-1===e)return;const n=this.blocks[e];n.listType=\"ul\"===n.listType?null:\"ul\",this.emit(\"documentChanged\",this)}updateOrderedListNumbers(){let t=1,e=null;for(let n=0;nt.focus(),0)}else this.editorView.container.focus();const s=window.getSelection();if(!s)return;const i=document.createRange();let o=0;const l=[this.editorView.container];let a;const r=(null===(n=this.editorView.container.textContent)||void 0===n?void 0:n.length)||0;if(!(t<0||t>r)){for(;a=l.pop();)if(3===a.nodeType){const e=a,n=o+e.length;if(t>=o&&t<=n){i.setStart(e,Math.min(t-o,e.length)),i.collapse(!0);break}o=n}else if(\"BR\"===a.tagName){if(t===o){i.setStartBefore(a),i.collapse(!0);break}o++}else{const t=a;let e=t.childNodes.length;for(;e--;)l.push(t.childNodes[e])}s.removeAllRanges(),s.addRange(i)}}toggleBoldRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"bold\");this.formatAttribute(t,e,\"bold\",!s)}toggleItalicRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"italic\");this.formatAttribute(t,e,\"italic\",!s)}toggleUnderlineRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"underline\");this.formatAttribute(t,e,\"underline\",!s)}toggleStrikethroughRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"strikethrough\");this.formatAttribute(t,e,\"strikethrough\",!s)}toggleSubscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"subscript\");s||this.formatAttribute(t,e,\"superscript\",!1),this.formatAttribute(t,e,\"subscript\",!s)}toggleSuperscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"superscript\");s||this.formatAttribute(t,e,\"subscript\",!1),this.formatAttribute(t,e,\"superscript\",!s)}toggleUndoRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"undo\");this.formatAttribute(t,e,\"undo\",!s)}toggleRedoRange(t,e){const n=this.isRangeEntirelyAttribute(t,e,\"redo\");this.formatAttribute(t,e,\"redo\",!n)}applyFontColor(t,e,n,s=\"\"){tt.dataId===this.selectedBlockId);if(-1===o||!this.blocks[o].pieces)return!1;for(let l of this.blocks[o].pieces){const o=s+l.text.length;if(o>t&&st+e.text.length,0);if(s.dataId==e){let e=null;for(let i of s.pieces){const s=n,o=s+i.text.length;if(t>=s&&tt.dataId===e);n&&(n.alignment=t,this.emit(\"documentChanged\",this))}getHtmlContent(t=!1){const e=document.getElementById(\"editor\");if(!e)return void console.error(\"Editor container not found.\");const n=e.innerHTML;return t&&navigator.clipboard.writeText(n).then(()=>{console.log(\"HTML copied to clipboard!\")}).catch(t=>console.error(\"Failed to copy HTML:\",t)),n}getCursorOffsetInParent(t){var e;console.log(\"textPosition -1:vicky\",t);const n=document.querySelector(t);if(!n)return null;const s=window.getSelection();if(!s||0===s.rangeCount)return null;const i=s.getRangeAt(0);if(!n.contains(i.startContainer))return null;let o=0,l=null;const a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let r=null;for(;a.nextNode();){const t=a.currentNode;if(console.log(t,\"textPosition - currentNode: vicky\"),t===i.startContainer){o+=i.startOffset,l=t,r=t.parentElement;break}o+=(null===(e=t.textContent)||void 0===e?void 0:e.length)||0}return console.log({offset:o,childNode:l,innerHTML:r.innerHTML,innerText:r.innerText},\"textPosition - return values: vicky\"),{offset:o,childNode:l,innerHTML:r.innerHTML,innerText:r.innerText}}removeExclusiveEndBlock(t,e){if(e.length<=1)return;const n=t.endContainer,s=t.endOffset;let i=!1;if((n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE)&&(i=0===s),!i)return;const o=this.getDataIdFromNode(n);if(!o)return;if(o!==this.getDataIdFromNode(t.startContainer)&&e.includes(o)){const t=e.lastIndexOf(o);t>-1&&e.splice(t,1)}}}function i(t){const e=window.getSelection();if(!e||0===e.rangeCount)return null;const n=e.getRangeAt(0),s=n.cloneRange();s.selectNodeContents(t),s.setEnd(n.startContainer,n.startOffset);const i=s.toString().length;s.setEnd(n.endContainer,n.endOffset);return{start:i,end:s.toString().length}}function o(t,e){if(!e)return;let n=0;const s=document.createRange();s.setStart(t,0),s.collapse(!0);const i=[t];let o,l=!1,a=!1;for(;!a&&(o=i.pop());)if(3===o.nodeType){const t=o,i=n+t.length;!l&&e.start>=n&&e.start<=i&&(s.setStart(t,e.start-n),l=!0),l&&e.end>=n&&e.end<=i&&(s.setEnd(t,e.end-n),a=!0),n=i}else if(\"BR\"===o.tagName)l||e.start!==n||(s.setStartBefore(o),l=!0),l&&e.end===n&&(s.setEndBefore(o),a=!0),n++;else{const t=o;let e=t.childNodes.length;for(;e--;)i.push(t.childNodes[e])}const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(s))}function l(t){const e=i(t.container);return e?[e.start,e.end]:[0,0]}const a=/((https?:\\/\\/|www\\.)[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]+|\\b[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:\\/[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]*)?)/g;function r(t,e){return e>0&&\"@\"===t[e-1]}function d(t){if(!t)return t;let e=t.trim();const n=e.match(/^https?:\\/\\/[\\w.-]+(?::\\d+)?\\/(https?:\\/\\/.*)$/);return n&&(e=n[1]),/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)?e:e.startsWith(\"//\")?\"https:\"+e:\"https://\"+e}class c{constructor(t,e){this.container=t,this.document=e}setImageHandler(t){this.imageHandler=t}render(){const t=i(this.container);this.container.innerHTML=\"\",this.document.blocks.forEach(t=>{var e;if(\"\"!==t.dataId){let n;if(\"table\"===t.type||\"layout\"===t.type||\"math\"===t.type)return void(t.element&&this.container.appendChild(t.element));if(\"image\"===t.type){if(n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",t.image)if(this.imageHandler&&\"function\"==typeof this.imageHandler.createImageFragment)n.appendChild(this.imageHandler.createImageFragment(t.image,t.dataId));else{const e=document.createElement(\"img\");e.src=t.image,n.appendChild(e)}}else if(\"code\"===t.type){n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",\"code_block_wrapper\"),n.setAttribute(\"type\",\"code\"),n.setAttribute(\"data-language\",t.language||\"text\"),n.addEventListener(\"mousedown\",t=>{t.preventDefault()});const e=document.createElement(\"div\");e.className=\"code_block_header\";const s=document.createElement(\"span\");s.className=\"code_block_language\",s.innerText=t.language||\"text\";const i=document.createElement(\"span\");i.className=\"code_block_hint\",i.innerText=\"double-click to edit\";const o=document.createElement(\"button\");o.className=\"code_block_cancel\",o.innerHTML=\"×\",o.title=\"Remove block\",o.addEventListener(\"mousedown\",t=>{t.stopPropagation()}),o.onclick=e=>{e.stopPropagation(),e.preventDefault(),n.remove();const s=this.document.blocks.findIndex(e=>e.dataId===t.dataId);-1!==s&&(this.document.blocks.splice(s,1),this.document.selectedBlockId===t.dataId&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},e.appendChild(s),e.appendChild(i),e.appendChild(o);const l=document.createElement(\"pre\");l.className=\"code_block_content\";const a=document.createElement(\"code\");a.textContent=t.code||\"\",l.appendChild(a),n.appendChild(e),n.appendChild(l)}else if(\"ol\"===t.listType||\"li\"===t.listType?(n=document.createElement(\"ol\"),n.setAttribute(\"start\",(null===(e=null==t?void 0:t.listStart)||void 0===e?void 0:e.toString())||\"1\")):n=\"ul\"===t.listType?document.createElement(\"ul\"):document.createElement(t.heading||\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",Array.isArray(t.pieces))if(\"ol\"===t.listType||\"ul\"===t.listType||\"li\"===t.listType){const e=document.createElement(\"li\");t.pieces.forEach(t=>{e.appendChild(this.renderPiece(t))}),n.appendChild(e)}else t.pieces.forEach(t=>{n.appendChild(this.renderPiece(t))});this.container.appendChild(n)}}),o(this.container,t)}renderPiece(t){const e=t.text.split(\"\\n\");return this.wrapAttributes(e,t.attributes)}wrapAttributes(t,e){const n=document.createDocumentFragment();return t.forEach((s,i)=>{let o=document.createTextNode(s);if(e.strikethrough){const t=document.createElement(\"s\");t.appendChild(o),o=t}if(e.underline){const t=document.createElement(\"u\");t.appendChild(o),o=t}if(e.italic){const t=document.createElement(\"em\");t.appendChild(o),o=t}if(e.bold){const t=document.createElement(\"strong\");t.appendChild(o),o=t}if(e.subscript){const t=document.createElement(\"sub\");t.appendChild(o),o=t}if(e.superscript){const t=document.createElement(\"sup\");t.appendChild(o),o=t}const l=document.getElementById(\"fontFamily\"),a=document.getElementById(\"fontSize\");let r=\"Arial\",c=\"16px\";l&&(r=l.value),a&&(c=a.value);const h=document.createElement(\"span\");if(h.style.fontFamily=e.fontFamily||r,h.style.fontSize=e.fontSize||c,e.fontColor&&\"string\"==typeof e.fontColor&&(h.style.color=e.fontColor),e.bgColor&&\"string\"==typeof e.bgColor&&(h.style.backgroundColor=e.bgColor),e.hyperlink&&\"string\"==typeof e.hyperlink){const t=document.createElement(\"a\");t.href=d(e.hyperlink),t.appendChild(o),o=t}h.appendChild(o),o=h,n.appendChild(o),i{t.addEventListener(\"mousedown\",t=>{t.preventDefault()})}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"toolbarAction\",t)}})}updateActiveStates(t){if(this.container.querySelectorAll(\"button\").forEach(e=>{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),\"undo\"===n&&t.undo&&(s=!0),\"redo\"===n&&t.redo&&(s=!0),e.classList.toggle(\"active\",s)}),this.container.querySelectorAll(\"select\").forEach(e=>{const n=e.getAttribute(\"data-action\");\"fontFamily\"===n&&t.fontFamily&&(e.value=t.fontFamily),\"fontSize\"===n&&t.fontSize&&(e.value=t.fontSize)}),t.fontColor){const e=document.getElementById(\"fontColorPicker\");e&&(e.value=t.fontColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}if(t.bgColor){const e=document.getElementById(\"bgColorPicker\");e&&(e.value=t.bgColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}}}const u={TOOLBAR_CLASSNAME:\"toolbar\",TOOLBAR_ID:\"toolbar\",EDITOR_CLASSNAME:\"editor\",EDITOR_ID:\"editor\",EDITOR_ELEMENT_NT_FOUND:\"Editor element not found or incorrect element type.\",FONT_FAMILY_SELECT_ID:\"fontFamily\",FONT_SIZE_SELECT_ID:\"fontSize\",HEADING_SELECT_ID:\"heading\",FONT_COLOR_WRAPPER_ID:\"fontColorWrapper\",FONT_COLOR_ID:\"fontColor\",FONT_COLOR_PICKER_WRAPPER_ID:\"colorWrapper\",FONT_COLOR_PICKER_ID:\"fontColorPicker\",FONT_COLOR_RESET_ID:\"colorResetFont\",BG_COLOR_WRAPPER_ID:\"bgColorWrapper\",BG_COLOR_ID:\"bgColor\",BG_COLOR_PICKER_WRAPPER_ID:\"colorBgWrapper\",BG_COLOR_RESET_ID:\"colorResetBG\",BG_COLOR_PICKER_ID:\"bgColorPicker\",GET_HTML_BUTTON_ID:\"getHtmlButton\",LOAD_HTML_BUTTON_ID:\"loadHtmlButton\",HYPERLINK_CONTAINER_ID:\"hyperlink-container\",HYPERLINK_INPUT_ID:\"hyperlink-input\",HYPERLINK_PLACEHOLDER:\"Enter a URL...\",HYPERLINK_APPLY_BTN_ID:\"apply-hyperlink\",HYPERLINK_CANCEL_BTN_ID:\"cancel-hyperlink\",VIEW_HYPERLINK_CONTAINER_ID:\"hyperlink-container-view\",VIEW_HYPERLINK_LABEL_ID:\"hyperlink-view-span\",VIEW_HYPERLINK_ANCHOR_ID:\"hyperlink-view-link\",TEMPORARY_SELECTION_HIGHLIGHT_CLASS:\"temporary-selection-highlight\",PARAGRAPH_BLOCK_CLASS:\"paragraph-block\",IMAGE_CROSS_CLASS:\"image-cross\",TEST_HTML_CODE:'
ajsh diujaksdajsh diujaksdajsh
diujaksdasd 98hasiudasdh 98
This is a t this is a test work
This is a test work. this is a test work
da90 uasd y98asiodoiasda90 uasd y98asiodoiasda90 uasd y98asioda
sdjasdjasdja9sudoija9sudoija9sudoija90sdoa90sdoa90sdo
',TEST_BLOG_POST_HTML_CODE:'
Blog Post Title
Start writing your post here...
',TEST_NEWSLATER_HTML_CODE:'
Weekly Newsletter
Hello subscribers,
',TEST_RESUME_HTML_CODE:'
John Doe
Experience
• Role 1
',TEST_EMAIL_HTML_CODE:'
Subject: Important Update
Hi Team,
',TEST_MEETING_HTML_CODE:'
Meeting Minutes
Attendees:
Action Items:
',POPUP_TOOLBAR_CLASSNAME:\"popup-toolbar\",POPUP_TOOLBAR_ID:\"popup-toolbar\",TOAST_ID:\"ti-toast\",TOAST_SHOW_CLASS:\"ti-toast--show\",TOAST_DEFAULT_MESSAGE:\"HTML copied to clipboard\",TOAST_DEFAULT_DURATION_MS:2e3};class p{constructor(t,e,n){this.savedSelection=null,this.clickOutsideHandler=null,this.editorContainer=t,this.editorView=e,this.document=n}setUndoRedoManager(t){this.undoRedoManager=t}hanldeHyperlinkClick(t,e,n,s,i){const o=this.getCommonHyperlinkInRange(t,e,n,s,i);this.showHyperlinkInput(o)}getCommonHyperlinkInRange(t,e,n,s,i){let o=n,l=0;s&&(l=i.findIndex(t=>t.dataId===s));const a=i[l].pieces;let r=null;for(let n of a){const s=o+n.text.length;if(s>t&&o0){const t=c.getRangeAt(0);let i=null;if(t&&\"function\"==typeof t.getBoundingClientRect)i=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);i=n&&n.length?n[0]:null}(!i||Number.isNaN(i.top)&&Number.isNaN(i.left))&&(i=this.editorView.container.getBoundingClientRect());const l=(null===window||void 0===window?void 0:window.scrollY)||0,a=(null===window||void 0===window?void 0:window.scrollX)||0;o.style.top=`${(null!==(n=i.bottom)&&void 0!==n?n:i.top)+l+5}px`,o.style.left=`${(null!==(s=i.left)&&void 0!==s?s:0)+a}px`}l.value=t||\"\",this.savedSelection=i(this.editorView.container),this.highlightSelection(),l.focus(),a.onclick=null,r.onclick=null;const h=this.document.dataIds,u=()=>{const t=d(l.value.trim());t&&this.applyHyperlink(t,h),o.style.display=\"none\"};a.onclick=u,l.onkeydown=t=>{\"Enter\"===t.key&&(t.preventDefault(),u())},r.onclick=()=>{this.removeHyperlink(h),o.style.display=\"none\"}}}highlightSelection(){this.removeHighlightSelection();const t=window.getSelection();if(t&&t.rangeCount>0){const e=t.getRangeAt(0),n=document.createElement(\"span\");n.className=u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS,n.appendChild(e.extractContents()),e.insertNode(n),t.removeAllRanges();const s=document.createRange();s.selectNodeContents(n),t.addRange(s)}}removeHighlightSelection(){var t;const e=null===(t=this.editorContainer)||void 0===t?void 0:t.querySelectorAll(`span.${u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS}`);null==e||e.forEach(t=>{const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)}})}applyHyperlink(t,e){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),o(this.editorView.container,this.savedSelection);const[n,s]=l(this.editorView);if(n1?this.document.blocks.forEach(t=>{if(e.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.formatAttribute(s,e,\"hyperlink\",i)}}):this.document.formatAttribute(n,s,\"hyperlink\",i),this.editorView.render();const o=window.getSelection();o&&o.removeAllRanges(),this.editorView.container.focus()}this.savedSelection=null}removeHyperlink(t){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),o(this.editorView.container,this.savedSelection);const[e,n]=l(this.editorView);e1?this.document.blocks.forEach(n=>{if(t.includes(n.dataId)){this.document.selectedBlockId=n.dataId;let t=0;n.pieces.forEach(e=>{t+=e.text.length});let s=e-t;this.document.formatAttribute(s,t,\"hyperlink\",!1)}}):this.document.formatAttribute(e,n,\"hyperlink\",!1),this.editorView.render(),o(this.editorView.container,this.savedSelection),this.editorView.container.focus()),this.savedSelection=null}addClickOutsideListener(t){this.removeClickOutsideListener(),this.clickOutsideHandler=e=>{t&&!t.contains(e.target)&&this.hideHyperlinkViewButton()},setTimeout(()=>{\"undefined\"!=typeof document&&document.addEventListener(\"click\",this.clickOutsideHandler)},100)}removeClickOutsideListener(){this.clickOutsideHandler&&(document.removeEventListener(\"click\",this.clickOutsideHandler),this.clickOutsideHandler=null)}showHyperlinkViewButton(t){var e,n,s;const i=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID),o=document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID);if(i&&o){i.style.display=\"block\";const l=window.getSelection();if(l&&l.rangeCount>0){const t=l.getRangeAt(0);let o=null;if(t&&\"function\"==typeof t.getBoundingClientRect)o=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);o=n&&n.length?n[0]:null}o||(o=this.editorView.container.getBoundingClientRect());const a=(null===window||void 0===window?void 0:window.scrollY)||0,r=(null===window||void 0===window?void 0:window.scrollX)||0;o&&(i.style.top=`${(null!==(n=o.bottom)&&void 0!==n?n:o.top)+a+5}px`,i.style.left=`${(null!==(s=o.left)&&void 0!==s?s:0)+r}px`)}t&&(o.innerText=t,o.href=d(t))}this.addClickOutsideListener(i)}hideHyperlinkViewButton(){const t=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID);t&&(t.style.display=\"none\"),this.removeClickOutsideListener()}}function m(t){return g((new DOMParser).parseFromString(t,\"text/html\").body,{bold:!1,italic:!1,underline:!1,hyperlink:!1})}function g(t,e){let s=Object.assign({},e);const i=[];if(t instanceof HTMLElement){if(\"A\"===t.tagName){const e=t.getAttribute(\"href\");e&&(s.hyperlink=e)}\"STRONG\"!==t.tagName&&\"B\"!==t.tagName||(s.bold=!0),\"EM\"!==t.tagName&&\"I\"!==t.tagName||(s.italic=!0),\"U\"===t.tagName&&(s.underline=!0),t.childNodes.forEach(t=>{i.push(...g(t,s))})}else if(t instanceof Text){const e=t.nodeValue||\"\";\"\"!==e.trim()&&i.push(new n(e,Object.assign({},s)))}return i}const f={bold:'\\n Bold\\n \\n ',italic:'\\n Italic\\n \\n ',underline:'\\n Underline\\n \\n ',strikethrough:'\\n Strikethrough\\n \\n ',subscript:'\\n \\n ',superscript:'\\n \\n ',left_align:'\\n Left Align\\n \\n ',center_align:'\\n Center Align\\n ',right_align:'\\n Right Align',justify:'\\n Justify\\n ',bullet_list:'\\n Bullet List',numbered_list:'\\n Numbererd List\\n \\n ',insert_table:'\\n \\n \\n \\n \\n \\n \\n \\n ',insert_layout:'\\n Insert Layout\\n \\n ',heading:'\\n Heading\\n \\n ',hyperlink:'\\n Hyperlink\\n \\n \\n ',image:'\\n Insert Image\\n \\n ',stop_microphone:' \\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',start_microphone:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',close_icon:'\\n \\n ',emoji:'\\n Emoji\\n \\n \\n \\n \\n ',insert_math:'\\n \\n ',textToSppech:'\\n \\n \\n \\n \\n Icon_24px_TexttoSpeech_Color\\n \\n \\n \\n \\n \\n \\n \\n ',speaker_on:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',speaker_off:'\\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n '},b={dropdowns:[\"fontFamily\",\"fontSize\",\"heading\"],colors:[\"fontColor\",\"bgColor\"],formatting:[\"bold\",\"italic\",\"underline\",\"strikethrough\"],alignment:[\"alignLeft\",\"alignCenter\",\"alignRight\"],lists:[\"unorderedList\",\"orderedList\"],media:[\"hyperlink\",\"image\",\"emoji\",\"insert_math\"],utility:[\"getHtmlContent\",\"loadHtmlContent\"]};function y(){const t=document.createElement(\"div\");return t.className=\"toolbar-separator\",t}function C(t,e){const n=u.EDITOR_ID,s=u.TOOLBAR_ID,i=u.POPUP_TOOLBAR_ID,o=[\"Arial\",\"Times New Roman\",\"Courier New\",\"Verdana\"],l=[\"12px\",\"14px\",\"16px\",\"18px\",\"20px\"],a=document.getElementById(t);if(!a)throw new Error(u.EDITOR_ELEMENT_NT_FOUND);a.classList.add(\"editor-container\");const r=document.createElement(\"div\");r.className=u.TOOLBAR_CLASSNAME,r.id=s,a.appendChild(r),!1===(null==e?void 0:e.showToolbar)&&(r.style.display=\"none\");const d=document.createElement(\"div\");d.id=n,d.className=u.EDITOR_CLASSNAME,d.contentEditable=\"true\",d.spellcheck=!0,d.lang=\"en\",a.appendChild(d);const c={bold:\"B\",italic:\"I\",underline:\"U\",hyperlink:\"🔗\",alignLeft:\"⇤\",alignCenter:\"↔\",alignRight:\"⇥\",unorderedList:\"•\",orderedList:\"1.\",fontFamily:\"fontFamily\",fontSize:\"fontSize\",fontColor:\"A\",subscript:\"X2\",superscript:\"X2\",justify:\"⇄\",insert_table:\"⊢\",insert_layout:\"❐\",insert_math:\"Σ\",heading:\"H\",image:\"📷\",colors:\"🎨\"},h={bold:\"Bold (Ctrl+B)\",italic:\"Italic (Ctrl+I)\",underline:\"Underline (Ctrl+U)\",strikethrough:\"Strikethrough\",hyperlink:\"Insert Link (Ctrl+H)\",alignLeft:\"Align Left (Ctrl+L)\",alignCenter:\"Align Center (Ctrl+E)\",alignRight:\"Align Right (Ctrl+R)\",unorderedList:\"Bullet List\",orderedList:\"Numbered List\",fontColor:\"Text Color\",bgColor:\"Highlight Color\",image:\"Insert Image\",emoji:\"Emoji\",getHtmlContent:\"Get HTML\",loadHtmlContent:\"Load HTML\",insert_table:\"Insert table\",insert_math:\"Insert Equation\",textToSpeech:\"Text To Sppech\"},p=[{feature:\"alignLeft\",id:\"alignLeft\",icon:f.left_align},{feature:\"alignCenter\",id:\"alignCenter\",icon:f.center_align},{feature:\"alignRight\",id:\"alignRight\",icon:f.right_align},{feature:\"unorderedList\",id:\"unorderedList\",icon:f.bullet_list},{feature:\"orderedList\",id:\"orderedList\",icon:f.numbered_list},{feature:\"hyperlink\",id:\"hyperlink\",icon:f.hyperlink},{feature:\"emoji\",id:\"emoji\",icon:f.emoji},{feature:\"strikethrough\",id:\"strikethrough\",icon:f.strikethrough},{feature:\"insert_table\",id:\"insert_table\",icon:f.insert_table},{feature:\"insert_math\",id:\"insert_math\",icon:f.insert_math},{feature:\"subscript\",id:\"subscript\",icon:f.subscript},{feature:\"superscript\",id:\"superscript\",icon:f.superscript},{feature:\"textToSpeech\",id:\"textToSpeech\",icon:f.speaker_on}],m=(t,e)=>{const n=document.createElement(\"select\");return n.dataset.action=t,n.id=t,e.forEach(t=>{const e=document.createElement(\"option\");e.value=t,e.textContent=t,n.appendChild(e)}),n},g=document.createElement(\"div\");g.id=i,g.className=u.POPUP_TOOLBAR_CLASSNAME,g.style.display=\"none\",a.appendChild(g),e.popupFeatures&&e.popupFeatures.forEach((t,e)=>{e>0&&\"hyperlink\"===t&&g.appendChild(y());const n=p.find(e=>e.feature===t)||{icon:c[t]||t},s=document.createElement(\"button\");s.dataset.action=t,s.innerHTML=n.icon,s.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),g.appendChild(s)});let C=null;e.features.forEach((t,n)=>{const s=function(t){for(const[e,n]of Object.entries(b))if(n.includes(t))return e;return null}(t);if(n>0&&s&&C&&s!==C&&r.appendChild(y()),C=s,\"fontFamily\"===t){const t=m(u.FONT_FAMILY_SELECT_ID,o);r.appendChild(t)}else if(\"fontSize\"===t){const t=m(u.FONT_SIZE_SELECT_ID,l);r.appendChild(t)}else if(\"fontColor\"===t){if(document.getElementById(u.FONT_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.FONT_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.FONT_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.fontColor,e.innerHTML='A',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.FONT_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #d1d1d1\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.type=\"color\",s.id=u.FONT_COLOR_PICKER_ID,s.setAttribute(\"data-action\",\"fontColor\"),s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #d1d1d1\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#000000\",n.appendChild(s);const i=document.createElement(\"button\");i.id=u.FONT_COLOR_RESET_ID,i.type=\"button\",i.textContent=\"Reset\",i.style.display=\"block\",i.style.width=\"100%\",i.style.padding=\"6px 12px\",i.style.fontSize=\"12px\",i.style.border=\"1px solid #000000\",i.style.borderRadius=\"4px\",i.style.backgroundColor=\"#f8f8f8\",i.style.cursor=\"pointer\",i.style.transition=\"background-color 0.2s\",i.onmouseenter=()=>i.style.backgroundColor=\"#e8e8e8\",i.onmouseleave=()=>i.style.backgroundColor=\"#f8f8f8\",n.appendChild(i),t.appendChild(n),r.appendChild(t)}else if(\"bgColor\"===t){if(document.getElementById(u.BG_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.BG_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.BG_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.bgColor,e.innerHTML='B',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.BG_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #000000\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.setAttribute(\"data-action\",\"bgColor\"),s.type=\"color\",s.id=u.BG_COLOR_PICKER_ID,s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #000000ff\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#ffffff\",n.appendChild(s);const i=document.createElement(\"button\");i.id=u.BG_COLOR_RESET_ID,i.type=\"button\",i.textContent=\"Reset\",i.style.display=\"block\",i.style.width=\"100%\",i.style.padding=\"6px 12px\",i.style.fontSize=\"12px\",i.style.border=\"1px solid #d1d1d1\",i.style.borderRadius=\"4px\",i.style.backgroundColor=\"#f8f8f8\",i.style.cursor=\"pointer\",i.style.transition=\"background-color 0.2s\",i.onmouseenter=()=>i.style.backgroundColor=\"#e8e8e8\",i.onmouseleave=()=>i.style.backgroundColor=\"#f8f8f8\",n.appendChild(i),t.appendChild(n),r.appendChild(t)}else if(\"getHtmlContent\"===t){const t=document.createElement(\"button\");t.id=u.GET_HTML_BUTTON_ID,t.type=\"button\",t.textContent=\"Get HTML\",t.dataset.tooltip=h.getHtmlContent,r.appendChild(t)}else if(\"loadHtmlContent\"===t){const t=document.createElement(\"select\");t.id=u.LOAD_HTML_BUTTON_ID,t.dataset.action=\"loadHtmlContent\",t.dataset.tooltip=h.loadHtmlContent,t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const n=document.createElement(\"option\");n.value=\"\",n.textContent=\"Templates...\",n.disabled=!0,n.selected=!0,t.appendChild(n);[...[{name:\"Default Test\",html:u.TEST_HTML_CODE},{name:\"Blog Post\",html:u.TEST_BLOG_POST_HTML_CODE},{name:\"Newsletter\",html:u.TEST_NEWSLATER_HTML_CODE},{name:\"Resume\",html:u.TEST_RESUME_HTML_CODE},{name:\"Email\",html:u.TEST_EMAIL_HTML_CODE},{name:\"Meeting Notes\",html:u.TEST_MEETING_HTML_CODE}],...e.templates||[]].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=n.toString(),s.dataset.html=e.html,s.textContent=e.name,t.appendChild(s)}),r.appendChild(t)}else if(\"heading\"===t){const t=document.createElement(\"select\");t.id=u.HEADING_SELECT_ID,t.dataset.action=\"heading\",t.dataset.tooltip=h.heading||\"Heading\",t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const e=document.createElement(\"option\");e.value=\"\",e.textContent=\"Normal\",t.appendChild(e),[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=e.toLowerCase(),s.textContent=`Heading ${n+1}`,t.appendChild(s)}),r.appendChild(t)}else if(p.map(t=>t.feature).includes(t)){const e=p.find(e=>e.feature===t),n=document.createElement(\"button\");n.id=t,n.dataset.action=t,n.innerHTML=(null==e?void 0:e.icon)||\"\",n.dataset.tooltip=h[t]||t,r.appendChild(n)}else{const e=document.createElement(\"button\");e.dataset.action=t,e.innerHTML=c[t]||t,e.id=t,e.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),r.appendChild(e)}});const k=document.createElement(\"div\");k.id=u.HYPERLINK_CONTAINER_ID,k.style.display=\"none\";const v=document.createElement(\"input\");v.type=\"text\",v.id=u.HYPERLINK_INPUT_ID,v.placeholder=u.HYPERLINK_PLACEHOLDER;const x=document.createElement(\"button\");x.id=u.HYPERLINK_APPLY_BTN_ID,x.textContent=\"Link\";const I=document.createElement(\"button\");I.id=u.HYPERLINK_CANCEL_BTN_ID,I.textContent=\"Unlink\",k.appendChild(v),k.appendChild(x),k.appendChild(I),r.appendChild(k);const E=document.createElement(\"div\");E.id=u.VIEW_HYPERLINK_CONTAINER_ID,E.style.display=\"none\";const w=document.createElement(\"span\");w.id=u.VIEW_HYPERLINK_LABEL_ID,w.innerHTML=\"Visit URL : \";const _=document.createElement(\"a\");return _.id=u.VIEW_HYPERLINK_ANCHOR_ID,_.href=\"\",_.target=\"_blank\",E.appendChild(w),E.appendChild(_),r.appendChild(E),{mainEditorId:n,toolbarId:s,popupToolbarId:i}}class k{constructor(t){this.htmlString=t,this.doc=(new DOMParser).parseFromString(t,\"text/html\")}parse(){const t=this.doc.body.children;let e=[];return Array.from(t).forEach((t,n)=>{const s=this.parseElement(t);console.log(t,\"element parse\",n,s),e.push(s)}),console.log(e,\"element--jsondata\"),e}parseElement(t){const e=t.getAttribute(\"data-id\")||`data-id-${Date.now()}-${Math.floor(1e3*Math.random())}`,n=t.className||\"paragraph-block\",s=t.style.textAlign||\"left\";let i=null,o=null;\"UL\"===t.tagName?i=\"ul\":\"OL\"===t.tagName&&(i=\"ol\",o=parseInt(t.getAttribute(\"start\")||\"1\",10));let l=[];i?this.parseListItems(t,l):this.parseParagraphText(t,l);const a=t.tagName.toLowerCase(),r=a.match(/^h[1-6]$/)?a:null;return Object.assign(Object.assign(Object.assign(Object.assign({dataId:e,class:n,alignment:s,pieces:l},i?{listType:i}:{}),null!==o?{listStart:o}:{}),{}),r?{heading:r}:{})}parseListItems(t,e){t.querySelectorAll(\"li\").forEach(t=>{const s=this.extractTextAttributes(t);s&&e.push(new n(s.text,s.attributes))})}parseParagraphText(t,e){const s=t.querySelectorAll(\"span\"),i=new Map;s.forEach(t=>{const e=this.extractTextAttributes(t);if(console.log(e,\"piece parseParagraphText span\",t.textContent,t.style.color),e){const t=i.get(e.text);t?(t.attributes.bold=t.attributes.bold||e.attributes.bold,t.attributes.italic=t.attributes.italic||e.attributes.italic,t.attributes.underline=t.attributes.underline||e.attributes.underline,t.attributes.fontFamily=e.attributes.fontFamily||t.attributes.fontFamily,t.attributes.fontSize=e.attributes.fontSize||t.attributes.fontSize,t.attributes.fontColor=e.attributes.fontColor||t.attributes.fontColor,t.attributes.bgColor=e.attributes.bgColor||t.attributes.bgColor):i.set(e.text,Object.assign({},e))}}),i.forEach(t=>{e.push(new n(t.text,t.attributes))}),console.log(e,\"pieces--parseParagraphText (merged)\")}extractTextAttributes(t){var e;const n=t.textContent||\"\";return n?(console.log(\"extractTextAttributes node\",t,t.style.color),{text:n,attributes:{bold:null!==t.querySelector(\"b, strong\"),italic:null!==t.querySelector(\"i, em\"),underline:null!==t.querySelector(\"u\"),undo:!1,redo:!1,fontFamily:t.style.fontFamily||\"Arial\",fontSize:t.style.fontSize||\"12px\",hyperlink:!!t.querySelector(\"a\")&&(null===(e=t.querySelector(\"a\"))||void 0===e?void 0:e.getAttribute(\"href\")),fontColor:t.style.color,bgColor:t.style.backgroundColor}}):null}rgbToHex(t,e=!1){const n=t.match(/\\d+/g);if(!n||n.length<3)return null;const s=n.map(t=>{const e=parseInt(t);return e<0||e>255?\"00\":e.toString(16).padStart(2,\"0\")}).join(\"\");return e||\"000000\"!==s?`#${s}`:null}}class v{constructor(t,e){this.editor=t,this.document=e,this.isImageHighlighted=!1,this.highLightedImageDataId=\"\",this.currentCursorLocation=0,this.isCrossIconVisible=!1}setEditorView(t){this.editorView=t}insertImage(){const t=document.createElement(\"input\");t.type=\"file\",t.accept=\"image/*\",t.click(),t.onchange=()=>{const e=t.files?t.files[0]:null;if(e){const t=new FileReader;t.onload=t=>{var e;const n=null===(e=t.target)||void 0===e?void 0:e.result;this.insertImageAtCursor(n)},t.readAsDataURL(e)}}}insertImageAtCursor(t){if(!t)return;const[e,n]=l(this.editorView);n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId),this.insertImageAtPosition(t,e,this.document.selectedBlockId)}setCursorPostion(t,e){if(\"number\"!=typeof t||!e)return;const n=document.querySelector(`[data-id=\"${e}\"]`);n&&(\"function\"==typeof n.focus&&n.focus(),setTimeout(()=>{const e=document.createRange(),s=window.getSelection();if(n.firstChild)e.setStart(n.firstChild,t);else{const t=document.createTextNode(\"\");n.appendChild(t),e.setStart(t,0)}e.collapse(!0),null==s||s.removeAllRanges(),null==s||s.addRange(e)},0))}insertImageAtPosition(t,e,s){if(!t||\"number\"!=typeof e||!this.editorView)return;console.log(t,e,s,\"vicky insertImageAtPosition\",this.document.blocks);const i=`data-id-${Date.now()}-${1e3*Math.random()}`,o=`data-id-${Date.now()}-${1e3*Math.random()}`,l=`data-id-${Date.now()}-${1e3*Math.random()}`,a={dataId:i,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"image\",image:t},r={dataId:o,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"text\"};let d=this.document.selectedBlockId;const c=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);let h=[];const{remainingText:p,piece:m}=function(t,e){const n=window.getSelection();if(!n||0===n.rangeCount)return{remainingText:\"\",piece:null};const s=n.getRangeAt(0).startContainer;let i=\"\";const o=e.blocks.filter(e=>{if(e.dataId===t)return e});if(!o[0]||!o[0].pieces)return{remainingText:\"\",piece:null};const l=document.querySelector(`[data-id=\"${t}\"]`),a=e.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let r=[],d=0;if(o[0].pieces.forEach((t,e)=>{i+=t.text,(null==a?void 0:a.innerText)===t.text&&(d=e,r.push(t))}),o[0].pieces.length>1&&o[0].pieces.forEach((t,e)=>{d0){const t=p.split(\" \");let e=[];\"\"!==t[0]||void 0!==t[1]?1===m.length?e=[new n(g,m[0].attributes)]:(e.push(new n(\" \"+t[0]+\" \",m[0].attributes)),m.length>=2&&m.forEach((t,n)=>{0!==n&&e.push(t)})):e=[new n(\" \")],console.log(this.document.selectedBlockId,\"uniqueId3 extractTextFromDataId-vicky\",l),f=function(t,e,n){const s=t.findIndex(t=>t.dataId===e);return-1===s?(console.error(`Block with dataId \"${e}\" not found.`),t):[...t.slice(0,s+1),n,...t.slice(s+1)]}(this.document.blocks,this.document.selectedBlockId||\"\",{dataId:l,class:u.PARAGRAPH_BLOCK_CLASS,pieces:e,type:\"text\"})}this.document.blocks=f,this.document.deleteRange(this.currentCursorLocation,this.currentCursorLocation+p.length,this.document.selectedBlockId,this.document.currentOffset),this.document.blocks.length>c+1?this.document.blocks.forEach((t,e)=>{h.push(t),e===c?h.push(a):d===this.document.selectedBlockId&&(d=t.dataId)}):(h=[...this.document.blocks,a,r],d=r.dataId),this.document.blocks=h,this.editorView.render(),this.document.selectedBlockId=d;const b=document.querySelector(`[data-id=\"${d}\"]`);b.focus(),setTimeout(()=>{const t=document.createRange(),e=window.getSelection();if(b.firstChild)t.setStart(b.firstChild,1);else{const e=document.createTextNode(\"\");b.appendChild(e),t.setStart(e,0)}t.collapse(!0),null==e||e.removeAllRanges(),null==e||e.addRange(t)},0)}createImageFragment(t,e){if(!t||!e)return document.createDocumentFragment();const n=document.createDocumentFragment(),s=document.createElement(\"img\");s.src=t,s.style.maxWidth=\"30%\",s.setAttribute(\"contenteditable\",\"false\"),n.appendChild(s);const i=document.createElement(\"span\");return i.setAttribute(\"contenteditable\",\"false\"),i.appendChild(n),s.addEventListener(\"click\",()=>this.addStyleToImage(e)),i}addStyleToImage(t){if(t&&!this.isCrossIconVisible){const e=document.querySelector(`[data-id=\"${t}\"]`),n=null==e?void 0:e.querySelector(\"span\");n&&(n.style.position=\"relative\");const s=null==e?void 0:e.querySelector(\"img\");s&&(s.style.border=\"2px solid blue\");const i=document.createElement(\"div\");i.className=u.IMAGE_CROSS_CLASS,i.innerHTML=\"x\",Object.assign(i.style,{position:\"absolute\",top:\"0\",left:\"50%\",transform:\"translate(-50%, 0)\",background:\"#fff\",borderRadius:\"50%\",width:\"30px\",height:\"30px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",border:\"3px solid blue\",zIndex:\"999\"}),i.addEventListener(\"mouseover\",()=>i.style.border=\"3px solid black\"),i.addEventListener(\"mouseout\",()=>i.style.border=\"3px solid blue\"),i.addEventListener(\"click\",t=>{t.stopPropagation(),this.deleteImage()}),null==n||n.appendChild(i),this.isImageHighlighted=!0,this.highLightedImageDataId=t,this.isCrossIconVisible=!0}}clearImageStyling(){if(!this.highLightedImageDataId)return;const t=document.querySelector(`[data-id=\"${this.highLightedImageDataId}\"]`);if(t){const e=t.querySelector(\"span\");null==e||e.removeAttribute(\"style\");const n=null==e?void 0:e.querySelector(\"img\");n&&n.removeAttribute(\"style\");const s=null==e?void 0:e.querySelector(`.${u.IMAGE_CROSS_CLASS}`);null==s||s.remove(),this.highLightedImageDataId=\"\"}this.isCrossIconVisible=!1}deleteImage(){this.highLightedImageDataId&&(this.document.blocks=this.document.blocks.filter(t=>t.dataId!==this.highLightedImageDataId),this.highLightedImageDataId=\"\",this.isImageHighlighted=!1,this.clearImageStyling(),this.document.emit(\"documentChanged\",this))}}class x{constructor(t,e){this.snapshotUndoStack=[],this.snapshotRedoStack=[],this.maxSnapshots=5e3,this.document=t,this.editorView=e}createSnapshot(){const[t,e]=l(this.editorView);return{blocks:JSON.parse(JSON.stringify(this.document.blocks)),dataIds:[...this.document.dataIds],selectedBlockId:this.document.selectedBlockId,currentOffset:this.document.currentOffset,selection:this.getCurrentSelection(),cursorPosition:t}}getCurrentSelection(){const t=i(this.document.editorView.container);return t?{start:t.start,end:t.end}:{start:0,end:0}}saveUndoSnapshot(){const t=this.createSnapshot();console.log(\"Saving snapshot:\",t.cursorPosition,\"Stack length:\",this.snapshotUndoStack.length),this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift(),this.snapshotRedoStack=[]}restoreSnapshot(t){this.document.blocks=t.blocks,this.document.dataIds=t.dataIds,this.document._selectedBlockId=t.selectedBlockId,this.document.currentOffset=t.currentOffset;for(let t of this.document.blocks)t.pieces&&Array.isArray(t.pieces)&&(t.pieces=t.pieces.map(t=>new n(t.text,t.attributes)));this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{this.document.setCursorPosition(t.cursorPosition||0)},0)}undo(){if(console.log(\"UNDO - Undo stack length:\",this.snapshotUndoStack.length),console.log(\"UNDO - Redo stack length:\",this.snapshotRedoStack.length),0===this.snapshotUndoStack.length)return;const t=this.createSnapshot();this.snapshotRedoStack.push(t),this.snapshotRedoStack.length>this.maxSnapshots&&this.snapshotRedoStack.shift();const e=this.snapshotUndoStack.pop();e&&(console.log(\"UNDO - Restoring cursor position:\",e.cursorPosition),this.restoreSnapshot(e))}redo(){if(0===this.snapshotRedoStack.length)return;const t=this.createSnapshot();this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift();const e=this.snapshotRedoStack.pop();e&&this.restoreSnapshot(e)}}class I extends e{constructor(t){super(),this.container=t,this.setupButtons()}setupButtons(){this.container.addEventListener(\"mousedown\",t=>{t.preventDefault()}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"popupAction\",t)}})}show(t){const e=t.getRangeAt(0).getBoundingClientRect();if(0===e.width&&0===e.height)return void this.hide();this.container.style.display=\"flex\";const n=this.container.offsetWidth,s=this.container.offsetHeight;let i=e.top+window.scrollY-s-8,o=e.left+window.scrollX+e.width/2-n/2;i{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),e.classList.toggle(\"active\",s)})}}class E{constructor(){this.linkElement=null,this.createPopup()}setCallbacks(t,e){this.onOpenClick=t,this.onUnlinkClick=e}createPopup(){this.popup=document.createElement(\"div\"),this.popup.className=\"link-popup\",this.popup.style.cssText=\"\\n position: absolute;\\n background: #000;\\n border-radius: 4px;\\n padding: 2px;\\n box-shadow: 0 1px 4px rgba(0,0,0,0.5);\\n z-index: 1000;\\n \",this.popup.style.display=\"none\";const t=this.createButton(\"Open\",\"🔗\"),e=this.createButton(\"Unlink\",\"✕\");t.addEventListener(\"click\",()=>this.handleOpenClick()),e.addEventListener(\"click\",()=>this.handleUnlinkClick()),this.popup.appendChild(t),this.popup.appendChild(e),document.body.appendChild(this.popup)}createButton(t,e){const n=document.createElement(\"button\");return n.innerHTML=`${e}`,n.title=t,n.style.cssText=\"\\n background: transparent;\\n color: white;\\n border: none;\\n padding: 4px;\\n margin: 0 1px;\\n border-radius: 2px;\\n cursor: pointer;\\n font-size: 16px;\\n transition: background 0.1s;\\n width: 24px;\\n height: 24px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>{n.style.background=\"#333\"}),n.addEventListener(\"mouseleave\",()=>{n.style.background=\"transparent\"}),n}handleOpenClick(){this.linkElement&&this.onOpenClick&&this.onOpenClick(this.linkElement.href)}handleUnlinkClick(){this.onUnlinkClick&&this.linkElement&&this.onUnlinkClick(this.linkElement)}show(t,e,n){this.linkElement=t;const s=t.getBoundingClientRect();this.popup.style.left=`${s.left+window.scrollX}px`,this.popup.style.top=`${s.bottom+window.scrollY+5}px`,this.popup.style.display=\"flex\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",requestAnimationFrame(()=>{this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"1\",this.popup.style.transform=\"translateY(0)\"})}hide(){\"none\"!==this.popup.style.display&&(this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",setTimeout(()=>{this.popup.style.display=\"none\",this.popup.style.transition=\"\"},100))}isPopup(t){return this.popup.contains(t)}isVisible(){return\"none\"!==this.popup.style.display}}class w{constructor(t,e,n,s){this.isRecording=!1,this.silenceTimer=null,this.document=t,this.editorView=e,this.onStateChange=n,this.insertText=s;const i=window.SpeechRecognition||window.webkitSpeechRecognition;i?(this.recognition=new i,this.recognition.continuous=!0,this.recognition.interimResults=!1,this.recognition.onresult=t=>{const e=t.results[t.results.length-1];if(e.isFinal){const t=e[0].transcript+\" \";this.insertText(t)}},this.recognition.onerror=t=>{console.error(\"Speech recognition error:\",t.error),\"no-speech\"!==t.error&&this.stopRecording()},this.recognition.onend=()=>{this.stopRecording()}):console.warn(\"Speech Recognition API not supported in this browser.\")}toggleRecording(){this.isRecording?this.stopRecording():this.startRecording()}startRecording(){if(this.recognition)try{this.recognition.start(),this.isRecording=!0,this.onStateChange(!0)}catch(t){console.error(\"Failed to start speech recognition:\",t)}}stopRecording(){if(this.recognition&&this.isRecording){try{this.recognition.stop()}catch(t){console.warn(\"Some problem occur during the stop recording . . . \",t)}this.isRecording=!1,this.onStateChange(!1),this.silenceTimer&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}}}class _{constructor(t,e){this.modal=null,this.activeTable=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openTableModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"table_modal\";const e=document.createElement(\"div\");e.className=\"main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Table\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Table\";const i=document.createElement(\"button\");i.className=\"main_modal_close\",i.setAttribute(\"aria-label\",\"Close\"),i.innerHTML=f.close_icon,i.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(i);const o=document.createElement(\"div\");o.className=\"main_modal_body\";const l=document.createElement(\"div\");l.className=\"main_modal_inputs\";const a=document.createElement(\"div\");a.className=\"all_input\";const r=document.createElement(\"label\");r.textContent=\"Rows\",r.className=\"input_label\",r.setAttribute(\"for\",\"modal_input_row\");const d=document.createElement(\"input\");d.type=\"number\",d.id=\"modal_input_row\",d.className=\"modal_inputs\",d.placeholder=\"Enter the row number 1 to 20\",d.min=\"1\",d.max=\"20\",d.value=\"3\",a.appendChild(r),a.appendChild(d);const c=document.createElement(\"div\");c.className=\"all_input\";const h=document.createElement(\"label\");h.textContent=\"Columns\",h.className=\"input_label\",h.setAttribute(\"for\",\"modal_input_col\");const u=document.createElement(\"input\");u.type=\"number\",u.id=\"modal_input_col\",u.className=\"modal_inputs\",u.placeholder=\"Enter the coloumn number 1 to 20\",u.min=\"1\",u.max=\"20\",u.value=\"3\",c.appendChild(h),c.appendChild(u),l.appendChild(a),l.appendChild(c);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Insert Table\",g.type=\"button\",g.onclick=()=>{const t=Math.max(1,Math.min(20,parseInt(d.value)||3)),e=Math.max(1,Math.min(20,parseInt(u.value)||3));this.insertTable(t,e),this.closeModal()},p.appendChild(m),p.appendChild(g),o.appendChild(l),e.appendChild(n),e.appendChild(o),e.appendChild(p),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertTable(t,e){const s=`data-id-${Date.now()}`,i=`data-id-${Date.now()+1}`,o=document.createElement(\"div\");o.className=\"table_wrapper\",o.setAttribute(\"data-type\",\"tbl\"),o.setAttribute(\"data-id\",s),o.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),o.appendChild(l);const r=document.createElement(\"table\");r.className=\"tbl\";const d=document.createElement(\"thead\"),c=document.createElement(\"tr\");for(let t=0;tt.dataId===this.document.selectedBlockId);-1!==t&&(u=t+1)}const p={dataId:s,type:\"table\",element:o},m={dataId:i,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(u,0,p,m),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=o.querySelector(\".tblCell\");t&&(t.focus(),this.setActiveTable(o.querySelector(\"table\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\"table\");e&&this.setActiveTable(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\"table\"))||void 0===n?void 0:n.querySelectorAll(\".tblCell\"))||[]),i=e.indexOf(t);if(s.shiftKey)i>0&&(e[i-1].focus(),this.selectAllInCell(e[i-1]));else if(i{e!==t&&e.classList.remove(\"tbl_active\")}),t.classList.add(\"tbl_active\"),this.activeTable=t}clearTableActive(){this.activeTable&&(this.activeTable.classList.remove(\"tbl_active\"),this.activeTable=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".table_wrapper\"),s=null!==e.closest(\"#table_modal\");n||s||this.clearTableActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".table_wrapper\")||this.clearTableActive()},!0)}}const T=[{label:\"Smileys & People\",items:[{char:\"😀\",name:\"grinning face\",shortcode:\":grinning:\"},{char:\"😃\",name:\"big eyes smile\",shortcode:\":smiley:\"},{char:\"😄\",name:\"smiling eyes grin\",shortcode:\":smile:\"},{char:\"😁\",name:\"beaming grin\",shortcode:\":grin:\"},{char:\"😆\",name:\"squinting laugh\",shortcode:\":laughing:\"},{char:\"😅\",name:\"sweat smile\",shortcode:\":sweat_smile:\"},{char:\"🤣\",name:\"rolling floor laughing\",shortcode:\":rofl:\"},{char:\"😂\",name:\"tears of joy\",shortcode:\":joy:\"},{char:\"🙂\",name:\"slightly smiling\",shortcode:\":slightly_smiling_face:\"},{char:\"😊\",name:\"smiling eyes blush\",shortcode:\":blush:\"}]}],L=\"recent_emojies\";class A{constructor(){this.isOpen=!1,this.popup=this.buildPopup(),this.gridArea=this.popup.querySelector(\".emoji_grid\"),this.searchInput=this.popup.querySelector(\".emoji_serch\"),document.body.appendChild(this.popup),document.addEventListener(\"mousedown\",t=>{if(this.isOpen&&!this.popup.contains(t.target)){t.target.closest('[data-action=\"emoji\"]')||this.close()}})}onSelect(t){this.onSelectCallback=t}open(t){const e=t.getBoundingClientRect();let n=e.left+window.scrollX;n+320>window.innerWidth-8&&(n=window.innerWidth-320-8);const s=e.bottom+window.scrollY+4;this.popup.style.left=`${n}px`,this.popup.style.top=`${s}px`,this.popup.style.display=\"flex\",this.isOpen=!0,this.searchInput.value=\"\",this.renderGrid(\"\")}close(){this.popup.style.display=\"none\",this.isOpen=!1}getIsOpen(){return this.isOpen}buildPopup(){const t=document.createElement(\"div\");t.style.cssText=\"\\n position: absolute;\\n display: none;\\n flex-direction: column;\\n width: 320px;\\n max-height: 380px;\\n background: #ffffff;\\n border: 1px solid #dddddd;\\n border-radius: 10px;\\n box-shadow: 0 6px 24px rgba(0,0,0,0.14);\\n z-index: 9999;\\n overflow: hidden;\\n font-family: system-ui, -apple-system, sans-serif;\\n \";const e=document.createElement(\"div\");e.style.cssText=\"\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 10px 12px;\\n border-bottom: 1px solid #f0f0f0;\\n background: #fafafa;\\n \";const n=document.createElement(\"input\");n.type=\"text\",n.placeholder=\"🔍 Search emojis or :shortcode:\",n.className=\"emoji_serch\",n.style.cssText=\"\\n flex: 1;\\n padding: 6px 10px;\\n border: 1px solid #ccc;\\n border-radius: 6px;\\n font-size: 13px;\\n outline: none;\\n background: #fff;\\n \",n.addEventListener(\"input\",()=>this.renderGrid(n.value.trim())),e.appendChild(n);const s=document.createElement(\"div\");return s.className=\"emoji_grid\",s.style.cssText=\"\\n flex: 1;\\n overflow-y: auto;\\n padding: 10px 12px 12px;\\n \",t.appendChild(e),t.appendChild(s),t}getRecentEmojis(){try{const t=localStorage.getItem(L);return t?JSON.parse(t):[]}catch(t){return[]}}saveRecentEmoji(t){const e=this.getRecentEmojis().filter(e=>e.char!==t.char);e.unshift(t),e.length>24&&(e.length=24);try{localStorage.setItem(L,JSON.stringify(e))}catch(t){console.error(\"Problem occur in saving emojies\",t)}}resolveChar(t){return t.char}renderGrid(t){this.gridArea.innerHTML=\"\";const e=t.toLowerCase().replace(/^:/,\"\").replace(/:$/,\"\"),n=(t,e)=>{if(!e.length)return;const n=document.createElement(\"div\");n.style.marginBottom=\"12px\";const s=document.createElement(\"div\");s.textContent=t,s.style.cssText=\"\\n font-size: 11px;\\n font-weight: 600;\\n text-transform: uppercase;\\n letter-spacing: 0.5px;\\n color: #999;\\n margin-bottom: 6px;\\n \",n.appendChild(s);const i=document.createElement(\"div\");i.style.cssText=\"\\n display: grid;\\n grid-template-columns: repeat(8, 1fr);\\n gap: 2px;\\n \",e.forEach(t=>{const e=this.resolveChar(t),n=document.createElement(\"button\");n.textContent=e,n.title=`${t.name} ${t.shortcode}`,n.style.cssText=\"\\n font-size: 20px;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n border-radius: 5px;\\n padding: 4px;\\n line-height: 1.2;\\n transition: background 0.1s;\\n aspect-ratio: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>n.style.background=\"#f0f0f0\"),n.addEventListener(\"mouseleave\",()=>n.style.background=\"transparent\"),n.addEventListener(\"mousedown\",n=>{var s;n.preventDefault(),this.saveRecentEmoji(t),null===(s=this.onSelectCallback)||void 0===s||s.call(this,e)}),i.appendChild(n)}),n.appendChild(i),this.gridArea.appendChild(n)};if(e){const t=[];T.forEach(n=>{n.items.forEach(n=>{(n.name.includes(e)||n.shortcode.includes(e))&&t.push(n)})}),n(`Results for \"${e}\"`,t)}else{const t=this.getRecentEmojis();n(\"Recently Used\",t),T.forEach(t=>n(t.label,t.items))}if(!this.gridArea.querySelector(\"button\")){const t=document.createElement(\"div\");t.textContent=\"No emojis found\",t.style.cssText=\"text-align: center; color: #aaa; padding: 24px 0; font-size: 13px;\",this.gridArea.appendChild(t)}}}class S{constructor(){this.currentLanguage=\"\",this.onSaveCallback=null,this.onCloseCallback=null,this.container=document.createElement(\"div\"),this.container.className=\"code_editor_modal\",this.container.style.display=\"none\";const t=document.createElement(\"div\");t.className=\"code_editor_modal_content\";const e=document.createElement(\"div\");e.className=\"code_editor_modal_header\";const n=document.createElement(\"span\");n.className=\"code_editor_modal_title\";const s=document.createElement(\"div\");s.className=\"code_editor_modal_actions\",this.copyBtn=document.createElement(\"button\"),this.copyBtn.className=\"copy_editor_btn\",this.copyBtn.innerText=\"Copy\",this.copyBtn.onclick=()=>this.handleCopy(),this.saveBtn=document.createElement(\"button\"),this.saveBtn.className=\"copy_editor_btn copy_editor_btn--primary\",this.saveBtn.innerText=\"Save\",this.saveBtn.onclick=()=>this.handleSave(),this.cancelBtn=document.createElement(\"button\"),this.cancelBtn.className=\"copy_editor_btn copy_editor_btn--cancel\",this.cancelBtn.innerText=\"Cancel\",this.cancelBtn.onclick=()=>this.handleClose(),s.appendChild(this.copyBtn),s.appendChild(this.saveBtn),s.appendChild(this.cancelBtn),e.appendChild(n),e.appendChild(s);const i=document.createElement(\"div\");i.className=\"editor_moal_wrapper\",this.lineNumbers=document.createElement(\"div\"),this.lineNumbers.className=\"editor_moal_line_number\",this.pre=document.createElement(\"pre\"),this.pre.className=\"editor_modal_pre_block\",this.pre.setAttribute(\"aria-hidden\",\"true\"),this.codeHighlight=document.createElement(\"code\"),this.codeHighlight.className=\"modal_editor_highlight\",this.pre.appendChild(this.codeHighlight),this.textArea=document.createElement(\"textarea\"),this.textArea.className=\"modal_editor_text_area\",this.textArea.spellcheck=!1,i.appendChild(this.lineNumbers),i.appendChild(this.pre),i.appendChild(this.textArea),t.appendChild(e),t.appendChild(i),this.container.appendChild(t),document.body.appendChild(this.container),this.attachEventListeners()}attachEventListeners(){this.textArea.addEventListener(\"input\",()=>{this.syncHighlight()}),this.textArea.addEventListener(\"scroll\",()=>{this.pre.scrollTop=this.textArea.scrollTop,this.pre.scrollLeft=this.textArea.scrollLeft,this.lineNumbers.scrollTop=this.textArea.scrollTop}),this.textArea.addEventListener(\"keydown\",t=>{if(\"Tab\"===t.key){t.preventDefault();const e=this.textArea.selectionStart,n=this.textArea.selectionEnd;this.textArea.value=this.textArea.value.substring(0,e)+\" \"+this.textArea.value.substring(n),this.textArea.selectionStart=this.textArea.selectionEnd=e+2,this.syncHighlight()}}),this.container.addEventListener(\"click\",t=>{t.target===this.container&&this.handleClose()})}syncHighlight(){const t=this.textArea.value.replace(/&/g,\"&\").replace(//g,\">\");this.codeHighlight.innerHTML=t+\"\\n\"}handleCopy(){navigator.clipboard.writeText(this.textArea.value).then(()=>{const t=this.copyBtn.innerText;this.copyBtn.innerText=\"Copied!\",setTimeout(()=>this.copyBtn.innerText=t,2e3)})}handleSave(){this.onSaveCallback&&this.onSaveCallback(this.textArea.value),this.close()}handleClose(){this.onCloseCallback&&this.onCloseCallback(),this.close()}open(t,e,n,s){this.currentLanguage=e,this.onSaveCallback=n,this.onCloseCallback=s;this.container.querySelector(\".code_editor_modal_title\").innerText=e||\"text\",this.textArea.value=t,this.syncHighlight(),this.container.style.display=\"flex\",setTimeout(()=>this.textArea.focus(),50)}close(){this.container.style.display=\"none\",this.textArea.value=\"\",this.currentLanguage=\"\"}}class R{constructor(t,e){this.modal=null,this.activeLayout=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openLayoutModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"layout_modal\";const e=document.createElement(\"div\");e.className=\"main_modal layout_main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Layout\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Layout\";const i=document.createElement(\"button\");i.className=\"main_modal_close\",i.setAttribute(\"aria-label\",\"Close\"),i.innerHTML=f.close_icon,i.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(i);const o=document.createElement(\"div\");o.className=\"main_modal_body\";const l=document.createElement(\"label\");l.textContent=\"Preset Splits\",l.className=\"input_label\",l.style.display=\"block\",l.style.marginBottom=\"8px\";const a=document.createElement(\"div\");a.style.display=\"flex\",a.style.flexWrap=\"wrap\",a.style.gap=\"8px\",a.style.marginBottom=\"16px\";[{label:\"Single\",cols:1,widths:[100]},{label:\"50 - 50\",cols:2,widths:[50,50]},{label:\"60 - 40\",cols:2,widths:[60,40]},{label:\"40 - 60\",cols:2,widths:[40,60]},{label:\"33 - 33 - 33\",cols:3,widths:[33.33,33.33,33.33]},{label:\"25 - 50 - 25\",cols:3,widths:[25,50,25]}].forEach(t=>{const e=document.createElement(\"button\");e.className=\"modal_close_button modal_close_button_secondary\",e.style.padding=\"4px 8px\",e.style.fontSize=\"12px\",e.textContent=t.label,e.onclick=()=>{this.insertLayout(t.cols,t.widths),this.closeModal()},a.appendChild(e)});const r=document.createElement(\"label\");r.textContent=\"Or Custom Splits (comma separated %)\",r.className=\"input_label\",r.style.display=\"block\",r.style.marginBottom=\"8px\";const d=document.createElement(\"input\");d.type=\"text\",d.className=\"modal_inputs\",d.placeholder=\"e.g. 20, 60, 20\",d.style.width=\"100%\",o.appendChild(l),o.appendChild(a),o.appendChild(r),o.appendChild(d);const c=document.createElement(\"div\");c.className=\"main_modal_footer\";const h=document.createElement(\"button\");h.className=\"modal_close_button modal_close_button_secondary\",h.textContent=\"Cancel\",h.type=\"button\",h.onclick=()=>this.closeModal();const u=document.createElement(\"button\");u.className=\"modal_close_button modal_close_button_primary\",u.textContent=\"Insert Custom\",u.type=\"button\",u.onclick=()=>{const t=d.value.trim();if(t){const e=t.split(\",\").map(t=>parseFloat(t.trim())).filter(t=>!isNaN(t));if(e.length>0){const t=e.reduce((t,e)=>t+e,0),n=e.map(e=>e/t*100);this.insertLayout(n.length,n)}else this.insertLayout(2,[50,50])}else this.insertLayout(2,[50,50]);this.closeModal()},c.appendChild(h),c.appendChild(u),e.appendChild(n),e.appendChild(o),e.appendChild(c),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertLayout(t,e){const s=`data-id-${Date.now()}`,i=`data-id-${Date.now()+1}`,o=document.createElement(\"div\");o.className=\"layout_wrapper\",o.setAttribute(\"data-type\",\"layout\"),o.setAttribute(\"data-id\",s),o.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),o.appendChild(l);const r=document.createElement(\"div\");r.className=\"layout_container\",r.style.display=\"flex\",r.style.width=\"100%\",r.style.gap=\"10px\";for(let n=0;nt.dataId===this.document.selectedBlockId);-1!==t&&(d=t+1)}const c={dataId:s,type:\"layout\",element:o},h={dataId:i,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(d,0,c,h),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=o.querySelector(\".layout_column\");t&&(t.focus(),this.setActiveLayout(o.querySelector(\".layout_container\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\".layout_container\");e&&this.setActiveLayout(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\".layout_container\"))||void 0===n?void 0:n.querySelectorAll(\".layout_column\"))||[]),i=e.indexOf(t);if(s.shiftKey)i>0&&(e[i-1].focus(),this.selectAllInCell(e[i-1]));else if(i{e!==t&&e.classList.remove(\"layout_active\")}),t.classList.add(\"layout_active\"),this.activeLayout=t}clearLayoutActive(){this.activeLayout&&(this.activeLayout.classList.remove(\"layout_active\"),this.activeLayout=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".layout_wrapper\"),s=null!==e.closest(\"#layout_modal\");n||s||this.clearLayoutActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".layout_wrapper\")||this.clearLayoutActive()},!0)}}class B{constructor(t,e){this.modal=null,this.isKatexLoaded=!1,this.editingBlockId=null,this.editor=t,this.document=e,this.loadKatex()}loadKatex(){if(\"undefined\"!=typeof katex)return void(this.isKatexLoaded=!0);if(document.getElementById(\"katex-js\"))return;const t=document.createElement(\"link\");t.rel=\"stylesheet\",t.href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\",document.head.appendChild(t);const e=document.createElement(\"script\");e.id=\"katex-js\",e.src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\",e.onload=()=>{this.isKatexLoaded=!0},document.head.appendChild(e)}openMathModal(t=\"\",e=null){if(!this.isKatexLoaded)return void alert(\"Math rendering engine is still loading. Please try again in a moment.\");this.editingBlockId=e,this.modal&&(this.modal.remove(),this.modal=null);const n=document.createElement(\"div\");n.className=\"table_modal\",n.id=\"math_modal\";const s=document.createElement(\"div\");s.className=\"main_modal\",s.setAttribute(\"role\",\"dialog\"),s.setAttribute(\"aria-modal\",\"true\"),s.setAttribute(\"aria-label\",\"Insert Equation\"),s.style.width=\"400px\",s.style.height=\"390px\",s.style.maxHeight=\"90vh\",s.style.position=\"fixed\",s.style.top=\"90px\",s.style.right=\"-90px\",s.style.margin=\"0\";const i=document.createElement(\"div\");i.className=\"main_modal_header\";const o=document.createElement(\"h3\");o.className=\"main_modal_title\",o.textContent=this.editingBlockId?\"Edit Equation\":\"Insert Equation\";const l=document.createElement(\"button\");l.className=\"main_modal_close\",l.setAttribute(\"aria-label\",\"Close\"),l.innerHTML=f.close_icon,l.onclick=()=>this.closeModal(),i.appendChild(o),i.appendChild(l);const a=document.createElement(\"div\");a.className=\"main_modal_body\";const r=document.createElement(\"label\");r.textContent=\"LaTeX Input:\",r.className=\"input_label\",r.style.display=\"block\",r.style.marginBottom=\"8px\";const d=document.createElement(\"textarea\");d.className=\"modal_inputs\",d.style.width=\"100%\",d.style.height=\"80px\",d.style.resize=\"vertical\",d.placeholder=\"e.g. c = \\\\pm\\\\sqrt{a^2 + b^2}\",d.value=t;const c=document.createElement(\"label\");c.textContent=\"Preview:\",c.className=\"input_label\",c.style.display=\"block\",c.style.marginTop=\"16px\",c.style.marginBottom=\"8px\";const h=document.createElement(\"div\");h.style.padding=\"10px\",h.style.border=\"1px solid #ccc\",h.style.borderRadius=\"4px\",h.style.minHeight=\"50px\",h.style.display=\"flex\",h.style.alignItems=\"center\",h.style.justifyContent=\"center\",h.style.overflowX=\"auto\";const u=()=>{try{katex.render(d.value||\"Preview\",h,{throwOnError:!1})}catch(t){console.error(\"error\",t),h.textContent=\"Invalid LaTeX\"}};d.addEventListener(\"input\",u),a.appendChild(r),a.appendChild(d),a.appendChild(c),a.appendChild(h);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Apply Equation\",g.type=\"button\",g.onclick=()=>{d.value.trim()&&this.insertEquation(d.value.trim()),this.closeModal()},p.appendChild(m),p.appendChild(g),s.appendChild(i),s.appendChild(a),s.appendChild(p),n.appendChild(s),n.addEventListener(\"click\",t=>{t.target===n&&this.closeModal()}),document.body.appendChild(n),this.modal=n,requestAnimationFrame(()=>{n.classList.add(\"table_modal_visible\"),d.focus(),u()})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null,this.editingBlockId=null},200))}insertEquation(t){const e=katex.renderToString(t,{output:\"mathml\"});if(this.editingBlockId){const n=this.document.blocks.find(t=>t.dataId===this.editingBlockId);if(n&&n.element){const s=n.element.querySelector(\".math_node\");s&&(s.innerHTML=e,s.dataset.latex=t)}return void this.document.emit(\"documentChanged\",this.document)}const s=`data-id-${Date.now()}`,i=document.createElement(\"div\");i.setAttribute(\"data-id\",s),i.setAttribute(\"contenteditable\",\"false\"),i.style.display=\"inline-flex\",i.style.alignItems=\"center\",i.style.gap=\"6px\",i.style.margin=\"4px\",i.style.cursor=\"pointer\",i.style.position=\"relative\";const o=document.createElement(\"button\");o.className=\"table_delete_button\",o.innerHTML=f.close_icon,o.style.cursor=\"pointer\",o.style.opacity=\"0\",o.style.transition=\"opacity 0.2s\",i.onmouseenter=()=>{o.style.opacity=\"1\"},i.onmouseleave=()=>{o.style.opacity=\"0\"},o.onclick=t=>{t.stopPropagation();const e=this.document.blocks.findIndex(t=>t.dataId===s);-1!==e&&(this.document.blocks.splice(e,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))};const l=document.createElement(\"span\");l.className=\"math_node\",l.dataset.latex=t,l.innerHTML=e,i.onclick=e=>{e.stopPropagation(),this.openMathModal(t,s)},i.appendChild(l),i.appendChild(o);let a=this.document.blocks.length;if(this.document.selectedBlockId){const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);-1!==t&&(a=t+1)}const r={dataId:s,type:\"math\",element:i},d={dataId:`data-id-${Date.now()+1}`,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(a,0,r,d),this.document.selectedBlockId=d.dataId,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document)}}class O{constructor(t){this.isSpeaking=!1,this.synth=window.speechSynthesis,this.onStateChange=t}getHindiVoice(){return this.synth.getVoices().find(t=>\"Google हिन्दी\"===t.name||\"hi-IN\"===t.lang)||null}speak(t){if(!t||\"\"===t.trim())return;this.synth.speaking&&this.synth.cancel();const e=new SpeechSynthesisUtterance(t),n=this.getHindiVoice();n&&(e.voice=n,e.lang=\"hi-IN\"),e.onstart=()=>{this.isSpeaking=!0,this.onStateChange(!0)},e.onend=()=>{this.isSpeaking=!1,this.onStateChange(!1)},e.onerror=()=>{this.isSpeaking=!1,this.onStateChange(!1)},this.synth.speak(e)}stop(){this.synth.speaking&&(this.synth.cancel(),this.isSpeaking=!1,this.onStateChange(!1))}toggle(t){this.isSpeaking?this.stop():this.speak(t)}}class N extends e{constructor(t,e){var i,o,l,d,g,b,y,T,L,N,H,M,P,D;super(),this.savedSelection=null,this.debounceTimer=null;const{mainEditorId:z,toolbarId:V,popupToolbarId:F}=C(t,e);this.editorContainer=document.getElementById(z)||null,this.toolbarContainer=document.getElementById(V)||null;const j=document.getElementById(F)||null;if(!this.editorContainer||!this.toolbarContainer||!j)throw new Error(\"Editor element not found or incorrect element type.\");this.document=new s,this.editorView=new c(this.editorContainer,this.document),this.toolbarView=new h(this.toolbarContainer),this.popupToolbarView=new I(j),this.linkPopupView=new E,this.hyperlinkHandler=new p(this.editorContainer,this.editorView,this.document),this.imageHandler=new v(this.editorContainer,this.document),this.undoRedoManager=new x(this.document,this.editorView),this.editorView.setImageHandler(this.imageHandler),this.imageHandler.setEditorView(this.editorView),this.document.setEditorView(this.editorView),this.document.setUndoRedoManager(this.undoRedoManager),this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager),this.linkPopupView.setCallbacks(t=>this.openLink(t),t=>this.unlinkText(t)),this.insertTableHandler=new _(this.editorView.container,this.document),this.insertLayoutHandler=new R(this.editorView.container,this.document),this.insertMathHandler=new B(this.editorView.container,this.document),this.textToSpeechHandler=new O(t=>{const e=document.getElementById(\"textToSpeech\");e&&(e.innerHTML=t?f.speaker_off:f.speaker_on,e.dataset.tooltip=t?\"stop Reading\":\"start Reading\")}),this.speechToTextHandler=new w(this.document,this.editorView,t=>{const e=document.getElementById(\"speechToText\");e&&(e.innerHTML=t?f.stop_microphone:f.start_microphone,e.dataset.tooltip=t?\"stop\":\"start\")},t=>{const[e,n]=this.getSelectionRange();n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId,this.document.currentOffset);let s=e;this.document.insertAt(t,Object.assign({},this.currentAttributes),s,this.document.selectedBlockId,0,\"\",\"batch\"),s+=t.length,this.setCursorPosition(s)});const U=document.getElementById(\"speechToText\");U&&(U.innerHTML=\"\",U.insertAdjacentHTML(\"afterbegin\",f.start_microphone),U.dataset.tooltip=\"start\");const q=document.getElementById(\"textToSpeech\");q&&(q.innerHTML=\"\",q.insertAdjacentHTML(\"afterbegin\",f.speaker_on),q.dataset.tooltip=\"start Reading\"),this.emojiPickerView=new A,this.codeEditorModal=new S,this.emojiPickerView.onSelect(t=>{var e,n,s,i;const o=null!==(n=null===(e=this.savedSelection)||void 0===e?void 0:e.start)&&void 0!==n?n:0,l=null!==(i=null===(s=this.savedSelection)||void 0===s?void 0:s.end)&&void 0!==i?i:o;l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset,!1),this.document.insertAt(t,Object.assign({},this.currentAttributes),o,this.document.selectedBlockId,0,\"\",\"batch\");const a=o+t.length;this.savedSelection={start:a,end:a},this.setCursorPosition(a)}),this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,undo:!1,redo:!1,hyperlink:!1},this.manualOverride=!1,this.lastPiece=null,this.toolbarView.on(\"toolbarAction\",(t,e=[])=>this.handleToolbarAction(t,e)),this.popupToolbarView.on(\"popupAction\",t=>this.handleToolbarAction(t)),this.document.on(\"documentChanged\",()=>{if(0===this.document.blocks.length||1===this.document.blocks.length&&this.document.blocks[0].pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)){const t=document.getElementById(\"loadHtmlButton\");t&&(t.selectedIndex=0)}this.editorView.render()}),this.document.on(\"documentChanged\",()=>{var t;const e=this.document.getHtmlContent();this.emit(\"contentChange\",{html:e,text:(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"})}),this.editorContainer.addEventListener(\"dblclick\",t=>{const e=t.target.closest(\".code_block_wrapper\");if(e){t.preventDefault();const n=e.getAttribute(\"data-id\");if(!n)return;const s=this.document.blocks.find(t=>t.dataId===n);s&&\"code\"===s.type&&this.codeEditorModal.open(s.code||\"\",s.language||\"text\",t=>{s.code=t,this.document.emit(\"documentChanged\",this.document)},()=>{var t;null===(t=this.editorContainer)||void 0===t||t.focus()})}}),this.editorContainer.addEventListener(\"keydown\",t=>{this.syncCurrentAttributesWithCursor(),this.handleKeydown(t)}),this.editorContainer.addEventListener(\"keyup\",()=>this.syncCurrentAttributesWithCursor()),this.editorContainer.addEventListener(\"blur\",()=>{this.hyperlinkHandler.hideHyperlinkViewButton()}),document.addEventListener(\"mouseup\",()=>{this.syncCurrentAttributesWithCursor();const t=this.document.getAllSelectedDataIds();console.log(t,\"dataId lntgerr\")}),document.addEventListener(\"selectionchange\",()=>{const t=window.getSelection();t&&!t.isCollapsed||(this.document.dataIds=[],this.document.selectAll=!1)}),null===(i=document.getElementById(\"fontColor\"))||void 0===i||i.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorWrapper\"),n=document.getElementById(\"fontColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(o=document.getElementById(\"fontColorPicker\"))||void 0===o||o.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),i=document.getElementById(\"fontColorIndicator\");i&&(i.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.applyFontColor(i,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyFontColor(n,s,e)},300))}),null===(l=document.getElementById(\"colorResetFont\"))||void 0===l||l.addEventListener(\"click\",()=>{const t=document.getElementById(\"fontColorPicker\"),e=document.getElementById(\"fontColorIndicator\");t&&(t.value=\"#000000\",e&&(e.style.backgroundColor=\"#000000\"),t.dispatchEvent(new Event(\"input\")))}),document.addEventListener(\"click\",t=>{var e;const n=t.target,s=document.getElementById(\"colorWrapper\"),i=document.getElementById(\"colorBgWrapper\"),o=document.getElementById(\"fontColor\"),l=document.getElementById(\"bgColor\");!s||n.closest(\"#colorWrapper\")||n===o||(null==o?void 0:o.contains(n))||(s.style.display=\"none\"),!i||n.closest(\"#colorBgWrapper\")||n===l||(null==l?void 0:l.contains(n))||(i.style.display=\"none\"),(null===(e=this.editorContainer)||void 0===e?void 0:e.contains(n))||n.closest(\".hyperlink-popup\")||this.hyperlinkHandler.hideHyperlinkViewButton()}),null===(d=document.getElementById(\"bgColor\"))||void 0===d||d.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorBgWrapper\"),n=document.getElementById(\"bgColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(g=document.getElementById(\"bgColorPicker\"))||void 0===g||g.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),i=document.getElementById(\"bgColorIndicator\");i&&(i.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.applyBgColor(i,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyBgColor(n,s,e)},300))}),null===(b=document.getElementById(\"colorResetBG\"))||void 0===b||b.addEventListener(\"click\",()=>{const t=document.getElementById(\"bgColorPicker\"),e=document.getElementById(\"bgColorIndicator\");t&&(t.value=\"#ffffff\",e&&(e.style.backgroundColor=\"#ffffff\"),t.dispatchEvent(new Event(\"input\")))}),null===(y=document.getElementById(\"getHtmlButton\"))||void 0===y||y.addEventListener(\"click\",t=>{const e=this.document.getHtmlContent(!0);console.log(\"Editor HTML Content:\",e),this.htmlToJsonParser=new k(e);const n=this.htmlToJsonParser.parse();console.log(\"htmltoJson\",JSON.stringify(n,null,2),n),this.showAcknowledgement(\"HTML copied to clipboard\",2e3)}),null===(T=document.getElementById(\"loadHtmlButton\"))||void 0===T||T.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target,n=e.options[e.selectedIndex].dataset.html||u.TEST_HTML_CODE;this.htmlToJsonParser=new k(n),console.log(this.htmlToJsonParser,\"this.htmlToJsonParser\");const s=this.htmlToJsonParser.parse();this.document.blocks=s,s.length>0&&(this.document.dataIds[0]=s[0].dataId,this.document.selectedBlockId=s[0].dataId),this.document.emit(\"documentChanged\",this);const[i]=this.getSelectionRange();this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let n=i-e;t.fontSize&&this.document.setFontSize(n,e,t.fontSize)}}),console.log(\"blocks\",this.document.blocks,this.document.dataIds,this.document.currentOffset),console.log(\"htmltoJson\",JSON.stringify(s,null,2),s)}),null===(L=document.getElementById(\"fontFamily\"))||void 0===L||L.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.setFontFamily(i,s,e)}}):this.document.setFontFamily(n,s,e)}),null===(N=document.getElementById(\"fontSize\"))||void 0===N||N.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.setFontSize(i,s,e)}}):this.document.setFontSize(n,s,e)}),null===(H=document.getElementById(\"heading\"))||void 0===H||H.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value||null;if(this.document.dataIds.length>1)this.document.toggleHeadingForMultipleBlocks(this.document.dataIds,e);else{const t=this.document.selectedBlockId||this.document.dataIds[0];t&&this.document.toggleHeading(t,e)}}),null===(M=document.getElementById(\"alignLeft\"))||void 0===M||M.addEventListener(\"click\",()=>{console.log(\"alignment alignLeft\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"left\",t))}),null===(P=document.getElementById(\"alignCenter\"))||void 0===P||P.addEventListener(\"click\",()=>{console.log(\"alignment alignCenter\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"center\",t))}),null===(D=document.getElementById(\"alignRight\"))||void 0===D||D.addEventListener(\"click\",()=>{console.log(\"alignment alignRight\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"right\",t))}),this.editorContainer.addEventListener(\"keydown\",t=>{if((t.ctrlKey||t.metaKey)&&!t.altKey){const e=t.key.toLowerCase();if([\"b\",\"i\",\"u\",\"h\"].includes(e)){t.preventDefault();let n=\"b\";switch(e){case\"b\":n=\"bold\";break;case\"i\":n=\"italic\";break;case\"u\":n=\"underline\";break;case\"h\":n=\"hyperlink\"}this.handleToolbarAction(n)}if(\"z\"===e?(t.preventDefault(),this.undoRedoManager.undo()):\"y\"===e&&(t.preventDefault(),this.undoRedoManager.redo()),\"a\"===e){const t=this.document.handleCtrlASelection();this.document.selectAll=!0,console.log(\"Selected text is inside element with data-id:\",t)}\"l\"===t.key?(t.preventDefault(),this.document.setAlignment(\"left\",this.document.selectedBlockId)):\"e\"===t.key?(t.preventDefault(),this.document.setAlignment(\"center\",this.document.selectedBlockId)):\"r\"===t.key&&(t.preventDefault(),this.document.setAlignment(\"right\",this.document.selectedBlockId))}}),document.addEventListener(\"selectionchange\",this.handleSelectionChange.bind(this)),this.editorContainer.addEventListener(\"click\",t=>{const e=t.target;if(\"A\"===e.tagName||e.closest(\"a\")){t.preventDefault(),t.stopPropagation();const n=\"A\"===e.tagName?e:e.closest(\"a\");this.showLinkPopup(n,t.clientX,t.clientY)}else this.hideLinkPopup()}),document.addEventListener(\"click\",t=>{this.linkPopupView.isPopup(t.target)||this.hideLinkPopup()}),this.document.emit(\"documentChanged\",this.document),this.editorContainer.addEventListener(\"paste\",t=>{var e,s;this.undoRedoManager.saveUndoSnapshot(),t.preventDefault();const i=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"text/html\"),[o,l]=this.getSelectionRange();l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset);let d=[];if(i)d=m(i);else{const e=function(t){const e=[];let n,s=0;for(;null!==(n=a.exec(t));){const i=n.index;let o=n[0],l=\"\";const a=o.match(/[.,!?;:)\\]\\}\"']+$/);if(a&&(l=a[0],o=o.slice(0,-l.length)),r(t,i))continue;i>s&&e.push({text:t.substring(s,i),isUrl:!1});let d=o;d.startsWith(\"http\")||(d=\"https://\"+d),e.push({text:o,isUrl:!0,url:d}),l&&e.push({text:l,isUrl:!1}),s=i+n[0].length}return st.isUrl&&t.url?new n(t.text,Object.assign(Object.assign({},this.currentAttributes),{hyperlink:t.url})):new n(t.text,Object.assign({},this.currentAttributes)))}let c=o;for(const t of d)this.document.insertAt(t.text,Object.assign({},t.attributes),c,this.document.selectedBlockId,0,\"\",\"batch\"),c+=t.text.length;this.setCursorPosition(c)}),this.editorContainer.addEventListener(\"dragover\",t=>{t.preventDefault()}),this.editorContainer.addEventListener(\"drop\",t=>{var e,s;t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const i=null===(e=t.dataTransfer)||void 0===e?void 0:e.getData(\"text/html\"),[o,l]=this.getSelectionRange();l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset);let a=[];if(i)a=m(i);else{const e=(null===(s=t.dataTransfer)||void 0===s?void 0:s.getData(\"text/plain\"))||\"\";a=[new n(e,Object.assign({},this.currentAttributes))]}let r=o;for(const t of a)this.document.insertAt(t.text,Object.assign({},t.attributes),r,this.document.selectedBlockId,0,\"\",\"batch\"),r+=t.text.length;this.setCursorPosition(r)})}getSelectionRange(){const t=i(this.editorView.container);return t?[t.start,t.end]:[0,0]}applyFontColor(t){const e=window.getSelection();if(!e||0===e.rangeCount)return;e.getRangeAt(0).toString()}handleToolbarAction(t,e=[]){const[n,s]=this.getSelectionRange();switch(t){case\"orderedList\":if(this.document.dataIds.length>1)this.document.toggleOrderedListForMultipleBlocks(this.document.dataIds);else{const t=this.document.selectedBlockId||this.document.dataIds[0];this.document.toggleOrderedList(t)}this.document.updateOrderedListNumbers();break;case\"unorderedList\":this.document.dataIds.forEach(t=>{this.document.toggleUnorderedList(t)});break;case\"image\":this.imageHandler.insertImage();break;case\"speechToText\":this.speechToTextHandler.toggleRecording();break;case\"insert_table\":this.insertTableHandler.openTableModal();break;case\"insert_layout\":this.insertLayoutHandler.openLayoutModal();break;case\"insert_math\":this.insertMathHandler.openMathModal();break;case\"emoji\":this.savedSelection=i(this.editorView.container);const e=document.querySelector('[data-action=\"emoji\"]');e.addEventListener(\"mousedown\",t=>{t.preventDefault()}),e&&this.emojiPickerView.open(e);break;case\"textToSpeech\":const o=this.getTextForSpeech();if(!o)return void console.warn(\"Nothing to read\");this.textToSpeechHandler.toggle(o);break;default:if(n1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleBoldRange(s,e)}}):this.document.toggleBoldRange(n,s);break;case\"italic\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleItalicRange(s,e)}}):this.document.toggleItalicRange(n,s);break;case\"underline\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleUnderlineRange(s,e)}}):this.document.toggleUnderlineRange(n,s);break;case\"strikethrough\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleStrikethroughRange(s,e)}}):this.document.toggleStrikethroughRange(n,s);break;case\"subscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSubscriptRange(s,e)}}):this.document.toggleSubscriptRange(n,s);break;case\"superscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSuperscriptRange(s,e)}}):this.document.toggleSuperscriptRange(n,s);break;case\"hyperlink\":this.hyperlinkHandler.hanldeHyperlinkClick(n,s,this.document.currentOffset,this.document.selectedBlockId,this.document.blocks)}else this.currentAttributes[t]=!this.currentAttributes[t],this.manualOverride=!0}this.toolbarView.updateActiveStates(this.currentAttributes)}handleSelectionChange(){var t,e,n;const s=window.getSelection();if(!s||0===s.rangeCount||!(null===(t=this.editorContainer)||void 0===t?void 0:t.contains(s.anchorNode)))return this.hyperlinkHandler.hideHyperlinkViewButton(),void this.popupToolbarView.hide();const i=(null===(e=s.anchorNode)||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE?s.anchorNode.parentElement:s.anchorNode;if(null==i?void 0:i.closest(\".tblCell\"))return void this.popupToolbarView.hide();const o=document.getElementById(\"textToSpeech\");s&&!s.isCollapsed&&s.toString().trim()?null==o||o.classList.remove(\"hidden\"):null==o||o.classList.add(\"hidden\");const[l]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=l,s.isCollapsed?(this.document.dataIds=[],this.document.selectAll=!1,this.popupToolbarView.hide()):(this.document.getAllSelectedDataIds(),this.document.dataIds.length===this.document.blocks.length&&this.document.blocks.length>0&&(this.document.selectAll=!0),this.popupToolbarView.show(s)),!s||0===s.rangeCount)return;s&&!0===s.isCollapsed&&(this.document.dataIds=[],this.document.selectAll=!1);const a=s.getRangeAt(0),r=(null===(n=a.startContainer.parentElement)||void 0===n?void 0:n.closest(\"[data-id]\"))||a.startContainer;if(r instanceof HTMLElement){const t=r.getAttribute(\"data-id\")||(a.startContainer instanceof HTMLElement?a.startContainer.getAttribute(\"data-id\"):null);if(t){const e=this.document.blocks.find(e=>e.dataId===t);e&&\"table\"!==e.type&&(this.document.selectedBlockId=t)}}this.syncCurrentAttributesWithCursor()}handleKeydown(t){var e,s;const[i,o]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=i,(\"Enter\"===t.key||\" \"===t.key)&&this.document.selectedBlockId){const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1!==e){const s=this.document.blocks[e];if(\"text\"===s.type&&Array.isArray(s.pieces)){const i=s.pieces.map(t=>t.text).join(\"\").replace(/\\u200B/g,\"\").trim().match(/^```([a-zA-Z0-9_\\-\\+]*)$/);if(i){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot(),s.type=\"code\",s.language=i[1]||\"text\",s.code=\"\",s.pieces=[],s.class=\"code_block_wrapper\";const o=`data-id-${Date.now()}`;return this.document.blocks.splice(e+1,0,{dataId:o,class:\"paragraph-block\",pieces:[new n(\"​\",{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1})],type:\"text\"}),this.document.selectedBlockId=o,this.document.emit(\"documentChanged\",this.document),void setTimeout(()=>{this.setCursorPosition(this.document.currentOffset+1,o)},0)}}}}if(\"Enter\"===t.key){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const s=`data-id-${Date.now()}`,l=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId),a=this.document.blocks[l],r=(null===(e=null==a?void 0:a.pieces)||void 0===e?void 0:e.length)>0?a.pieces[a.pieces.length-1]:null,d=r?Object.assign({},r.attributes):{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1};if(a&&\"image\"===a.type)this.document.blocks.splice(l+1,0,{dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",d)],type:\"text\"}),this.document.emit(\"documentChanged\",this),this.imageHandler.setCursorPostion(1,s);else if(!a||\"ol\"!==a.listType&&\"ul\"!==a.listType&&\"li\"!==a.listType){const t=this.getCurrentCursorBlock(),e=null==t?void 0:t.toString();if(e&&a&&\"text\"===a.type){const t=i-this.document.currentOffset,o=[],l=[];let r=0;for(const e of a.pieces){const s=r+e.text.length;if(s<=t)o.push(e.clone());else if(r>=t)l.push(e.clone());else{const s=t-r,i=e.text.slice(0,s),a=e.text.slice(s);i&&o.push(new n(i,Object.assign({},e.attributes))),a&&l.push(new n(a,Object.assign({},e.attributes)))}r=s}a.pieces=o.length>0?o:[new n(\"​\",d)];const c=l.length>0?l:[new n(\"​\",d)],h=this.addBlockAfter(this.document.blocks,e,{dataId:s,class:\"paragraph-block\",pieces:c,type:\"text\"});this.document.blocks=h}else this.document.blocks.push({dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",d)],type:\"text\"})}else{let t=[new n(\"​\",d)];const e=i-this.document.currentOffset;if(\"text\"===a.type&&a.pieces){const s=[],i=[];let o=0;for(const t of a.pieces){const l=o+t.text.length;if(l<=e)s.push(t.clone());else if(o>=e)i.push(t.clone());else{const l=e-o,a=t.text.slice(0,l),r=t.text.slice(l);a&&s.push(new n(a,Object.assign({},t.attributes))),r&&i.push(new n(r,Object.assign({},t.attributes)))}o=l}a.pieces=s.length>0?s:[new n(\"​\",d)],t=i.length>0?i:[new n(\"​\",d)]}let o={dataId:s,class:\"paragraph-block\",pieces:t,type:\"text\"},r=\"\";if(\"ol\"===a.listType?(o.listType=\"li\",o.listStart=a.listStart+1,o.parentId=a.dataId,r=a.dataId):\"li\"===a.listType?(o.listType=\"li\",o.listStart=a.listStart+1,o.parentId=a.parentId,r=a.parentId):\"ul\"===a.listType&&(o.listType=\"ul\",o.parentId=a.parentId||a.dataId),this.document.blocks.splice(l+1,0,o),\"ol\"===a.listType||\"li\"===a.listType)for(let t=l+2;tt.dataId===this.imageHandler.highLightedImageDataId);return this.imageHandler.deleteImage(),void this.imageHandler.setCursorPostion(1,this.document.blocks[t-1].dataId)}const e=window.getSelection();console.log(e,\"selection lntgerr\");if((this.document.selectAll||this.document.dataIds.length===this.document.blocks.length&&this.document.dataIds.length>0||this.document.dataIds.length>1)&&!(null===(s=window.getSelection())||void 0===s?void 0:s.isCollapsed)){this.undoRedoManager.saveUndoSnapshot();const t=this.document.dataIds[0],e=this.document.blocks.findIndex(e=>e.dataId===t);this.document.deleteBlocks();let s=null,i=0;if(0===this.document.blocks.length){const t=`data-id-${Date.now()}`;this.document.blocks.push({dataId:t,class:\"paragraph-block\",pieces:[new n(\" \")],type:\"text\"}),s=t,i=0,this.editorView.render()}else if(et+e.text.length,0)}return void this.setCursorPosition(i,s)}if(o>i){this.undoRedoManager.saveUndoSnapshot();const t=Math.min(this.document.currentOffset,i);this.document.deleteRange(i,o,this.document.selectedBlockId,t,!0),this.setCursorPosition(i-1);const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);console.log(e,\"index lntgerr\");if(null===document.querySelector(`[data-id=\"${this.document.selectedBlockId}\"]`)){let t=0;console.log(t,\" listStart lntgerr\");const e=this.document.blocks.map((e,n)=>(void 0===(null==e?void 0:e.listType)&&null===(null==e?void 0:e.listType)||(\"ol\"===(null==e?void 0:e.listType)?(t=1,e.listStart=1):\"li\"===(null==e?void 0:e.listType)&&(t+=1,e.listStart=t)),e));console.log(e,\"blocks lntgerr\"),this.document.emit(\"documentChanged\",this)}}else if(i===o&&i>0){const t=this.editorView.container.textContent||\"\";let e=i-1;if(i>=2){const n=t.charCodeAt(i-1),s=t.charCodeAt(i-2);n>=56320&&n<=57343&&s>=55296&&s<=56319&&(e=i-2)}this.document.deleteRange(e,i,this.document.selectedBlockId,this.document.currentOffset,!0),this.setCursorPosition(e)}}else if(1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey){if(\"Delete\"===t.key){if(t.preventDefault(),i===o){if(this.undoRedoManager.saveUndoSnapshot(),o>i){const t=Math.min(this.document.currentOffset,i);this.document.deleteRange(i,o,this.document.selectedBlockId,t),this.setCursorPosition(i)}else if(o>i)return this.undoRedoManager.saveUndoSnapshot(),void this.document.deleteRange(i,o,this.document.selectedBlockId);const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1===t)return;const e=this.document.blocks[t].pieces.reduce((t,e)=>t+e.text.length,0);i-this.document.currentOffseti&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(i,o,this.document.selectedBlockId),this.setCursorPosition(i))}this.hyperlinkHandler.hideHyperlinkViewButton()}}else t.preventDefault(),o>i&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(i,o,this.document.selectedBlockId,this.document.currentOffset,!1)),console.log(\"insertat\",t.key,this.currentAttributes,i,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.document.insertAt(t.key,this.currentAttributes,i,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.setCursorPosition(i+1)}extractTextFromDataId(t){const e=window.getSelection();if(console.log(\"selection::\",e),!e||0===e.rangeCount)return{remainingText:\"\",piece:null};const n=e.getRangeAt(0).startContainer;let s=\"\";console.log(0,\"count lntgerr\");const i=this.document.blocks.filter(e=>{if(e.dataId===t)return e}),o=document.querySelector(`[data-id=\"${t}\"]`),l=this.document.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let a=[],r=0;if(i[0].pieces.forEach((t,e)=>{s+=t.text,(null==l?void 0:l.innerText)===t.text&&(r=e,a.push(t))}),i[0].pieces.length>1&&i[0].pieces.forEach((t,e)=>{rt.dataId===e);if(-1===s)return console.error(`Block with dataId \"${e}\" not found.`),t;return[...t.slice(0,s+1),n,...t.slice(s+1)]}syncCurrentAttributesWithCursor(){var t,e;const n=window.getSelection();if(n&&n.rangeCount>0){const e=(null===(t=n.anchorNode)||void 0===t?void 0:t.nodeType)===Node.TEXT_NODE?n.anchorNode.parentElement:n.anchorNode;if(null==e?void 0:e.closest(\".tblCell\"))return}const[s,i]=this.getSelectionRange();console.log(\"log1\",{start:s,end:i});const o=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(\"image\"===(null===(e=this.document.blocks[o])||void 0===e?void 0:e.type)?this.imageHandler.addStyleToImage(this.document.selectedBlockId||\"\"):this.imageHandler.isImageHighlighted&&this.imageHandler.clearImageStyling(),s===i){const t=this.document.findPieceAtOffset(s,this.document.selectedBlockId);t?(t!==this.lastPiece&&(this.manualOverride=!1,this.lastPiece=t),this.manualOverride||(this.currentAttributes={bold:t.attributes.bold,italic:t.attributes.italic,underline:t.attributes.underline,strikethrough:t.attributes.strikethrough||!1,subscript:t.attributes.subscript||!1,superscript:t.attributes.superscript||!1,hyperlink:t.attributes.hyperlink||!1,fontFamily:t.attributes.fontFamily,fontSize:t.attributes.fontSize,fontColor:t.attributes.fontColor,bgColor:t.attributes.bgColor},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.hyperlinkHandler.hideHyperlinkViewButton()):(this.hyperlinkHandler.hideHyperlinkViewButton(),this.manualOverride||(this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.lastPiece=null)}else{this.hyperlinkHandler.hideHyperlinkViewButton();const t=this.document.isRangeEntirelyAttribute(s,i,\"bold\"),e=this.document.isRangeEntirelyAttribute(s,i,\"italic\"),n=this.document.isRangeEntirelyAttribute(s,i,\"underline\"),o=this.document.isRangeEntirelyAttribute(s,i,\"strikethrough\"),l=this.document.isRangeEntirelyAttribute(s,i,\"subscript\"),a=this.document.isRangeEntirelyAttribute(s,i,\"superscript\");this.currentAttributes={bold:t,italic:e,underline:n,strikethrough:o,subscript:l,superscript:a,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)}const l=document.getElementById(\"heading\");if(l)if(this.document.selectedBlockId){const t=this.document.blocks.find(t=>t.dataId===this.document.selectedBlockId);t&&t.heading?l.value=t.heading:l.value=\"\"}else l.value=\"\"}setCursorPosition(t,e=\"\"){if(\"\"===e)this.editorView.container.focus();else{const t=document.querySelector('[data-id=\"'+e+'\"]');t&&t.focus()}const n=window.getSelection();if(!n)return;const s=document.createRange();let i=0;const o=[this.editorView.container];let l;for(;l=o.pop();)if(3===l.nodeType){const e=l,n=i+e.length;if(t>=i&&t<=n){s.setStart(e,t-i),s.collapse(!0);break}i=n}else if(\"BR\"===l.tagName){if(t===i){s.setStartBefore(l),s.collapse(!0);break}i++}else{const t=l;let e=t.childNodes.length;for(;e--;)o.push(t.childNodes[e])}n.removeAllRanges(),n.addRange(s)}showAcknowledgement(t,e=2e3){const n=document.getElementById(u.TOAST_ID);n&&n.remove();const s=document.createElement(\"div\");s.id=u.TOAST_ID,s.className=\"ti-toast\",s.textContent=t||u.TOAST_DEFAULT_MESSAGE,document.body.appendChild(s),s.offsetHeight,s.classList.add(u.TOAST_SHOW_CLASS),setTimeout(()=>{s.classList.remove(u.TOAST_SHOW_CLASS),setTimeout(()=>s.remove(),200)},e||u.TOAST_DEFAULT_DURATION_MS)}showLinkPopup(t,e,n){this.linkPopupView.show(t,e,n)}hideLinkPopup(){this.linkPopupView.hide()}openLink(t){window.open(t,\"_blank\"),this.hideLinkPopup()}unlinkText(t){this.undoRedoManager.saveUndoSnapshot();const e=t.textContent||\"\",n=(this.editorView.container.textContent||\"\").indexOf(e);-1!==n&&(this.document.formatAttribute(n,n+e.length,\"hyperlink\",!1),this.editorView.render()),this.hideLinkPopup()}getTextForSpeech(){var t,e;const n=window.getSelection();if(n&&!n.isCollapsed){const t=n.toString().trim();if(t)return t}return(null===(e=null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||void 0===e?void 0:e.trim())||\"\"}onContentChange(t){this.on(\"contentChange\",t)}getContent(){return this.document.getHtmlContent()||\"\"}getTextContent(){var t;return(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"}}window.TextIgniter=N,t.TextIgniter=N});\n","export * from './component/TextIgniterComponent'","import { TextIgniter } from '@mindfiredigital/textigniter';\r\n// import '@mindfiredigital/textigniter/dist/styles/text-igniter.css';\r\n\r\nexport class TextIgniterComponent extends HTMLElement {\r\n private textIgniter!: TextIgniter;\r\n private initialized = false;\r\n private config = {};\r\n private template = `
`;\r\n\r\n constructor() {\r\n super();\r\n if (!this.firstElementChild) {\r\n this.innerHTML = this.template;\r\n }\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['config'];\r\n }\r\n\r\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\r\n if (name === 'config' && newValue !== oldValue) {\r\n try {\r\n console.log(newValue);\r\n const parsedConfig = JSON.parse(newValue);\r\n this.config = parsedConfig;\r\n this.initializeEditor(); // Reinitialize Core when config changes\r\n } catch (e) {\r\n console.error('Failed to parse config: ', e);\r\n }\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n this.initializeEditor();\r\n }\r\n\r\n private initializeEditor() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n\r\n const editorContainer = this.querySelector('#editor-container')?.id;\r\n if (!editorContainer) {\r\n console.error('Editor element not found inside the DOM.');\r\n return;\r\n }\r\n\r\n try {\r\n this.initialized = true;\r\n this.textIgniter = new TextIgniter(\r\n editorContainer as any,\r\n this.config as any\r\n );\r\n\r\n // Subscribe to content changes and dispatch custom event\r\n this.textIgniter.onContentChange(data => {\r\n const event = new CustomEvent('content-change', {\r\n detail: data,\r\n bubbles: true,\r\n composed: true,\r\n });\r\n this.dispatchEvent(event);\r\n });\r\n } catch (error) {\r\n console.error('Failed to initialize TextIgniter:', error);\r\n this.initialized = false;\r\n }\r\n }\r\n}\r\n\r\nif (!customElements.get('text-igniter')) {\r\n customElements.define('text-igniter', TextIgniterComponent);\r\n}\r\n"],"mappings":"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","names":["exports","module","t","e","n","s","i","o","l","a","r","d","c","h","u","p","m","g","C","k","v","x","I","E","w","_","f","b","y","T","L","N"]} \ No newline at end of file +{"version":3,"sources":["../../core/dist/index.js","../src/index.ts","../src/component/TextIgniterComponent.ts","#style-inject:#style-inject","../../core/dist/styles/text-igniter.css"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).TextIgniter={})}(this,function(t){\"use strict\";class e{constructor(){this.events={}}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}emit(t,e){this.events[t]&&this.events[t].forEach(t=>t(e))}}class n{constructor(t,e={}){this.text=t;const n=document.getElementById(\"fontFamily\"),s=document.getElementById(\"fontSize\");let o=\"Arial\",i=\"16px\",l=document.getElementById(\"fontColorPicker\"),a=document.getElementById(\"bgColorPicker\");n&&(o=n.value),s&&(i=s.value);const d=e.fontColor||(l?l.value:\"#000000\"),r=e.bgColor||(a?a.value:\"#ffffff\");this.attributes={bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,subscript:e.subscript||!1,superscript:e.superscript||!1,undo:e.undo||!1,redo:e.redo||!1,fontFamily:e.fontFamily||o,fontSize:e.fontSize||i,hyperlink:e.hyperlink||!1,fontColor:d,bgColor:r}}isBold(){return this.attributes.bold}setBold(t){this.attributes.bold=t}isItalic(){return this.attributes.italic}isUndo(){return this.attributes.undo}isRedo(){return this.attributes.redo}setItalic(t){this.attributes.italic=t}isUnderline(){return this.attributes.underline}setUnderline(t){this.attributes.underline=t}isStrikethrough(){return this.attributes.strikethrough||!1}setStrikethrough(t){this.attributes.strikethrough=t}setUndo(t){this.attributes.undo=t}setRedo(t){this.attributes.redo=t}clone(){return new n(this.text,Object.assign({},this.attributes))}hasSameAttributes(t){return this.attributes.bold===t.attributes.bold&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&(this.attributes.strikethrough||!1)===(t.attributes.strikethrough||!1)&&(this.attributes.subscript||!1)===(t.attributes.subscript||!1)&&(this.attributes.superscript||!1)===(t.attributes.superscript||!1)&&this.attributes.undo===t.attributes.undo&&this.attributes.redo===t.attributes.redo&&this.attributes.fontFamily===t.attributes.fontFamily&&this.attributes.fontSize===t.attributes.fontSize&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&this.attributes.hyperlink===t.attributes.hyperlink&&this.attributes.fontColor===t.attributes.fontColor&&this.attributes.bgColor===t.attributes.bgColor}getHyperlink(){return this.attributes.hyperlink||!1}setHyperlink(t){this.attributes.hyperlink=t}}class s extends e{get selectedBlockId(){return this._selectedBlockId}set selectedBlockId(t){if(this._selectedBlockId!==t){this._selectedBlockId=t;const e=document.querySelector('[id=\"editor\"]'),n=document.querySelector('[data-id=\"'+t+'\"]');if(e&&n){const t=this.getCursorOffset(e),s=this.getCursorOffset(n);this.currentOffset=t-s}else this.currentOffset=0}}constructor(){super(),this.dataIds=[],this.selectAll=!1,this._selectedBlockId=null,this.pieces=[new n(\"\")],this.blocks=[{type:\"text\",dataId:\"data-id-1734604240404\",class:\"paragraph-block\",alignment:\"left\",pieces:[new n(\"​\")]}],this.selectedBlockId=\"data-id-1734604240404\",this.currentOffset=0}setEditorView(t){this.editorView=t}getPlainText(){return this.pieces.map(t=>t.text).join(\"\")}setUndoRedoManager(t){this.undoRedoManager=t}insertAt(t,e,s,o=\"\",i=0,l=\"\",a=\"\",d=!1){d||\"batch\"===a||this.undoRedoManager.saveUndoSnapshot(),console.log(\"inserted,\",{start:s,text:t}),console.log(\"inserted,\",this.blocks);let r=0,c=[],h=!1,u=0;if(\"\"===o||null===o)return;if(u=this.blocks.findIndex(t=>t.dataId===o),-1===u||!this.blocks[u].pieces)return;r=this.currentOffset;for(let o of this.blocks[u].pieces){const i=r+o.text.length;if(!h&&s<=i){const i=s-r;i>0&&c.push(new n(o.text.slice(0,i),Object.assign({},o.attributes))),c.push(new n(t,{bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,hyperlink:e.hyperlink||!1})),it.dataId===s),-1===d||!this.blocks[d].pieces)return;a=o;let c=-1;if(i&&t===a&&d>0&&e===t&&(c=d-1>=0&&\"image\"===this.blocks[d-1].type?d-2:d-1,c>=0&&this.blocks[c]))for(let t of this.blocks[c].pieces)l.push(t.clone()),r=!0;for(let s of this.blocks[d].pieces){const o=a+s.text.length,i=a;if(o<=t||i>=e)l.push(s.clone());else{const a=s.text;if(t>i){const e=a.slice(0,t-i);e.length>0&&l.push(new n(e,Object.assign({},s.attributes)))}if(e0&&l.push(new n(t,Object.assign({},s.attributes)))}}a=o}let h=this.mergePieces(l),u=!1;r&&c>=0?(!this.blocks[d]||\"ol\"!==this.blocks[d].listType&&\"li\"!==this.blocks[d].listType||(u=!0),this.blocks[c].pieces=h,this.blocks.splice(d,1)):0===h.length?this.blocks.length>1?(!this.blocks[d]||\"ol\"!==this.blocks[d].listType&&\"li\"!==this.blocks[d].listType||(u=!0),this.blocks.splice(d,1)):(h=[new n(\" \")],this.blocks[d].pieces=h):this.blocks[d].pieces=h,u&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}deleteBlocks(){const t=this.blocks.some(t=>this.dataIds.includes(t.dataId)&&(\"ol\"===t.listType||\"li\"===t.listType));this.blocks=this.blocks.filter(t=>{if(!this.dataIds.includes(t.dataId))return t}),this.dataIds=[],this.selectAll=!1,0===this.blocks.length&&this.blocks.push({dataId:`data-id-${Date.now()}`,class:\"paragraph-block\",type:\"text\",pieces:[new n(\"​\")]}),t&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getSelectedTextDataId(){const t=window.getSelection();if(!t||0===t.rangeCount)return null;const e=t.getRangeAt(0).startContainer,n=(e.nodeType===Node.TEXT_NODE?e.parentElement:e).closest(\"[data-id]\");return(null==n?void 0:n.getAttribute(\"data-id\"))||null}getAllSelectedDataIds(){var t;const e=window.getSelection();if(!e||0===e.rangeCount)return[];const n=e.getRangeAt(0),s=[],o=document.createNodeIterator(n.commonAncestorContainer,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let i;for(;i=o.nextNode();)if(n.intersectsNode(i)){const e=i.nodeType===Node.TEXT_NODE?i.parentElement:i,n=null===(t=null==e?void 0:e.closest(\"[data-id]\"))||void 0===t?void 0:t.getAttribute(\"data-id\");n&&!s.includes(n)&&s.push(n)}return this.removeExclusiveEndBlock(n,s),this.dataIds=s,console.log(\"selected id 3\",this.dataIds,s),s}handleCtrlASelection(){const t=[],e=document.getElementById(\"editor\");if(e){e.querySelectorAll(\"[data-id]\").forEach(e=>{const n=e.getAttribute(\"data-id\");n&&!t.includes(n)&&t.push(n)})}return this.dataIds=t,console.log(\"selected id 2\",this.dataIds,t),t}getSelectedDataIds(){const t=window.getSelection();if(!t||0===t.rangeCount)return[];const e=t.getRangeAt(0),n=[],s=e.startContainer,o=e.endContainer,i=this.getDataIdFromNode(s),l=this.getDataIdFromNode(o);return i&&!n.includes(i)&&n.push(i),l&&!n.includes(l)&&n.push(l),this.removeExclusiveEndBlock(e,n),this.dataIds=n,console.log(\"selected id 1\",this.dataIds,n),n}getDataIdFromNode(t){var e;const n=t.nodeType===Node.TEXT_NODE?t.parentElement:t;return(null===(e=null==n?void 0:n.closest(\"[data-id]\"))||void 0===e?void 0:e.getAttribute(\"data-id\"))||null}getCursorOffset(t){const e=window.getSelection();if(!e||0===e.rangeCount||!t)return-1;const n=e.getRangeAt(0);let s=0;const o=t=>{if(t===n.startContainer)return s+=n.startOffset,!0;t.nodeType===Node.TEXT_NODE&&(s+=(t.textContent||\"\").length);for(const e of Array.from(t.childNodes))if(o(e))return!0;return!1};return o(t),s}formatAttribute(t,e,s,o){console.log(\"formatAttribute\",t,e,s,o);let i=[],l=0,a=-1;if(\"\"===this.selectedBlockId||null===this.selectedBlockId)return;if(a=this.blocks.findIndex(t=>t.dataId===this.selectedBlockId),-1===a||!this.blocks[a].pieces)return;l=this.currentOffset;for(let d of this.blocks[a].pieces){const a=l+d.text.length;if(a<=t||l>=e)i.push(d.clone());else{const a=l,r=d.text,c=Math.max(t-a,0),h=Math.min(e-a,r.length);c>0&&i.push(new n(r.slice(0,c),Object.assign({},d.attributes)));const u=new n(r.slice(c,h),Object.assign({},d.attributes));(\"bold\"!==s&&\"italic\"!==s&&\"underline\"!==s&&\"strikethrough\"!==s&&\"subscript\"!==s&&\"superscript\"!=s&&\"undo\"!==s&&\"redo\"!==s&&\"hyperlink\"!==s||\"boolean\"!=typeof o)&&(\"fontFamily\"!==s&&\"fontSize\"!==s&&\"hyperlink\"!==s&&\"fontColor\"!==s&&\"bgColor\"!==s||\"string\"!=typeof o)||(u.attributes[s]=o),i.push(u),he.dataId===t);if(-1===n)return;const s=this.blocks[n];\"ol\"===s.listType||\"li\"===s.listType?(s.listType=null,s.listStart=void 0,s.parentId=void 0):(s.listType=\"ol\",s.listStart=1,s.parentId=s.dataId),this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getHeadingFontSize(t){switch(t){case\"h1\":return\"32px\";case\"h2\":return\"24px\";case\"h3\":return\"18px\";case\"h4\":default:return\"16px\";case\"h5\":return\"13px\";case\"h6\":return\"11px\"}}toggleHeading(t,e){var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1===s)return;const o=this.blocks[s];o.heading=e;const i=this.getHeadingFontSize(e);if(Array.isArray(o.pieces)){o.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?o.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=o.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:i})}]:o.pieces.forEach(t=>{t.attributes.fontSize=i})}this.emit(\"documentChanged\",this)}toggleHeadingForMultipleBlocks(t,e){t.forEach(t=>{var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1!==s){const t=this.blocks[s];t.heading=e;const o=this.getHeadingFontSize(e);if(Array.isArray(t.pieces)){t.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?t.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=t.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:o})}]:t.pieces.forEach(t=>{t.attributes.fontSize=o})}}}),this.emit(\"documentChanged\",this)}toggleOrderedListForMultipleBlocks(t){if(0===t.length)return;const e=t.sort((t,e)=>this.blocks.findIndex(e=>e.dataId===t)-this.blocks.findIndex(t=>t.dataId===e));if(e.every(t=>{const e=this.blocks.find(e=>e.dataId===t);return e&&(\"ol\"===e.listType||\"li\"===e.listType)}))e.forEach(t=>{const e=this.blocks.find(e=>e.dataId===t);e&&(e.listType=null,e.listStart=void 0,e.parentId=void 0)});else{const t=e[0];e.forEach((e,n)=>{const s=this.blocks.find(t=>t.dataId===e);s&&(0===n?(s.listType=\"ol\",s.listStart=1,s.parentId=t):(s.listType=\"li\",s.listStart=n+1,s.parentId=t))})}this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}toggleUnorderedList(t){const e=this.blocks.findIndex(e=>e.dataId===t);if(-1===e)return;const n=this.blocks[e];n.listType=\"ul\"===n.listType?null:\"ul\",this.emit(\"documentChanged\",this)}updateOrderedListNumbers(){let t=1,e=null;for(let n=0;nt.focus(),0)}else this.editorView.container.focus();const s=window.getSelection();if(!s)return;const o=document.createRange();let i=0;const l=[this.editorView.container];let a;const d=(null===(n=this.editorView.container.textContent)||void 0===n?void 0:n.length)||0;if(!(t<0||t>d)){for(;a=l.pop();)if(3===a.nodeType){const e=a,n=i+e.length;if(t>=i&&t<=n){o.setStart(e,Math.min(t-i,e.length)),o.collapse(!0);break}i=n}else if(\"BR\"===a.tagName){if(t===i){o.setStartBefore(a),o.collapse(!0);break}i++}else{const t=a;let e=t.childNodes.length;for(;e--;)l.push(t.childNodes[e])}s.removeAllRanges(),s.addRange(o)}}toggleBoldRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"bold\");this.formatAttribute(t,e,\"bold\",!s)}toggleItalicRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"italic\");this.formatAttribute(t,e,\"italic\",!s)}toggleUnderlineRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"underline\");this.formatAttribute(t,e,\"underline\",!s)}toggleStrikethroughRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"strikethrough\");this.formatAttribute(t,e,\"strikethrough\",!s)}toggleSubscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"subscript\");s||this.formatAttribute(t,e,\"superscript\",!1),this.formatAttribute(t,e,\"subscript\",!s)}toggleSuperscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"superscript\");s||this.formatAttribute(t,e,\"subscript\",!1),this.formatAttribute(t,e,\"superscript\",!s)}toggleUndoRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"undo\");this.formatAttribute(t,e,\"undo\",!s)}toggleRedoRange(t,e){const n=this.isRangeEntirelyAttribute(t,e,\"redo\");this.formatAttribute(t,e,\"redo\",!n)}applyFontColor(t,e,n,s=\"\"){tt.dataId===this.selectedBlockId);if(-1===i||!this.blocks[i].pieces)return!1;for(let l of this.blocks[i].pieces){const i=s+l.text.length;if(i>t&&st+e.text.length,0);if(s.dataId==e){let e=null;for(let o of s.pieces){const s=n,i=s+o.text.length;if(t>=s&&tt.dataId===e);n&&(n.alignment=t,this.emit(\"documentChanged\",this))}getHtmlContent(t=!1){const e=document.getElementById(\"editor\");if(!e)return void console.error(\"Editor container not found.\");const n=e.innerHTML;return t&&navigator.clipboard.writeText(n).then(()=>{console.log(\"HTML copied to clipboard!\")}).catch(t=>console.error(\"Failed to copy HTML:\",t)),n}getCursorOffsetInParent(t){var e;console.log(\"textPosition -1:vicky\",t);const n=document.querySelector(t);if(!n)return null;const s=window.getSelection();if(!s||0===s.rangeCount)return null;const o=s.getRangeAt(0);if(!n.contains(o.startContainer))return null;let i=0,l=null;const a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let d=null;for(;a.nextNode();){const t=a.currentNode;if(console.log(t,\"textPosition - currentNode: vicky\"),t===o.startContainer){i+=o.startOffset,l=t,d=t.parentElement;break}i+=(null===(e=t.textContent)||void 0===e?void 0:e.length)||0}return console.log({offset:i,childNode:l,innerHTML:d.innerHTML,innerText:d.innerText},\"textPosition - return values: vicky\"),{offset:i,childNode:l,innerHTML:d.innerHTML,innerText:d.innerText}}removeExclusiveEndBlock(t,e){if(e.length<=1)return;const n=t.endContainer,s=t.endOffset;let o=!1;if((n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE)&&(o=0===s),!o)return;const i=this.getDataIdFromNode(n);if(!i)return;if(i!==this.getDataIdFromNode(t.startContainer)&&e.includes(i)){const t=e.lastIndexOf(i);t>-1&&e.splice(t,1)}}}function o(t){const e=window.getSelection();if(!e||0===e.rangeCount)return null;const n=e.getRangeAt(0),s=n.cloneRange();s.selectNodeContents(t),s.setEnd(n.startContainer,n.startOffset);const o=s.toString().length;s.setEnd(n.endContainer,n.endOffset);return{start:o,end:s.toString().length}}function i(t,e){if(!e)return;let n=0;const s=document.createRange();s.setStart(t,0),s.collapse(!0);const o=[t];let i,l=!1,a=!1;for(;!a&&(i=o.pop());)if(3===i.nodeType){const t=i,o=n+t.length;!l&&e.start>=n&&e.start<=o&&(s.setStart(t,e.start-n),l=!0),l&&e.end>=n&&e.end<=o&&(s.setEnd(t,e.end-n),a=!0),n=o}else if(\"BR\"===i.tagName)l||e.start!==n||(s.setStartBefore(i),l=!0),l&&e.end===n&&(s.setEndBefore(i),a=!0),n++;else{const t=i;let e=t.childNodes.length;for(;e--;)o.push(t.childNodes[e])}const d=window.getSelection();d&&(d.removeAllRanges(),d.addRange(s))}function l(t){const e=o(t.container);return e?[e.start,e.end]:[0,0]}const a=/((https?:\\/\\/|www\\.)[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]+|\\b[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:\\/[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]*)?)/g;function d(t,e){return e>0&&\"@\"===t[e-1]}function r(t){if(!t)return t;let e=t.trim();const n=e.match(/^https?:\\/\\/[\\w.-]+(?::\\d+)?\\/(https?:\\/\\/.*)$/);return n&&(e=n[1]),/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)?e:e.startsWith(\"//\")?\"https:\"+e:\"https://\"+e}class c{constructor(t,e){this.container=t,this.document=e}setImageHandler(t){this.imageHandler=t}render(){const t=o(this.container);this.container.innerHTML=\"\",this.document.blocks.forEach(t=>{var e;if(\"\"!==t.dataId){let n;if(\"table\"===t.type||\"layout\"===t.type||\"math\"===t.type)return void(t.element&&this.container.appendChild(t.element));if(\"image\"===t.type){if(n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",t.image)if(this.imageHandler&&\"function\"==typeof this.imageHandler.createImageFragment)n.appendChild(this.imageHandler.createImageFragment(t.image,t.dataId));else{const e=document.createElement(\"img\");e.src=t.image,n.appendChild(e)}}else if(\"code\"===t.type){n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",\"code_block_wrapper\"),n.setAttribute(\"type\",\"code\"),n.setAttribute(\"data-language\",t.language||\"text\"),n.addEventListener(\"mousedown\",t=>{t.preventDefault()});const e=document.createElement(\"div\");e.className=\"code_block_header\";const s=document.createElement(\"span\");s.className=\"code_block_language\",s.innerText=t.language||\"text\";const o=document.createElement(\"span\");o.className=\"code_block_hint\",o.innerText=\"double-click to edit\";const i=document.createElement(\"button\");i.className=\"code_block_cancel\",i.innerHTML=\"×\",i.title=\"Remove block\",i.addEventListener(\"mousedown\",t=>{t.stopPropagation()}),i.onclick=e=>{e.stopPropagation(),e.preventDefault(),n.remove();const s=this.document.blocks.findIndex(e=>e.dataId===t.dataId);-1!==s&&(this.document.blocks.splice(s,1),this.document.selectedBlockId===t.dataId&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},e.appendChild(s),e.appendChild(o),e.appendChild(i);const l=document.createElement(\"pre\");l.className=\"code_block_content\";const a=document.createElement(\"code\");a.textContent=t.code||\"\",l.appendChild(a),n.appendChild(e),n.appendChild(l)}else if(\"ol\"===t.listType||\"li\"===t.listType?(n=document.createElement(\"ol\"),n.setAttribute(\"start\",(null===(e=null==t?void 0:t.listStart)||void 0===e?void 0:e.toString())||\"1\")):n=\"ul\"===t.listType?document.createElement(\"ul\"):document.createElement(t.heading||\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",Array.isArray(t.pieces))if(\"ol\"===t.listType||\"ul\"===t.listType||\"li\"===t.listType){const e=document.createElement(\"li\");t.pieces.forEach(t=>{e.appendChild(this.renderPiece(t))}),n.appendChild(e)}else t.pieces.forEach(t=>{n.appendChild(this.renderPiece(t))});this.container.appendChild(n)}}),i(this.container,t)}renderPiece(t){const e=t.text.split(\"\\n\");return this.wrapAttributes(e,t.attributes)}wrapAttributes(t,e){const n=document.createDocumentFragment();return t.forEach((s,o)=>{let i=document.createTextNode(s);if(e.strikethrough){const t=document.createElement(\"s\");t.appendChild(i),i=t}if(e.underline){const t=document.createElement(\"u\");t.appendChild(i),i=t}if(e.italic){const t=document.createElement(\"em\");t.appendChild(i),i=t}if(e.bold){const t=document.createElement(\"strong\");t.appendChild(i),i=t}if(e.subscript){const t=document.createElement(\"sub\");t.appendChild(i),i=t}if(e.superscript){const t=document.createElement(\"sup\");t.appendChild(i),i=t}const l=document.getElementById(\"fontFamily\"),a=document.getElementById(\"fontSize\");let d=\"Arial\",c=\"16px\";l&&(d=l.value),a&&(c=a.value);const h=document.createElement(\"span\");if(h.style.fontFamily=e.fontFamily||d,h.style.fontSize=e.fontSize||c,e.fontColor&&\"string\"==typeof e.fontColor&&(h.style.color=e.fontColor),e.bgColor&&\"string\"==typeof e.bgColor&&(h.style.backgroundColor=e.bgColor),e.hyperlink&&\"string\"==typeof e.hyperlink){const t=document.createElement(\"a\");t.href=r(e.hyperlink),t.appendChild(i),i=t}h.appendChild(i),i=h,n.appendChild(i),o{t.addEventListener(\"mousedown\",t=>{t.preventDefault()})}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"toolbarAction\",t)}})}updateActiveStates(t){if(this.container.querySelectorAll(\"button\").forEach(e=>{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),\"undo\"===n&&t.undo&&(s=!0),\"redo\"===n&&t.redo&&(s=!0),e.classList.toggle(\"active\",s)}),this.container.querySelectorAll(\"select\").forEach(e=>{const n=e.getAttribute(\"data-action\");\"fontFamily\"===n&&t.fontFamily&&(e.value=t.fontFamily),\"fontSize\"===n&&t.fontSize&&(e.value=t.fontSize)}),t.fontColor){const e=document.getElementById(\"fontColorPicker\");e&&(e.value=t.fontColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}if(t.bgColor){const e=document.getElementById(\"bgColorPicker\");e&&(e.value=t.bgColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}}}const u={TOOLBAR_CLASSNAME:\"toolbar\",TOOLBAR_ID:\"toolbar\",EDITOR_CLASSNAME:\"editor\",EDITOR_ID:\"editor\",EDITOR_ELEMENT_NT_FOUND:\"Editor element not found or incorrect element type.\",FONT_FAMILY_SELECT_ID:\"fontFamily\",FONT_SIZE_SELECT_ID:\"fontSize\",HEADING_SELECT_ID:\"heading\",FONT_COLOR_WRAPPER_ID:\"fontColorWrapper\",FONT_COLOR_ID:\"fontColor\",FONT_COLOR_PICKER_WRAPPER_ID:\"colorWrapper\",FONT_COLOR_PICKER_ID:\"fontColorPicker\",FONT_COLOR_RESET_ID:\"colorResetFont\",BG_COLOR_WRAPPER_ID:\"bgColorWrapper\",BG_COLOR_ID:\"bgColor\",BG_COLOR_PICKER_WRAPPER_ID:\"colorBgWrapper\",BG_COLOR_RESET_ID:\"colorResetBG\",BG_COLOR_PICKER_ID:\"bgColorPicker\",GET_HTML_BUTTON_ID:\"getHtmlButton\",LOAD_HTML_BUTTON_ID:\"loadHtmlButton\",HYPERLINK_CONTAINER_ID:\"hyperlink-container\",HYPERLINK_INPUT_ID:\"hyperlink-input\",HYPERLINK_PLACEHOLDER:\"Enter a URL...\",HYPERLINK_APPLY_BTN_ID:\"apply-hyperlink\",HYPERLINK_CANCEL_BTN_ID:\"cancel-hyperlink\",VIEW_HYPERLINK_CONTAINER_ID:\"hyperlink-container-view\",VIEW_HYPERLINK_LABEL_ID:\"hyperlink-view-span\",VIEW_HYPERLINK_ANCHOR_ID:\"hyperlink-view-link\",TEMPORARY_SELECTION_HIGHLIGHT_CLASS:\"temporary-selection-highlight\",PARAGRAPH_BLOCK_CLASS:\"paragraph-block\",IMAGE_CROSS_CLASS:\"image-cross\",TEST_HTML_CODE:'
ajsh diujaksdajsh diujaksdajsh
diujaksdasd 98hasiudasdh 98
This is a t this is a test work
This is a test work. this is a test work
da90 uasd y98asiodoiasda90 uasd y98asiodoiasda90 uasd y98asioda
sdjasdjasdja9sudoija9sudoija9sudoija90sdoa90sdoa90sdo
',TEST_BLOG_POST_HTML_CODE:'
Blog Post Title
Start writing your post here...
',TEST_NEWSLATER_HTML_CODE:'
Weekly Newsletter
Hello subscribers,
',TEST_RESUME_HTML_CODE:'
John Doe
Experience
• Role 1
',TEST_EMAIL_HTML_CODE:'
Subject: Important Update
Hi Team,
',TEST_MEETING_HTML_CODE:'
Meeting Minutes
Attendees:
Action Items:
',POPUP_TOOLBAR_CLASSNAME:\"popup-toolbar\",POPUP_TOOLBAR_ID:\"popup-toolbar\",TOAST_ID:\"ti-toast\",TOAST_SHOW_CLASS:\"ti-toast--show\",TOAST_DEFAULT_MESSAGE:\"HTML copied to clipboard\",TOAST_DEFAULT_DURATION_MS:2e3};class p{constructor(t,e,n){this.savedSelection=null,this.clickOutsideHandler=null,this.editorContainer=t,this.editorView=e,this.document=n}setUndoRedoManager(t){this.undoRedoManager=t}hanldeHyperlinkClick(t,e,n,s,o){const i=this.getCommonHyperlinkInRange(t,e,n,s,o);this.showHyperlinkInput(i)}getCommonHyperlinkInRange(t,e,n,s,o){let i=n,l=0;s&&(l=o.findIndex(t=>t.dataId===s));const a=o[l].pieces;let d=null;for(let n of a){const s=i+n.text.length;if(s>t&&i0){const t=c.getRangeAt(0);let o=null;if(t&&\"function\"==typeof t.getBoundingClientRect)o=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);o=n&&n.length?n[0]:null}(!o||Number.isNaN(o.top)&&Number.isNaN(o.left))&&(o=this.editorView.container.getBoundingClientRect());const l=(null===window||void 0===window?void 0:window.scrollY)||0,a=(null===window||void 0===window?void 0:window.scrollX)||0;i.style.top=`${(null!==(n=o.bottom)&&void 0!==n?n:o.top)+l+5}px`,i.style.left=`${(null!==(s=o.left)&&void 0!==s?s:0)+a}px`}l.value=t||\"\",this.savedSelection=o(this.editorView.container),this.highlightSelection(),l.focus(),a.onclick=null,d.onclick=null;const h=this.document.dataIds,u=()=>{const t=r(l.value.trim());t&&this.applyHyperlink(t,h),i.style.display=\"none\"};a.onclick=u,l.onkeydown=t=>{\"Enter\"===t.key&&(t.preventDefault(),u())},d.onclick=()=>{this.removeHyperlink(h),i.style.display=\"none\"}}}highlightSelection(){this.removeHighlightSelection();const t=window.getSelection();if(t&&t.rangeCount>0){const e=t.getRangeAt(0),n=document.createElement(\"span\");n.className=u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS,n.appendChild(e.extractContents()),e.insertNode(n),t.removeAllRanges();const s=document.createRange();s.selectNodeContents(n),t.addRange(s)}}removeHighlightSelection(){var t;const e=null===(t=this.editorContainer)||void 0===t?void 0:t.querySelectorAll(`span.${u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS}`);null==e||e.forEach(t=>{const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)}})}applyHyperlink(t,e){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),i(this.editorView.container,this.savedSelection);const[n,s]=l(this.editorView);if(n1?this.document.blocks.forEach(t=>{if(e.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.formatAttribute(s,e,\"hyperlink\",o)}}):this.document.formatAttribute(n,s,\"hyperlink\",o),this.editorView.render();const i=window.getSelection();i&&i.removeAllRanges(),this.editorView.container.focus()}this.savedSelection=null}removeHyperlink(t){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),i(this.editorView.container,this.savedSelection);const[e,n]=l(this.editorView);e1?this.document.blocks.forEach(n=>{if(t.includes(n.dataId)){this.document.selectedBlockId=n.dataId;let t=0;n.pieces.forEach(e=>{t+=e.text.length});let s=e-t;this.document.formatAttribute(s,t,\"hyperlink\",!1)}}):this.document.formatAttribute(e,n,\"hyperlink\",!1),this.editorView.render(),i(this.editorView.container,this.savedSelection),this.editorView.container.focus()),this.savedSelection=null}addClickOutsideListener(t){this.removeClickOutsideListener(),this.clickOutsideHandler=e=>{t&&!t.contains(e.target)&&this.hideHyperlinkViewButton()},setTimeout(()=>{\"undefined\"!=typeof document&&document.addEventListener(\"click\",this.clickOutsideHandler)},100)}removeClickOutsideListener(){this.clickOutsideHandler&&(document.removeEventListener(\"click\",this.clickOutsideHandler),this.clickOutsideHandler=null)}showHyperlinkViewButton(t){var e,n,s;const o=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID),i=document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID);if(o&&i){o.style.display=\"block\";const l=window.getSelection();if(l&&l.rangeCount>0){const t=l.getRangeAt(0);let i=null;if(t&&\"function\"==typeof t.getBoundingClientRect)i=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);i=n&&n.length?n[0]:null}i||(i=this.editorView.container.getBoundingClientRect());const a=(null===window||void 0===window?void 0:window.scrollY)||0,d=(null===window||void 0===window?void 0:window.scrollX)||0;i&&(o.style.top=`${(null!==(n=i.bottom)&&void 0!==n?n:i.top)+a+5}px`,o.style.left=`${(null!==(s=i.left)&&void 0!==s?s:0)+d}px`)}t&&(i.innerText=t,i.href=r(t))}this.addClickOutsideListener(o)}hideHyperlinkViewButton(){const t=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID);t&&(t.style.display=\"none\"),this.removeClickOutsideListener()}}function m(t){return g((new DOMParser).parseFromString(t,\"text/html\").body,{bold:!1,italic:!1,underline:!1,hyperlink:!1})}function g(t,e){let s=Object.assign({},e);const o=[];if(t instanceof HTMLElement){if(\"A\"===t.tagName){const e=t.getAttribute(\"href\");e&&(s.hyperlink=e)}\"STRONG\"!==t.tagName&&\"B\"!==t.tagName||(s.bold=!0),\"EM\"!==t.tagName&&\"I\"!==t.tagName||(s.italic=!0),\"U\"===t.tagName&&(s.underline=!0),t.childNodes.forEach(t=>{o.push(...g(t,s))})}else if(t instanceof Text){const e=t.nodeValue||\"\";\"\"!==e.trim()&&o.push(new n(e,Object.assign({},s)))}return o}const f={bold:'\\n Bold\\n \\n ',italic:'\\n Italic\\n \\n ',underline:'\\n Underline\\n \\n ',strikethrough:'\\n Strikethrough\\n \\n ',subscript:'\\n \\n ',superscript:'\\n \\n ',left_align:'\\n Left Align\\n \\n ',center_align:'\\n Center Align\\n ',right_align:'\\n Right Align',justify:'\\n Justify\\n ',bullet_list:'\\n Bullet List',numbered_list:'\\n Numbererd List\\n \\n ',insert_table:'\\n \\n \\n \\n \\n \\n \\n \\n ',insert_layout:'\\n Insert Layout\\n \\n ',heading:'\\n Heading\\n \\n ',hyperlink:'\\n Hyperlink\\n \\n \\n ',image:'\\n Insert Image\\n \\n ',stop_microphone:' \\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',start_microphone:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',close_icon:'\\n \\n ',emoji:'\\n Emoji\\n \\n \\n \\n \\n ',insert_math:'\\n \\n ',textToSppech:'\\n \\n \\n \\n \\n Icon_24px_TexttoSpeech_Color\\n \\n \\n \\n \\n \\n \\n \\n ',speaker_on:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',speaker_off:'\\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n '},b={dropdowns:[\"fontFamily\",\"fontSize\",\"heading\"],colors:[\"fontColor\",\"bgColor\"],formatting:[\"bold\",\"italic\",\"underline\",\"strikethrough\"],alignment:[\"alignLeft\",\"alignCenter\",\"alignRight\"],lists:[\"unorderedList\",\"orderedList\"],media:[\"hyperlink\",\"image\",\"emoji\",\"insert_math\"],utility:[\"getHtmlContent\",\"loadHtmlContent\"]};function y(){const t=document.createElement(\"div\");return t.className=\"toolbar-separator\",t}function C(t,e){const n=u.EDITOR_ID,s=u.TOOLBAR_ID,o=u.POPUP_TOOLBAR_ID,i=[\"Arial\",\"Times New Roman\",\"Courier New\",\"Verdana\"],l=[\"12px\",\"14px\",\"16px\",\"18px\",\"20px\"],a=document.getElementById(t);if(!a)throw new Error(u.EDITOR_ELEMENT_NT_FOUND);a.classList.add(\"editor-container\");const d=document.createElement(\"div\");d.className=u.TOOLBAR_CLASSNAME,d.id=s,a.appendChild(d),!1===(null==e?void 0:e.showToolbar)&&(d.style.display=\"none\");const r=document.createElement(\"div\");r.id=n,r.className=u.EDITOR_CLASSNAME,r.contentEditable=\"true\",r.spellcheck=!0,r.lang=\"en\",a.appendChild(r);const c={bold:\"B\",italic:\"I\",underline:\"U\",hyperlink:\"🔗\",alignLeft:\"⇤\",alignCenter:\"↔\",alignRight:\"⇥\",unorderedList:\"•\",orderedList:\"1.\",fontFamily:\"fontFamily\",fontSize:\"fontSize\",fontColor:\"A\",subscript:\"X2\",superscript:\"X2\",justify:\"⇄\",insert_table:\"⊢\",insert_layout:\"❐\",insert_math:\"Σ\",heading:\"H\",image:\"📷\",colors:\"🎨\"},h={bold:\"Bold (Ctrl+B)\",italic:\"Italic (Ctrl+I)\",underline:\"Underline (Ctrl+U)\",strikethrough:\"Strikethrough\",hyperlink:\"Insert Link (Ctrl+H)\",alignLeft:\"Align Left (Ctrl+L)\",alignCenter:\"Align Center (Ctrl+E)\",alignRight:\"Align Right (Ctrl+R)\",unorderedList:\"Bullet List\",orderedList:\"Numbered List\",fontColor:\"Text Color\",bgColor:\"Highlight Color\",image:\"Insert Image\",emoji:\"Emoji\",getHtmlContent:\"Get HTML\",loadHtmlContent:\"Load HTML\",insert_table:\"Insert table\",insert_math:\"Insert Equation\",textToSpeech:\"Text To Sppech\"},p=[{feature:\"alignLeft\",id:\"alignLeft\",icon:f.left_align},{feature:\"alignCenter\",id:\"alignCenter\",icon:f.center_align},{feature:\"alignRight\",id:\"alignRight\",icon:f.right_align},{feature:\"unorderedList\",id:\"unorderedList\",icon:f.bullet_list},{feature:\"orderedList\",id:\"orderedList\",icon:f.numbered_list},{feature:\"hyperlink\",id:\"hyperlink\",icon:f.hyperlink},{feature:\"emoji\",id:\"emoji\",icon:f.emoji},{feature:\"strikethrough\",id:\"strikethrough\",icon:f.strikethrough},{feature:\"insert_table\",id:\"insert_table\",icon:f.insert_table},{feature:\"insert_math\",id:\"insert_math\",icon:f.insert_math},{feature:\"subscript\",id:\"subscript\",icon:f.subscript},{feature:\"superscript\",id:\"superscript\",icon:f.superscript},{feature:\"textToSpeech\",id:\"textToSpeech\",icon:f.speaker_on}],m=(t,e)=>{const n=document.createElement(\"select\");return n.dataset.action=t,n.id=t,e.forEach(t=>{const e=document.createElement(\"option\");e.value=t,e.textContent=t,n.appendChild(e)}),n},g=document.createElement(\"div\");g.id=o,g.className=u.POPUP_TOOLBAR_CLASSNAME,g.style.display=\"none\",a.appendChild(g),e.popupFeatures&&e.popupFeatures.forEach((t,e)=>{e>0&&\"hyperlink\"===t&&g.appendChild(y());const n=p.find(e=>e.feature===t)||{icon:c[t]||t},s=document.createElement(\"button\");s.dataset.action=t,s.innerHTML=n.icon,s.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),g.appendChild(s)});let C=null;e.features.forEach((t,n)=>{const s=function(t){for(const[e,n]of Object.entries(b))if(n.includes(t))return e;return null}(t);if(n>0&&s&&C&&s!==C&&d.appendChild(y()),C=s,\"fontFamily\"===t){const t=m(u.FONT_FAMILY_SELECT_ID,i);d.appendChild(t)}else if(\"fontSize\"===t){const t=m(u.FONT_SIZE_SELECT_ID,l);d.appendChild(t)}else if(\"fontColor\"===t){if(document.getElementById(u.FONT_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.FONT_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.FONT_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.fontColor,e.innerHTML='A',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.FONT_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #d1d1d1\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.type=\"color\",s.id=u.FONT_COLOR_PICKER_ID,s.setAttribute(\"data-action\",\"fontColor\"),s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #d1d1d1\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#000000\",n.appendChild(s);const o=document.createElement(\"button\");o.id=u.FONT_COLOR_RESET_ID,o.type=\"button\",o.textContent=\"Reset\",o.style.display=\"block\",o.style.width=\"100%\",o.style.padding=\"6px 12px\",o.style.fontSize=\"12px\",o.style.border=\"1px solid #000000\",o.style.borderRadius=\"4px\",o.style.backgroundColor=\"#f8f8f8\",o.style.cursor=\"pointer\",o.style.transition=\"background-color 0.2s\",o.onmouseenter=()=>o.style.backgroundColor=\"#e8e8e8\",o.onmouseleave=()=>o.style.backgroundColor=\"#f8f8f8\",n.appendChild(o),t.appendChild(n),d.appendChild(t)}else if(\"bgColor\"===t){if(document.getElementById(u.BG_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.BG_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.BG_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.bgColor,e.innerHTML='B',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.BG_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #000000\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.setAttribute(\"data-action\",\"bgColor\"),s.type=\"color\",s.id=u.BG_COLOR_PICKER_ID,s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #000000ff\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#ffffff\",n.appendChild(s);const o=document.createElement(\"button\");o.id=u.BG_COLOR_RESET_ID,o.type=\"button\",o.textContent=\"Reset\",o.style.display=\"block\",o.style.width=\"100%\",o.style.padding=\"6px 12px\",o.style.fontSize=\"12px\",o.style.border=\"1px solid #d1d1d1\",o.style.borderRadius=\"4px\",o.style.backgroundColor=\"#f8f8f8\",o.style.cursor=\"pointer\",o.style.transition=\"background-color 0.2s\",o.onmouseenter=()=>o.style.backgroundColor=\"#e8e8e8\",o.onmouseleave=()=>o.style.backgroundColor=\"#f8f8f8\",n.appendChild(o),t.appendChild(n),d.appendChild(t)}else if(\"getHtmlContent\"===t){const t=document.createElement(\"button\");t.id=u.GET_HTML_BUTTON_ID,t.type=\"button\",t.textContent=\"Get HTML\",t.dataset.tooltip=h.getHtmlContent,d.appendChild(t)}else if(\"loadHtmlContent\"===t){const t=document.createElement(\"select\");t.id=u.LOAD_HTML_BUTTON_ID,t.dataset.action=\"loadHtmlContent\",t.dataset.tooltip=h.loadHtmlContent,t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const n=document.createElement(\"option\");n.value=\"\",n.textContent=\"Templates...\",n.disabled=!0,n.selected=!0,t.appendChild(n);[...[{name:\"Default Test\",html:u.TEST_HTML_CODE},{name:\"Blog Post\",html:u.TEST_BLOG_POST_HTML_CODE},{name:\"Newsletter\",html:u.TEST_NEWSLATER_HTML_CODE},{name:\"Resume\",html:u.TEST_RESUME_HTML_CODE},{name:\"Email\",html:u.TEST_EMAIL_HTML_CODE},{name:\"Meeting Notes\",html:u.TEST_MEETING_HTML_CODE}],...e.templates||[]].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=n.toString(),s.dataset.html=e.html,s.textContent=e.name,t.appendChild(s)}),d.appendChild(t)}else if(\"heading\"===t){const t=document.createElement(\"select\");t.id=u.HEADING_SELECT_ID,t.dataset.action=\"heading\",t.dataset.tooltip=h.heading||\"Heading\",t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const e=document.createElement(\"option\");e.value=\"\",e.textContent=\"Normal\",t.appendChild(e),[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=e.toLowerCase(),s.textContent=`Heading ${n+1}`,t.appendChild(s)}),d.appendChild(t)}else if(p.map(t=>t.feature).includes(t)){const e=p.find(e=>e.feature===t),n=document.createElement(\"button\");n.id=t,n.dataset.action=t,n.innerHTML=(null==e?void 0:e.icon)||\"\",n.dataset.tooltip=h[t]||t,d.appendChild(n)}else{const e=document.createElement(\"button\");e.dataset.action=t,e.innerHTML=c[t]||t,e.id=t,e.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),d.appendChild(e)}});const k=document.createElement(\"div\");k.id=u.HYPERLINK_CONTAINER_ID,k.style.display=\"none\";const v=document.createElement(\"input\");v.type=\"text\",v.id=u.HYPERLINK_INPUT_ID,v.placeholder=u.HYPERLINK_PLACEHOLDER;const I=document.createElement(\"button\");I.id=u.HYPERLINK_APPLY_BTN_ID,I.textContent=\"Link\";const x=document.createElement(\"button\");x.id=u.HYPERLINK_CANCEL_BTN_ID,x.textContent=\"Unlink\",k.appendChild(v),k.appendChild(I),k.appendChild(x),d.appendChild(k);const E=document.createElement(\"div\");E.id=u.VIEW_HYPERLINK_CONTAINER_ID,E.style.display=\"none\";const w=document.createElement(\"span\");w.id=u.VIEW_HYPERLINK_LABEL_ID,w.innerHTML=\"Visit URL : \";const _=document.createElement(\"a\");return _.id=u.VIEW_HYPERLINK_ANCHOR_ID,_.href=\"\",_.target=\"_blank\",E.appendChild(w),E.appendChild(_),d.appendChild(E),{mainEditorId:n,toolbarId:s,popupToolbarId:o}}class k{constructor(t){this.htmlString=t,this.doc=(new DOMParser).parseFromString(t,\"text/html\")}parse(){const t=this.doc.body.children;let e=[];return Array.from(t).forEach((t,n)=>{const s=this.parseElement(t);console.log(t,\"element parse\",n,s),e.push(s)}),console.log(e,\"element--jsondata\"),e}parseElement(t){const e=t.getAttribute(\"data-id\")||`data-id-${Date.now()}-${Math.floor(1e3*Math.random())}`,n=t.className||\"paragraph-block\",s=t.style.textAlign||\"left\";let o=null,i=null;\"UL\"===t.tagName?o=\"ul\":\"OL\"===t.tagName&&(o=\"ol\",i=parseInt(t.getAttribute(\"start\")||\"1\",10));let l=[];o?this.parseListItems(t,l):this.parseParagraphText(t,l);const a=t.tagName.toLowerCase(),d=a.match(/^h[1-6]$/)?a:null;return Object.assign(Object.assign(Object.assign(Object.assign({dataId:e,class:n,alignment:s,pieces:l},o?{listType:o}:{}),null!==i?{listStart:i}:{}),{}),d?{heading:d}:{})}parseListItems(t,e){t.querySelectorAll(\"li\").forEach(t=>{const s=this.extractTextAttributes(t);s&&e.push(new n(s.text,s.attributes))})}parseParagraphText(t,e){const s=t.querySelectorAll(\"span\"),o=new Map;s.forEach(t=>{const e=this.extractTextAttributes(t);if(console.log(e,\"piece parseParagraphText span\",t.textContent,t.style.color),e){const t=o.get(e.text);t?(t.attributes.bold=t.attributes.bold||e.attributes.bold,t.attributes.italic=t.attributes.italic||e.attributes.italic,t.attributes.underline=t.attributes.underline||e.attributes.underline,t.attributes.fontFamily=e.attributes.fontFamily||t.attributes.fontFamily,t.attributes.fontSize=e.attributes.fontSize||t.attributes.fontSize,t.attributes.fontColor=e.attributes.fontColor||t.attributes.fontColor,t.attributes.bgColor=e.attributes.bgColor||t.attributes.bgColor):o.set(e.text,Object.assign({},e))}}),o.forEach(t=>{e.push(new n(t.text,t.attributes))}),console.log(e,\"pieces--parseParagraphText (merged)\")}extractTextAttributes(t){var e;const n=t.textContent||\"\";return n?(console.log(\"extractTextAttributes node\",t,t.style.color),{text:n,attributes:{bold:null!==t.querySelector(\"b, strong\"),italic:null!==t.querySelector(\"i, em\"),underline:null!==t.querySelector(\"u\"),undo:!1,redo:!1,fontFamily:t.style.fontFamily||\"Arial\",fontSize:t.style.fontSize||\"12px\",hyperlink:!!t.querySelector(\"a\")&&(null===(e=t.querySelector(\"a\"))||void 0===e?void 0:e.getAttribute(\"href\")),fontColor:t.style.color,bgColor:t.style.backgroundColor}}):null}rgbToHex(t,e=!1){const n=t.match(/\\d+/g);if(!n||n.length<3)return null;const s=n.map(t=>{const e=parseInt(t);return e<0||e>255?\"00\":e.toString(16).padStart(2,\"0\")}).join(\"\");return e||\"000000\"!==s?`#${s}`:null}}class v{constructor(t,e){this.editor=t,this.document=e,this.isImageHighlighted=!1,this.highLightedImageDataId=\"\",this.currentCursorLocation=0,this.isCrossIconVisible=!1}setEditorView(t){this.editorView=t}insertImage(){const t=document.createElement(\"input\");t.type=\"file\",t.accept=\"image/*\",t.click(),t.onchange=()=>{const e=t.files?t.files[0]:null;if(e){const t=new FileReader;t.onload=t=>{var e;const n=null===(e=t.target)||void 0===e?void 0:e.result;this.insertImageAtCursor(n)},t.readAsDataURL(e)}}}insertImageAtCursor(t){if(!t)return;const[e,n]=l(this.editorView);n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId),this.insertImageAtPosition(t,e,this.document.selectedBlockId)}setCursorPostion(t,e){if(\"number\"!=typeof t||!e)return;const n=document.querySelector(`[data-id=\"${e}\"]`);n&&(\"function\"==typeof n.focus&&n.focus(),setTimeout(()=>{const e=document.createRange(),s=window.getSelection();if(n.firstChild)e.setStart(n.firstChild,t);else{const t=document.createTextNode(\"\");n.appendChild(t),e.setStart(t,0)}e.collapse(!0),null==s||s.removeAllRanges(),null==s||s.addRange(e)},0))}insertImageAtPosition(t,e,s){if(!t||\"number\"!=typeof e||!this.editorView)return;console.log(t,e,s,\"vicky insertImageAtPosition\",this.document.blocks);const o=`data-id-${Date.now()}-${1e3*Math.random()}`,i=`data-id-${Date.now()}-${1e3*Math.random()}`,l=`data-id-${Date.now()}-${1e3*Math.random()}`,a={dataId:o,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"image\",image:t},d={dataId:i,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"text\"};let r=this.document.selectedBlockId;const c=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);let h=[];const{remainingText:p,piece:m}=function(t,e){const n=window.getSelection();if(!n||0===n.rangeCount)return{remainingText:\"\",piece:null};const s=n.getRangeAt(0).startContainer;let o=\"\";const i=e.blocks.filter(e=>{if(e.dataId===t)return e});if(!i[0]||!i[0].pieces)return{remainingText:\"\",piece:null};const l=document.querySelector(`[data-id=\"${t}\"]`),a=e.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let d=[],r=0;if(i[0].pieces.forEach((t,e)=>{o+=t.text,(null==a?void 0:a.innerText)===t.text&&(r=e,d.push(t))}),i[0].pieces.length>1&&i[0].pieces.forEach((t,e)=>{r0){const t=p.split(\" \");let e=[];\"\"!==t[0]||void 0!==t[1]?1===m.length?e=[new n(g,m[0].attributes)]:(e.push(new n(\" \"+t[0]+\" \",m[0].attributes)),m.length>=2&&m.forEach((t,n)=>{0!==n&&e.push(t)})):e=[new n(\" \")],console.log(this.document.selectedBlockId,\"uniqueId3 extractTextFromDataId-vicky\",l),f=function(t,e,n){const s=t.findIndex(t=>t.dataId===e);return-1===s?(console.error(`Block with dataId \"${e}\" not found.`),t):[...t.slice(0,s+1),n,...t.slice(s+1)]}(this.document.blocks,this.document.selectedBlockId||\"\",{dataId:l,class:u.PARAGRAPH_BLOCK_CLASS,pieces:e,type:\"text\"})}this.document.blocks=f,this.document.deleteRange(this.currentCursorLocation,this.currentCursorLocation+p.length,this.document.selectedBlockId,this.document.currentOffset),this.document.blocks.length>c+1?this.document.blocks.forEach((t,e)=>{h.push(t),e===c?h.push(a):r===this.document.selectedBlockId&&(r=t.dataId)}):(h=[...this.document.blocks,a,d],r=d.dataId),this.document.blocks=h,this.editorView.render(),this.document.selectedBlockId=r;const b=document.querySelector(`[data-id=\"${r}\"]`);b.focus(),setTimeout(()=>{const t=document.createRange(),e=window.getSelection();if(b.firstChild)t.setStart(b.firstChild,1);else{const e=document.createTextNode(\"\");b.appendChild(e),t.setStart(e,0)}t.collapse(!0),null==e||e.removeAllRanges(),null==e||e.addRange(t)},0)}createImageFragment(t,e){if(!t||!e)return document.createDocumentFragment();const n=document.createDocumentFragment(),s=document.createElement(\"img\");s.src=t,s.style.maxWidth=\"30%\",s.setAttribute(\"contenteditable\",\"false\"),n.appendChild(s);const o=document.createElement(\"span\");return o.setAttribute(\"contenteditable\",\"false\"),o.appendChild(n),s.addEventListener(\"click\",()=>this.addStyleToImage(e)),o}addStyleToImage(t){if(t&&!this.isCrossIconVisible){const e=document.querySelector(`[data-id=\"${t}\"]`),n=null==e?void 0:e.querySelector(\"span\");n&&(n.style.position=\"relative\");const s=null==e?void 0:e.querySelector(\"img\");s&&(s.style.border=\"2px solid blue\");const o=document.createElement(\"div\");o.className=u.IMAGE_CROSS_CLASS,o.innerHTML=\"x\",Object.assign(o.style,{position:\"absolute\",top:\"0\",left:\"50%\",transform:\"translate(-50%, 0)\",background:\"#fff\",borderRadius:\"50%\",width:\"30px\",height:\"30px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",border:\"3px solid blue\",zIndex:\"999\"}),o.addEventListener(\"mouseover\",()=>o.style.border=\"3px solid black\"),o.addEventListener(\"mouseout\",()=>o.style.border=\"3px solid blue\"),o.addEventListener(\"click\",t=>{t.stopPropagation(),this.deleteImage()}),null==n||n.appendChild(o),this.isImageHighlighted=!0,this.highLightedImageDataId=t,this.isCrossIconVisible=!0}}clearImageStyling(){if(!this.highLightedImageDataId)return;const t=document.querySelector(`[data-id=\"${this.highLightedImageDataId}\"]`);if(t){const e=t.querySelector(\"span\");null==e||e.removeAttribute(\"style\");const n=null==e?void 0:e.querySelector(\"img\");n&&n.removeAttribute(\"style\");const s=null==e?void 0:e.querySelector(`.${u.IMAGE_CROSS_CLASS}`);null==s||s.remove(),this.highLightedImageDataId=\"\"}this.isCrossIconVisible=!1}deleteImage(){this.highLightedImageDataId&&(this.document.blocks=this.document.blocks.filter(t=>t.dataId!==this.highLightedImageDataId),this.highLightedImageDataId=\"\",this.isImageHighlighted=!1,this.clearImageStyling(),this.document.emit(\"documentChanged\",this))}}class I{constructor(t,e){this.snapshotUndoStack=[],this.snapshotRedoStack=[],this.maxSnapshots=5e3,this.document=t,this.editorView=e}createSnapshot(){const[t,e]=l(this.editorView);return{blocks:JSON.parse(JSON.stringify(this.document.blocks)),dataIds:[...this.document.dataIds],selectedBlockId:this.document.selectedBlockId,currentOffset:this.document.currentOffset,selection:this.getCurrentSelection(),cursorPosition:t}}getCurrentSelection(){const t=o(this.document.editorView.container);return t?{start:t.start,end:t.end}:{start:0,end:0}}saveUndoSnapshot(){const t=this.createSnapshot();console.log(\"Saving snapshot:\",t.cursorPosition,\"Stack length:\",this.snapshotUndoStack.length),this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift(),this.snapshotRedoStack=[]}restoreSnapshot(t){this.document.blocks=t.blocks,this.document.dataIds=t.dataIds,this.document._selectedBlockId=t.selectedBlockId,this.document.currentOffset=t.currentOffset;for(let t of this.document.blocks)t.pieces&&Array.isArray(t.pieces)&&(t.pieces=t.pieces.map(t=>new n(t.text,t.attributes)));this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{this.document.setCursorPosition(t.cursorPosition||0)},0)}undo(){if(console.log(\"UNDO - Undo stack length:\",this.snapshotUndoStack.length),console.log(\"UNDO - Redo stack length:\",this.snapshotRedoStack.length),0===this.snapshotUndoStack.length)return;const t=this.createSnapshot();this.snapshotRedoStack.push(t),this.snapshotRedoStack.length>this.maxSnapshots&&this.snapshotRedoStack.shift();const e=this.snapshotUndoStack.pop();e&&(console.log(\"UNDO - Restoring cursor position:\",e.cursorPosition),this.restoreSnapshot(e))}redo(){if(0===this.snapshotRedoStack.length)return;const t=this.createSnapshot();this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift();const e=this.snapshotRedoStack.pop();e&&this.restoreSnapshot(e)}}class x extends e{constructor(t){super(),this.container=t,this.setupButtons()}setupButtons(){this.container.addEventListener(\"mousedown\",t=>{t.preventDefault()}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"popupAction\",t)}})}show(t){const e=t.getRangeAt(0).getBoundingClientRect();if(0===e.width&&0===e.height)return void this.hide();this.container.style.display=\"flex\";const n=this.container.offsetWidth,s=this.container.offsetHeight;let o=e.top+window.scrollY-s-8,i=e.left+window.scrollX+e.width/2-n/2;o{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),e.classList.toggle(\"active\",s)})}}class E{constructor(){this.linkElement=null,this.createPopup()}setCallbacks(t,e){this.onOpenClick=t,this.onUnlinkClick=e}createPopup(){this.popup=document.createElement(\"div\"),this.popup.className=\"link-popup\",this.popup.style.cssText=\"\\n position: absolute;\\n background: #000;\\n border-radius: 4px;\\n padding: 2px;\\n box-shadow: 0 1px 4px rgba(0,0,0,0.5);\\n z-index: 1000;\\n \",this.popup.style.display=\"none\";const t=this.createButton(\"Open\",\"🔗\"),e=this.createButton(\"Unlink\",\"✕\");t.addEventListener(\"click\",()=>this.handleOpenClick()),e.addEventListener(\"click\",()=>this.handleUnlinkClick()),this.popup.appendChild(t),this.popup.appendChild(e),document.body.appendChild(this.popup)}createButton(t,e){const n=document.createElement(\"button\");return n.innerHTML=`${e}`,n.title=t,n.style.cssText=\"\\n background: transparent;\\n color: white;\\n border: none;\\n padding: 4px;\\n margin: 0 1px;\\n border-radius: 2px;\\n cursor: pointer;\\n font-size: 16px;\\n transition: background 0.1s;\\n width: 24px;\\n height: 24px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>{n.style.background=\"#333\"}),n.addEventListener(\"mouseleave\",()=>{n.style.background=\"transparent\"}),n}handleOpenClick(){this.linkElement&&this.onOpenClick&&this.onOpenClick(this.linkElement.href)}handleUnlinkClick(){this.onUnlinkClick&&this.linkElement&&this.onUnlinkClick(this.linkElement)}show(t,e,n){this.linkElement=t;const s=t.getBoundingClientRect();this.popup.style.left=`${s.left+window.scrollX}px`,this.popup.style.top=`${s.bottom+window.scrollY+5}px`,this.popup.style.display=\"flex\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",requestAnimationFrame(()=>{this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"1\",this.popup.style.transform=\"translateY(0)\"})}hide(){\"none\"!==this.popup.style.display&&(this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",setTimeout(()=>{this.popup.style.display=\"none\",this.popup.style.transition=\"\"},100))}isPopup(t){return this.popup.contains(t)}isVisible(){return\"none\"!==this.popup.style.display}}class w{constructor(t,e,n,s){this.isRecording=!1,this.silenceTimer=null,this.document=t,this.editorView=e,this.onStateChange=n,this.insertText=s;const o=window.SpeechRecognition||window.webkitSpeechRecognition;o?(this.recognition=new o,this.recognition.continuous=!0,this.recognition.interimResults=!1,this.recognition.onresult=t=>{const e=t.results[t.results.length-1];if(e.isFinal){const t=e[0].transcript+\" \";this.insertText(t)}},this.recognition.onerror=t=>{console.error(\"Speech recognition error:\",t.error),\"no-speech\"!==t.error&&this.stopRecording()},this.recognition.onend=()=>{this.stopRecording()}):console.warn(\"Speech Recognition API not supported in this browser.\")}toggleRecording(){this.isRecording?this.stopRecording():this.startRecording()}startRecording(){if(this.recognition)try{this.recognition.start(),this.isRecording=!0,this.onStateChange(!0)}catch(t){console.error(\"Failed to start speech recognition:\",t)}}stopRecording(){if(this.recognition&&this.isRecording){try{this.recognition.stop()}catch(t){console.warn(\"Some problem occur during the stop recording . . . \",t)}this.isRecording=!1,this.onStateChange(!1),this.silenceTimer&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}}}class _{constructor(t,e){this.modal=null,this.activeTable=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openTableModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"table_modal\";const e=document.createElement(\"div\");e.className=\"main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Table\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Table\";const o=document.createElement(\"button\");o.className=\"main_modal_close\",o.setAttribute(\"aria-label\",\"Close\"),o.innerHTML=f.close_icon,o.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(o);const i=document.createElement(\"div\");i.className=\"main_modal_body\";const l=document.createElement(\"div\");l.className=\"main_modal_inputs\";const a=document.createElement(\"div\");a.className=\"all_input\";const d=document.createElement(\"label\");d.textContent=\"Rows\",d.className=\"input_label\",d.setAttribute(\"for\",\"modal_input_row\");const r=document.createElement(\"input\");r.type=\"number\",r.id=\"modal_input_row\",r.className=\"modal_inputs\",r.placeholder=\"Enter the row number 1 to 20\",r.min=\"1\",r.max=\"20\",r.value=\"3\",a.appendChild(d),a.appendChild(r);const c=document.createElement(\"div\");c.className=\"all_input\";const h=document.createElement(\"label\");h.textContent=\"Columns\",h.className=\"input_label\",h.setAttribute(\"for\",\"modal_input_col\");const u=document.createElement(\"input\");u.type=\"number\",u.id=\"modal_input_col\",u.className=\"modal_inputs\",u.placeholder=\"Enter the coloumn number 1 to 20\",u.min=\"1\",u.max=\"20\",u.value=\"3\",c.appendChild(h),c.appendChild(u),l.appendChild(a),l.appendChild(c);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Insert Table\",g.type=\"button\",g.onclick=()=>{const t=Math.max(1,Math.min(20,parseInt(r.value)||3)),e=Math.max(1,Math.min(20,parseInt(u.value)||3));this.insertTable(t,e),this.closeModal()},p.appendChild(m),p.appendChild(g),i.appendChild(l),e.appendChild(n),e.appendChild(i),e.appendChild(p),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertTable(t,e){const s=`data-id-${Date.now()}`,o=`data-id-${Date.now()+1}`,i=document.createElement(\"div\");i.className=\"table_wrapper\",i.setAttribute(\"data-type\",\"tbl\"),i.setAttribute(\"data-id\",s),i.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),i.appendChild(l);const d=document.createElement(\"table\");d.className=\"tbl\";const r=document.createElement(\"thead\"),c=document.createElement(\"tr\");for(let t=0;tt.dataId===this.document.selectedBlockId);-1!==t&&(u=t+1)}const p={dataId:s,type:\"table\",element:i},m={dataId:o,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(u,0,p,m),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=i.querySelector(\".tblCell\");t&&(t.focus(),this.setActiveTable(i.querySelector(\"table\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\"table\");e&&this.setActiveTable(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\"table\"))||void 0===n?void 0:n.querySelectorAll(\".tblCell\"))||[]),o=e.indexOf(t);if(s.shiftKey)o>0&&(e[o-1].focus(),this.selectAllInCell(e[o-1]));else if(o{e!==t&&e.classList.remove(\"tbl_active\")}),t.classList.add(\"tbl_active\"),this.activeTable=t}clearTableActive(){this.activeTable&&(this.activeTable.classList.remove(\"tbl_active\"),this.activeTable=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".table_wrapper\"),s=null!==e.closest(\"#table_modal\");n||s||this.clearTableActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".table_wrapper\")||this.clearTableActive()},!0)}}const T=[{label:\"Smileys & People\",items:[{char:\"😀\",name:\"grinning face\",shortcode:\":grinning:\"},{char:\"😃\",name:\"big eyes smile\",shortcode:\":smiley:\"},{char:\"😄\",name:\"smiling eyes grin\",shortcode:\":smile:\"},{char:\"😁\",name:\"beaming grin\",shortcode:\":grin:\"},{char:\"😆\",name:\"squinting laugh\",shortcode:\":laughing:\"},{char:\"😅\",name:\"sweat smile\",shortcode:\":sweat_smile:\"},{char:\"🤣\",name:\"rolling floor laughing\",shortcode:\":rofl:\"},{char:\"😂\",name:\"tears of joy\",shortcode:\":joy:\"},{char:\"🙂\",name:\"slightly smiling\",shortcode:\":slightly_smiling_face:\"},{char:\"😊\",name:\"smiling eyes blush\",shortcode:\":blush:\"}]}],L=\"recent_emojies\";class A{constructor(){this.isOpen=!1,this.popup=this.buildPopup(),this.gridArea=this.popup.querySelector(\".emoji_grid\"),this.searchInput=this.popup.querySelector(\".emoji_serch\"),document.body.appendChild(this.popup),document.addEventListener(\"mousedown\",t=>{if(this.isOpen&&!this.popup.contains(t.target)){t.target.closest('[data-action=\"emoji\"]')||this.close()}})}onSelect(t){this.onSelectCallback=t}open(t){const e=t.getBoundingClientRect();let n=e.left+window.scrollX;n+320>window.innerWidth-8&&(n=window.innerWidth-320-8);const s=e.bottom+window.scrollY+4;this.popup.style.left=`${n}px`,this.popup.style.top=`${s}px`,this.popup.style.display=\"flex\",this.isOpen=!0,this.searchInput.value=\"\",this.renderGrid(\"\")}close(){this.popup.style.display=\"none\",this.isOpen=!1}getIsOpen(){return this.isOpen}buildPopup(){const t=document.createElement(\"div\");t.style.cssText=\"\\n position: absolute;\\n display: none;\\n flex-direction: column;\\n width: 320px;\\n max-height: 380px;\\n background: #ffffff;\\n border: 1px solid #dddddd;\\n border-radius: 10px;\\n box-shadow: 0 6px 24px rgba(0,0,0,0.14);\\n z-index: 9999;\\n overflow: hidden;\\n font-family: system-ui, -apple-system, sans-serif;\\n \";const e=document.createElement(\"div\");e.style.cssText=\"\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 10px 12px;\\n border-bottom: 1px solid #f0f0f0;\\n background: #fafafa;\\n \";const n=document.createElement(\"input\");n.type=\"text\",n.placeholder=\"🔍 Search emojis or :shortcode:\",n.className=\"emoji_serch\",n.style.cssText=\"\\n flex: 1;\\n padding: 6px 10px;\\n border: 1px solid #ccc;\\n border-radius: 6px;\\n font-size: 13px;\\n outline: none;\\n background: #fff;\\n \",n.addEventListener(\"input\",()=>this.renderGrid(n.value.trim())),e.appendChild(n);const s=document.createElement(\"div\");return s.className=\"emoji_grid\",s.style.cssText=\"\\n flex: 1;\\n overflow-y: auto;\\n padding: 10px 12px 12px;\\n \",t.appendChild(e),t.appendChild(s),t}getRecentEmojis(){try{const t=localStorage.getItem(L);return t?JSON.parse(t):[]}catch(t){return[]}}saveRecentEmoji(t){const e=this.getRecentEmojis().filter(e=>e.char!==t.char);e.unshift(t),e.length>24&&(e.length=24);try{localStorage.setItem(L,JSON.stringify(e))}catch(t){console.error(\"Problem occur in saving emojies\",t)}}resolveChar(t){return t.char}renderGrid(t){this.gridArea.innerHTML=\"\";const e=t.toLowerCase().replace(/^:/,\"\").replace(/:$/,\"\"),n=(t,e)=>{if(!e.length)return;const n=document.createElement(\"div\");n.style.marginBottom=\"12px\";const s=document.createElement(\"div\");s.textContent=t,s.style.cssText=\"\\n font-size: 11px;\\n font-weight: 600;\\n text-transform: uppercase;\\n letter-spacing: 0.5px;\\n color: #999;\\n margin-bottom: 6px;\\n \",n.appendChild(s);const o=document.createElement(\"div\");o.style.cssText=\"\\n display: grid;\\n grid-template-columns: repeat(8, 1fr);\\n gap: 2px;\\n \",e.forEach(t=>{const e=this.resolveChar(t),n=document.createElement(\"button\");n.textContent=e,n.title=`${t.name} ${t.shortcode}`,n.style.cssText=\"\\n font-size: 20px;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n border-radius: 5px;\\n padding: 4px;\\n line-height: 1.2;\\n transition: background 0.1s;\\n aspect-ratio: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>n.style.background=\"#f0f0f0\"),n.addEventListener(\"mouseleave\",()=>n.style.background=\"transparent\"),n.addEventListener(\"mousedown\",n=>{var s;n.preventDefault(),this.saveRecentEmoji(t),null===(s=this.onSelectCallback)||void 0===s||s.call(this,e)}),o.appendChild(n)}),n.appendChild(o),this.gridArea.appendChild(n)};if(e){const t=[];T.forEach(n=>{n.items.forEach(n=>{(n.name.includes(e)||n.shortcode.includes(e))&&t.push(n)})}),n(`Results for \"${e}\"`,t)}else{const t=this.getRecentEmojis();n(\"Recently Used\",t),T.forEach(t=>n(t.label,t.items))}if(!this.gridArea.querySelector(\"button\")){const t=document.createElement(\"div\");t.textContent=\"No emojis found\",t.style.cssText=\"text-align: center; color: #aaa; padding: 24px 0; font-size: 13px;\",this.gridArea.appendChild(t)}}}class S{constructor(){this.currentLanguage=\"\",this.onSaveCallback=null,this.onCloseCallback=null,this.container=document.createElement(\"div\"),this.container.className=\"code_editor_modal\",this.container.style.display=\"none\";const t=document.createElement(\"div\");t.className=\"code_editor_modal_content\";const e=document.createElement(\"div\");e.className=\"code_editor_modal_header\";const n=document.createElement(\"span\");n.className=\"code_editor_modal_title\";const s=document.createElement(\"div\");s.className=\"code_editor_modal_actions\",this.copyBtn=document.createElement(\"button\"),this.copyBtn.className=\"copy_editor_btn\",this.copyBtn.innerText=\"Copy\",this.copyBtn.onclick=()=>this.handleCopy(),this.saveBtn=document.createElement(\"button\"),this.saveBtn.className=\"copy_editor_btn copy_editor_btn--primary\",this.saveBtn.innerText=\"Save\",this.saveBtn.onclick=()=>this.handleSave(),this.cancelBtn=document.createElement(\"button\"),this.cancelBtn.className=\"copy_editor_btn copy_editor_btn--cancel\",this.cancelBtn.innerText=\"Cancel\",this.cancelBtn.onclick=()=>this.handleClose(),s.appendChild(this.copyBtn),s.appendChild(this.saveBtn),s.appendChild(this.cancelBtn),e.appendChild(n),e.appendChild(s);const o=document.createElement(\"div\");o.className=\"editor_moal_wrapper\",this.lineNumbers=document.createElement(\"div\"),this.lineNumbers.className=\"editor_moal_line_number\",this.pre=document.createElement(\"pre\"),this.pre.className=\"editor_modal_pre_block\",this.pre.setAttribute(\"aria-hidden\",\"true\"),this.codeHighlight=document.createElement(\"code\"),this.codeHighlight.className=\"modal_editor_highlight\",this.pre.appendChild(this.codeHighlight),this.textArea=document.createElement(\"textarea\"),this.textArea.className=\"modal_editor_text_area\",this.textArea.spellcheck=!1,o.appendChild(this.lineNumbers),o.appendChild(this.pre),o.appendChild(this.textArea),t.appendChild(e),t.appendChild(o),this.container.appendChild(t),document.body.appendChild(this.container),this.attachEventListeners()}attachEventListeners(){this.textArea.addEventListener(\"input\",()=>{this.syncHighlight()}),this.textArea.addEventListener(\"scroll\",()=>{this.pre.scrollTop=this.textArea.scrollTop,this.pre.scrollLeft=this.textArea.scrollLeft,this.lineNumbers.scrollTop=this.textArea.scrollTop}),this.textArea.addEventListener(\"keydown\",t=>{if(\"Tab\"===t.key){t.preventDefault();const e=this.textArea.selectionStart,n=this.textArea.selectionEnd;this.textArea.value=this.textArea.value.substring(0,e)+\" \"+this.textArea.value.substring(n),this.textArea.selectionStart=this.textArea.selectionEnd=e+2,this.syncHighlight()}}),this.container.addEventListener(\"click\",t=>{t.target===this.container&&this.handleClose()})}syncHighlight(){const t=this.textArea.value.replace(/&/g,\"&\").replace(//g,\">\");this.codeHighlight.innerHTML=t+\"\\n\"}handleCopy(){navigator.clipboard.writeText(this.textArea.value).then(()=>{const t=this.copyBtn.innerText;this.copyBtn.innerText=\"Copied!\",setTimeout(()=>this.copyBtn.innerText=t,2e3)})}handleSave(){this.onSaveCallback&&this.onSaveCallback(this.textArea.value),this.close()}handleClose(){this.onCloseCallback&&this.onCloseCallback(),this.close()}open(t,e,n,s){this.currentLanguage=e,this.onSaveCallback=n,this.onCloseCallback=s;this.container.querySelector(\".code_editor_modal_title\").innerText=e||\"text\",this.textArea.value=t,this.syncHighlight(),this.container.style.display=\"flex\",setTimeout(()=>this.textArea.focus(),50)}close(){this.container.style.display=\"none\",this.textArea.value=\"\",this.currentLanguage=\"\"}}class R{constructor(t,e){this.modal=null,this.activeLayout=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openLayoutModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"layout_modal\";const e=document.createElement(\"div\");e.className=\"main_modal layout_main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Layout\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Layout\";const o=document.createElement(\"button\");o.className=\"main_modal_close\",o.setAttribute(\"aria-label\",\"Close\"),o.innerHTML=f.close_icon,o.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(o);const i=document.createElement(\"div\");i.className=\"main_modal_body\";const l=document.createElement(\"label\");l.textContent=\"Preset Splits\",l.className=\"input_label\",l.style.display=\"block\",l.style.marginBottom=\"8px\";const a=document.createElement(\"div\");a.style.display=\"flex\",a.style.flexWrap=\"wrap\",a.style.gap=\"8px\",a.style.marginBottom=\"16px\";[{label:\"Single\",cols:1,widths:[100]},{label:\"50 - 50\",cols:2,widths:[50,50]},{label:\"60 - 40\",cols:2,widths:[60,40]},{label:\"40 - 60\",cols:2,widths:[40,60]},{label:\"33 - 33 - 33\",cols:3,widths:[33.33,33.33,33.33]},{label:\"25 - 50 - 25\",cols:3,widths:[25,50,25]}].forEach(t=>{const e=document.createElement(\"button\");e.className=\"modal_close_button modal_close_button_secondary\",e.style.padding=\"4px 8px\",e.style.fontSize=\"12px\",e.textContent=t.label,e.onclick=()=>{this.insertLayout(t.cols,t.widths),this.closeModal()},a.appendChild(e)});const d=document.createElement(\"label\");d.textContent=\"Or Custom Splits (comma separated %)\",d.className=\"input_label\",d.style.display=\"block\",d.style.marginBottom=\"8px\";const r=document.createElement(\"input\");r.type=\"text\",r.className=\"modal_inputs\",r.placeholder=\"e.g. 20, 60, 20\",r.style.width=\"100%\",i.appendChild(l),i.appendChild(a),i.appendChild(d),i.appendChild(r);const c=document.createElement(\"div\");c.className=\"main_modal_footer\";const h=document.createElement(\"button\");h.className=\"modal_close_button modal_close_button_secondary\",h.textContent=\"Cancel\",h.type=\"button\",h.onclick=()=>this.closeModal();const u=document.createElement(\"button\");u.className=\"modal_close_button modal_close_button_primary\",u.textContent=\"Insert Custom\",u.type=\"button\",u.onclick=()=>{const t=r.value.trim();if(t){const e=t.split(\",\").map(t=>parseFloat(t.trim())).filter(t=>!isNaN(t));if(e.length>0){const t=e.reduce((t,e)=>t+e,0),n=e.map(e=>e/t*100);this.insertLayout(n.length,n)}else this.insertLayout(2,[50,50])}else this.insertLayout(2,[50,50]);this.closeModal()},c.appendChild(h),c.appendChild(u),e.appendChild(n),e.appendChild(i),e.appendChild(c),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertLayout(t,e){const s=`data-id-${Date.now()}`,o=`data-id-${Date.now()+1}`,i=document.createElement(\"div\");i.className=\"layout_wrapper\",i.setAttribute(\"data-type\",\"layout\"),i.setAttribute(\"data-id\",s),i.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),i.appendChild(l);const d=document.createElement(\"div\");d.className=\"layout_container\",d.style.display=\"flex\",d.style.width=\"100%\",d.style.gap=\"10px\";for(let n=0;nt.dataId===this.document.selectedBlockId);-1!==t&&(r=t+1)}const c={dataId:s,type:\"layout\",element:i},h={dataId:o,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(r,0,c,h),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=i.querySelector(\".layout_column\");t&&(t.focus(),this.setActiveLayout(i.querySelector(\".layout_container\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\".layout_container\");e&&this.setActiveLayout(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\".layout_container\"))||void 0===n?void 0:n.querySelectorAll(\".layout_column\"))||[]),o=e.indexOf(t);if(s.shiftKey)o>0&&(e[o-1].focus(),this.selectAllInCell(e[o-1]));else if(o{e!==t&&e.classList.remove(\"layout_active\")}),t.classList.add(\"layout_active\"),this.activeLayout=t}clearLayoutActive(){this.activeLayout&&(this.activeLayout.classList.remove(\"layout_active\"),this.activeLayout=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".layout_wrapper\"),s=null!==e.closest(\"#layout_modal\");n||s||this.clearLayoutActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".layout_wrapper\")||this.clearLayoutActive()},!0)}}class B{constructor(t,e){this.modal=null,this.isKatexLoaded=!1,this.editingBlockId=null,this.editor=t,this.document=e,this.loadKatex()}loadKatex(){if(\"undefined\"!=typeof katex)return void(this.isKatexLoaded=!0);if(document.getElementById(\"katex-js\"))return;const t=document.createElement(\"link\");t.rel=\"stylesheet\",t.href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\",document.head.appendChild(t);const e=document.createElement(\"script\");e.id=\"katex-js\",e.src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\",e.onload=()=>{this.isKatexLoaded=!0},document.head.appendChild(e)}openMathModal(t=\"\",e=null){if(!this.isKatexLoaded)return void alert(\"Math rendering engine is still loading. Please try again in a moment.\");this.editingBlockId=e,this.modal&&(this.modal.remove(),this.modal=null);const n=document.createElement(\"div\");n.className=\"table_modal\",n.id=\"math_modal\";const s=document.createElement(\"div\");s.className=\"main_modal\",s.setAttribute(\"role\",\"dialog\"),s.setAttribute(\"aria-modal\",\"true\"),s.setAttribute(\"aria-label\",\"Insert Equation\"),s.style.width=\"400px\",s.style.height=\"390px\",s.style.maxHeight=\"90vh\",s.style.position=\"fixed\",s.style.top=\"90px\",s.style.right=\"-90px\",s.style.margin=\"0\";const o=document.createElement(\"div\");o.className=\"main_modal_header\";const i=document.createElement(\"h3\");i.className=\"main_modal_title\",i.textContent=this.editingBlockId?\"Edit Equation\":\"Insert Equation\";const l=document.createElement(\"button\");l.className=\"main_modal_close\",l.setAttribute(\"aria-label\",\"Close\"),l.innerHTML=f.close_icon,l.onclick=()=>this.closeModal(),o.appendChild(i),o.appendChild(l);const a=document.createElement(\"div\");a.className=\"main_modal_body\";const d=document.createElement(\"label\");d.textContent=\"LaTeX Input:\",d.className=\"input_label\",d.style.display=\"block\",d.style.marginBottom=\"8px\";const r=document.createElement(\"textarea\");r.className=\"modal_inputs\",r.style.width=\"100%\",r.style.height=\"80px\",r.style.resize=\"vertical\",r.placeholder=\"e.g. c = \\\\pm\\\\sqrt{a^2 + b^2}\",r.value=t;const c=document.createElement(\"label\");c.textContent=\"Preview:\",c.className=\"input_label\",c.style.display=\"block\",c.style.marginTop=\"16px\",c.style.marginBottom=\"8px\";const h=document.createElement(\"div\");h.style.padding=\"10px\",h.style.border=\"1px solid #ccc\",h.style.borderRadius=\"4px\",h.style.minHeight=\"50px\",h.style.display=\"flex\",h.style.alignItems=\"center\",h.style.justifyContent=\"center\",h.style.overflowX=\"auto\";const u=()=>{try{katex.render(r.value||\"Preview\",h,{throwOnError:!1})}catch(t){console.error(\"error\",t),h.textContent=\"Invalid LaTeX\"}};r.addEventListener(\"input\",u),a.appendChild(d),a.appendChild(r),a.appendChild(c),a.appendChild(h);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Apply Equation\",g.type=\"button\",g.onclick=()=>{r.value.trim()&&this.insertEquation(r.value.trim()),this.closeModal()},p.appendChild(m),p.appendChild(g),s.appendChild(o),s.appendChild(a),s.appendChild(p),n.appendChild(s),n.addEventListener(\"click\",t=>{t.target===n&&this.closeModal()}),document.body.appendChild(n),this.modal=n,requestAnimationFrame(()=>{n.classList.add(\"table_modal_visible\"),r.focus(),u()})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null,this.editingBlockId=null},200))}insertEquation(t){const e=katex.renderToString(t,{output:\"mathml\"});if(this.editingBlockId){const n=this.document.blocks.find(t=>t.dataId===this.editingBlockId);if(n&&n.element){const s=n.element.querySelector(\".math_node\");s&&(s.innerHTML=e,s.dataset.latex=t)}return void this.document.emit(\"documentChanged\",this.document)}const s=`data-id-${Date.now()}`,o=document.createElement(\"div\");o.setAttribute(\"data-id\",s),o.setAttribute(\"contenteditable\",\"false\"),o.style.display=\"inline-flex\",o.style.alignItems=\"center\",o.style.gap=\"6px\",o.style.margin=\"4px\",o.style.cursor=\"pointer\",o.style.position=\"relative\";const i=document.createElement(\"button\");i.className=\"table_delete_button\",i.innerHTML=f.close_icon,i.style.cursor=\"pointer\",i.style.opacity=\"0\",i.style.transition=\"opacity 0.2s\",o.onmouseenter=()=>{i.style.opacity=\"1\"},o.onmouseleave=()=>{i.style.opacity=\"0\"},i.onclick=t=>{t.stopPropagation();const e=this.document.blocks.findIndex(t=>t.dataId===s);-1!==e&&(this.document.blocks.splice(e,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))};const l=document.createElement(\"span\");l.className=\"math_node\",l.dataset.latex=t,l.innerHTML=e,o.onclick=e=>{e.stopPropagation(),this.openMathModal(t,s)},o.appendChild(l),o.appendChild(i);let a=this.document.blocks.length;if(this.document.selectedBlockId){const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);-1!==t&&(a=t+1)}const d={dataId:s,type:\"math\",element:o},r={dataId:`data-id-${Date.now()+1}`,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(a,0,d,r),this.document.selectedBlockId=r.dataId,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document)}}class O{constructor(t){this.isSpeaking=!1,this.synth=window.speechSynthesis,this.onStateChange=t}getHindiVoice(){return this.synth.getVoices().find(t=>\"Google हिन्दी\"===t.name||\"hi-IN\"===t.lang)||null}speak(t){if(!t||\"\"===t.trim())return;this.synth.speaking&&this.synth.cancel();const e=new SpeechSynthesisUtterance(t),n=this.getHindiVoice();n&&(e.voice=n,e.lang=\"hi-IN\"),e.onstart=()=>{this.isSpeaking=!0,this.onStateChange(!0)},e.onend=()=>{this.isSpeaking=!1,this.onStateChange(!1)},e.onerror=()=>{this.isSpeaking=!1,this.onStateChange(!1)},this.synth.speak(e)}stop(){this.synth.speaking&&(this.synth.cancel(),this.isSpeaking=!1,this.onStateChange(!1))}toggle(t){this.isSpeaking?this.stop():this.speak(t)}}class N extends e{constructor(t,e){var o,i,l,r,g,b,y,T,L,N,H,M,P,D;super(),this.savedSelection=null,this.debounceTimer=null;const{mainEditorId:z,toolbarId:V,popupToolbarId:F}=C(t,e);this.editorContainer=document.getElementById(z)||null,this.toolbarContainer=document.getElementById(V)||null;const j=document.getElementById(F)||null;if(!this.editorContainer||!this.toolbarContainer||!j)throw new Error(\"Editor element not found or incorrect element type.\");this.document=new s,this.editorView=new c(this.editorContainer,this.document),this.toolbarView=new h(this.toolbarContainer),this.popupToolbarView=new x(j),this.linkPopupView=new E,this.hyperlinkHandler=new p(this.editorContainer,this.editorView,this.document),this.imageHandler=new v(this.editorContainer,this.document),this.undoRedoManager=new I(this.document,this.editorView),this.editorView.setImageHandler(this.imageHandler),this.imageHandler.setEditorView(this.editorView),this.document.setEditorView(this.editorView),this.document.setUndoRedoManager(this.undoRedoManager),this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager),this.linkPopupView.setCallbacks(t=>this.openLink(t),t=>this.unlinkText(t)),this.insertTableHandler=new _(this.editorView.container,this.document),this.insertLayoutHandler=new R(this.editorView.container,this.document),this.insertMathHandler=new B(this.editorView.container,this.document),this.textToSpeechHandler=new O(t=>{const e=document.getElementById(\"textToSpeech\");e&&(e.innerHTML=t?f.speaker_off:f.speaker_on,e.dataset.tooltip=t?\"stop Reading\":\"start Reading\")}),this.speechToTextHandler=new w(this.document,this.editorView,t=>{const e=document.getElementById(\"speechToText\");e&&(e.innerHTML=t?f.stop_microphone:f.start_microphone,e.dataset.tooltip=t?\"stop\":\"start\")},t=>{const[e,n]=this.getSelectionRange();n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId,this.document.currentOffset);let s=e;this.document.insertAt(t,Object.assign({},this.currentAttributes),s,this.document.selectedBlockId,0,\"\",\"batch\"),s+=t.length,this.setCursorPosition(s)});const U=document.getElementById(\"speechToText\");U&&(U.innerHTML=\"\",U.insertAdjacentHTML(\"afterbegin\",f.start_microphone),U.dataset.tooltip=\"start\");const q=document.getElementById(\"textToSpeech\");q&&(q.innerHTML=\"\",q.insertAdjacentHTML(\"afterbegin\",f.speaker_on),q.dataset.tooltip=\"start Reading\"),this.emojiPickerView=new A,this.codeEditorModal=new S,this.emojiPickerView.onSelect(t=>{var e,n,s,o;const i=null!==(n=null===(e=this.savedSelection)||void 0===e?void 0:e.start)&&void 0!==n?n:0,l=null!==(o=null===(s=this.savedSelection)||void 0===s?void 0:s.end)&&void 0!==o?o:i;l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset,!1),this.document.insertAt(t,Object.assign({},this.currentAttributes),i,this.document.selectedBlockId,0,\"\",\"batch\");const a=i+t.length;this.savedSelection={start:a,end:a},this.setCursorPosition(a)}),this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,undo:!1,redo:!1,hyperlink:!1},this.manualOverride=!1,this.lastPiece=null,this.toolbarView.on(\"toolbarAction\",(t,e=[])=>this.handleToolbarAction(t,e)),this.popupToolbarView.on(\"popupAction\",t=>this.handleToolbarAction(t)),this.document.on(\"documentChanged\",()=>{if(0===this.document.blocks.length||1===this.document.blocks.length&&this.document.blocks[0].pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)){const t=document.getElementById(\"loadHtmlButton\");t&&(t.selectedIndex=0)}this.editorView.render()}),this.document.on(\"documentChanged\",()=>{var t;const e=this.document.getHtmlContent();this.emit(\"contentChange\",{html:e,text:(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"})}),this.editorContainer.addEventListener(\"dblclick\",t=>{const e=t.target.closest(\".code_block_wrapper\");if(e){t.preventDefault();const n=e.getAttribute(\"data-id\");if(!n)return;const s=this.document.blocks.find(t=>t.dataId===n);s&&\"code\"===s.type&&this.codeEditorModal.open(s.code||\"\",s.language||\"text\",t=>{s.code=t,this.document.emit(\"documentChanged\",this.document)},()=>{var t;null===(t=this.editorContainer)||void 0===t||t.focus()})}}),this.editorContainer.addEventListener(\"keydown\",t=>{this.syncCurrentAttributesWithCursor(),this.handleKeydown(t)}),this.editorContainer.addEventListener(\"keyup\",()=>this.syncCurrentAttributesWithCursor()),this.editorContainer.addEventListener(\"blur\",()=>{this.hyperlinkHandler.hideHyperlinkViewButton()}),document.addEventListener(\"mouseup\",()=>{this.syncCurrentAttributesWithCursor();const t=this.document.getAllSelectedDataIds();console.log(t,\"dataId lntgerr\")}),document.addEventListener(\"selectionchange\",()=>{const t=window.getSelection();t&&!t.isCollapsed||(this.document.dataIds=[],this.document.selectAll=!1)}),null===(o=document.getElementById(\"fontColor\"))||void 0===o||o.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorWrapper\"),n=document.getElementById(\"fontColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(i=document.getElementById(\"fontColorPicker\"))||void 0===i||i.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),o=document.getElementById(\"fontColorIndicator\");o&&(o.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.applyFontColor(o,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyFontColor(n,s,e)},300))}),null===(l=document.getElementById(\"colorResetFont\"))||void 0===l||l.addEventListener(\"click\",()=>{const t=document.getElementById(\"fontColorPicker\"),e=document.getElementById(\"fontColorIndicator\");t&&(t.value=\"#000000\",e&&(e.style.backgroundColor=\"#000000\"),t.dispatchEvent(new Event(\"input\")))}),document.addEventListener(\"click\",t=>{var e;const n=t.target,s=document.getElementById(\"colorWrapper\"),o=document.getElementById(\"colorBgWrapper\"),i=document.getElementById(\"fontColor\"),l=document.getElementById(\"bgColor\");!s||n.closest(\"#colorWrapper\")||n===i||(null==i?void 0:i.contains(n))||(s.style.display=\"none\"),!o||n.closest(\"#colorBgWrapper\")||n===l||(null==l?void 0:l.contains(n))||(o.style.display=\"none\"),(null===(e=this.editorContainer)||void 0===e?void 0:e.contains(n))||n.closest(\".hyperlink-popup\")||this.hyperlinkHandler.hideHyperlinkViewButton()}),null===(r=document.getElementById(\"bgColor\"))||void 0===r||r.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorBgWrapper\"),n=document.getElementById(\"bgColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(g=document.getElementById(\"bgColorPicker\"))||void 0===g||g.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),o=document.getElementById(\"bgColorIndicator\");o&&(o.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.applyBgColor(o,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyBgColor(n,s,e)},300))}),null===(b=document.getElementById(\"colorResetBG\"))||void 0===b||b.addEventListener(\"click\",()=>{const t=document.getElementById(\"bgColorPicker\"),e=document.getElementById(\"bgColorIndicator\");t&&(t.value=\"#ffffff\",e&&(e.style.backgroundColor=\"#ffffff\"),t.dispatchEvent(new Event(\"input\")))}),null===(y=document.getElementById(\"getHtmlButton\"))||void 0===y||y.addEventListener(\"click\",t=>{const e=this.document.getHtmlContent(!0);console.log(\"Editor HTML Content:\",e),this.htmlToJsonParser=new k(e);const n=this.htmlToJsonParser.parse();console.log(\"htmltoJson\",JSON.stringify(n,null,2),n),this.showAcknowledgement(\"HTML copied to clipboard\",2e3)}),null===(T=document.getElementById(\"loadHtmlButton\"))||void 0===T||T.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target,n=e.options[e.selectedIndex].dataset.html||u.TEST_HTML_CODE;this.htmlToJsonParser=new k(n),console.log(this.htmlToJsonParser,\"this.htmlToJsonParser\");const s=this.htmlToJsonParser.parse();this.document.blocks=s,s.length>0&&(this.document.dataIds[0]=s[0].dataId,this.document.selectedBlockId=s[0].dataId),this.document.emit(\"documentChanged\",this);const[o]=this.getSelectionRange();this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let n=o-e;t.fontSize&&this.document.setFontSize(n,e,t.fontSize)}}),console.log(\"blocks\",this.document.blocks,this.document.dataIds,this.document.currentOffset),console.log(\"htmltoJson\",JSON.stringify(s,null,2),s)}),null===(L=document.getElementById(\"fontFamily\"))||void 0===L||L.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.setFontFamily(o,s,e)}}):this.document.setFontFamily(n,s,e)}),null===(N=document.getElementById(\"fontSize\"))||void 0===N||N.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.setFontSize(o,s,e)}}):this.document.setFontSize(n,s,e)}),null===(H=document.getElementById(\"heading\"))||void 0===H||H.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value||null;if(this.document.dataIds.length>1)this.document.toggleHeadingForMultipleBlocks(this.document.dataIds,e);else{const t=this.document.selectedBlockId||this.document.dataIds[0];t&&this.document.toggleHeading(t,e)}}),null===(M=document.getElementById(\"alignLeft\"))||void 0===M||M.addEventListener(\"click\",()=>{console.log(\"alignment alignLeft\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"left\",t))}),null===(P=document.getElementById(\"alignCenter\"))||void 0===P||P.addEventListener(\"click\",()=>{console.log(\"alignment alignCenter\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"center\",t))}),null===(D=document.getElementById(\"alignRight\"))||void 0===D||D.addEventListener(\"click\",()=>{console.log(\"alignment alignRight\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"right\",t))}),this.editorContainer.addEventListener(\"keydown\",t=>{if((t.ctrlKey||t.metaKey)&&!t.altKey){const e=t.key.toLowerCase();if([\"b\",\"i\",\"u\",\"h\"].includes(e)){t.preventDefault();let n=\"b\";switch(e){case\"b\":n=\"bold\";break;case\"i\":n=\"italic\";break;case\"u\":n=\"underline\";break;case\"h\":n=\"hyperlink\"}this.handleToolbarAction(n)}if(\"z\"===e?(t.preventDefault(),this.undoRedoManager.undo()):\"y\"===e&&(t.preventDefault(),this.undoRedoManager.redo()),\"a\"===e){const t=this.document.handleCtrlASelection();this.document.selectAll=!0,console.log(\"Selected text is inside element with data-id:\",t)}\"l\"===t.key?(t.preventDefault(),this.document.setAlignment(\"left\",this.document.selectedBlockId)):\"e\"===t.key?(t.preventDefault(),this.document.setAlignment(\"center\",this.document.selectedBlockId)):\"r\"===t.key&&(t.preventDefault(),this.document.setAlignment(\"right\",this.document.selectedBlockId))}}),document.addEventListener(\"selectionchange\",this.handleSelectionChange.bind(this)),this.editorContainer.addEventListener(\"click\",t=>{const e=t.target;if(\"A\"===e.tagName||e.closest(\"a\")){t.preventDefault(),t.stopPropagation();const n=\"A\"===e.tagName?e:e.closest(\"a\");this.showLinkPopup(n,t.clientX,t.clientY)}else this.hideLinkPopup()}),document.addEventListener(\"click\",t=>{this.linkPopupView.isPopup(t.target)||this.hideLinkPopup()}),this.document.emit(\"documentChanged\",this.document),this.editorContainer.addEventListener(\"paste\",t=>{var e,s;this.undoRedoManager.saveUndoSnapshot(),t.preventDefault();const o=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"text/html\"),[i,l]=this.getSelectionRange();l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset);let r=[];if(o)r=m(o);else{const e=function(t){const e=[];let n,s=0;for(;null!==(n=a.exec(t));){const o=n.index;let i=n[0],l=\"\";const a=i.match(/[.,!?;:)\\]\\}\"']+$/);if(a&&(l=a[0],i=i.slice(0,-l.length)),d(t,o))continue;o>s&&e.push({text:t.substring(s,o),isUrl:!1});let r=i;r.startsWith(\"http\")||(r=\"https://\"+r),e.push({text:i,isUrl:!0,url:r}),l&&e.push({text:l,isUrl:!1}),s=o+n[0].length}return st.isUrl&&t.url?new n(t.text,Object.assign(Object.assign({},this.currentAttributes),{hyperlink:t.url})):new n(t.text,Object.assign({},this.currentAttributes)))}let c=i;for(const t of r)this.document.insertAt(t.text,Object.assign({},t.attributes),c,this.document.selectedBlockId,0,\"\",\"batch\"),c+=t.text.length;this.setCursorPosition(c)}),this.editorContainer.addEventListener(\"dragover\",t=>{t.preventDefault()}),this.editorContainer.addEventListener(\"drop\",t=>{var e,s;t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const o=null===(e=t.dataTransfer)||void 0===e?void 0:e.getData(\"text/html\"),[i,l]=this.getSelectionRange();l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset);let a=[];if(o)a=m(o);else{const e=(null===(s=t.dataTransfer)||void 0===s?void 0:s.getData(\"text/plain\"))||\"\";a=[new n(e,Object.assign({},this.currentAttributes))]}let d=i;for(const t of a)this.document.insertAt(t.text,Object.assign({},t.attributes),d,this.document.selectedBlockId,0,\"\",\"batch\"),d+=t.text.length;this.setCursorPosition(d)})}getSelectionRange(){const t=o(this.editorView.container);return t?[t.start,t.end]:[0,0]}applyFontColor(t){const e=window.getSelection();if(!e||0===e.rangeCount)return;e.getRangeAt(0).toString()}handleToolbarAction(t,e=[]){const[n,s]=this.getSelectionRange();switch(t){case\"orderedList\":if(this.document.dataIds.length>1)this.document.toggleOrderedListForMultipleBlocks(this.document.dataIds);else{const t=this.document.selectedBlockId||this.document.dataIds[0];this.document.toggleOrderedList(t)}this.document.updateOrderedListNumbers();break;case\"unorderedList\":this.document.dataIds.forEach(t=>{this.document.toggleUnorderedList(t)});break;case\"image\":this.imageHandler.insertImage();break;case\"speechToText\":this.speechToTextHandler.toggleRecording();break;case\"insert_table\":this.insertTableHandler.openTableModal();break;case\"insert_layout\":this.insertLayoutHandler.openLayoutModal();break;case\"insert_math\":this.insertMathHandler.openMathModal();break;case\"emoji\":this.savedSelection=o(this.editorView.container);const e=document.querySelector('[data-action=\"emoji\"]');e.addEventListener(\"mousedown\",t=>{t.preventDefault()}),e&&this.emojiPickerView.open(e);break;case\"textToSpeech\":const i=this.getTextForSpeech();if(!i)return void console.warn(\"Nothing to read\");this.textToSpeechHandler.toggle(i);break;default:if(n1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleBoldRange(s,e)}}):this.document.toggleBoldRange(n,s);break;case\"italic\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleItalicRange(s,e)}}):this.document.toggleItalicRange(n,s);break;case\"underline\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleUnderlineRange(s,e)}}):this.document.toggleUnderlineRange(n,s);break;case\"strikethrough\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleStrikethroughRange(s,e)}}):this.document.toggleStrikethroughRange(n,s);break;case\"subscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSubscriptRange(s,e)}}):this.document.toggleSubscriptRange(n,s);break;case\"superscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSuperscriptRange(s,e)}}):this.document.toggleSuperscriptRange(n,s);break;case\"hyperlink\":this.hyperlinkHandler.hanldeHyperlinkClick(n,s,this.document.currentOffset,this.document.selectedBlockId,this.document.blocks)}else this.currentAttributes[t]=!this.currentAttributes[t],this.manualOverride=!0}this.toolbarView.updateActiveStates(this.currentAttributes)}handleSelectionChange(){var t,e,n;const s=window.getSelection();if(!s||0===s.rangeCount||!(null===(t=this.editorContainer)||void 0===t?void 0:t.contains(s.anchorNode)))return this.hyperlinkHandler.hideHyperlinkViewButton(),void this.popupToolbarView.hide();const o=(null===(e=s.anchorNode)||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE?s.anchorNode.parentElement:s.anchorNode;if(null==o?void 0:o.closest(\".tblCell\"))return void this.popupToolbarView.hide();const i=document.getElementById(\"textToSpeech\");s&&!s.isCollapsed&&s.toString().trim()?null==i||i.classList.remove(\"hidden\"):null==i||i.classList.add(\"hidden\");const[l]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=l,s.isCollapsed?(this.document.dataIds=[],this.document.selectAll=!1,this.popupToolbarView.hide()):(this.document.getAllSelectedDataIds(),this.document.dataIds.length===this.document.blocks.length&&this.document.blocks.length>0&&(this.document.selectAll=!0),this.popupToolbarView.show(s)),!s||0===s.rangeCount)return;s&&!0===s.isCollapsed&&(this.document.dataIds=[],this.document.selectAll=!1);const a=s.getRangeAt(0),d=(null===(n=a.startContainer.parentElement)||void 0===n?void 0:n.closest(\"[data-id]\"))||a.startContainer;if(d instanceof HTMLElement){const t=d.getAttribute(\"data-id\")||(a.startContainer instanceof HTMLElement?a.startContainer.getAttribute(\"data-id\"):null);if(t){const e=this.document.blocks.find(e=>e.dataId===t);e&&\"table\"!==e.type&&(this.document.selectedBlockId=t)}}this.syncCurrentAttributesWithCursor()}handleKeydown(t){var e,s;const[o,i]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=o,(\"Enter\"===t.key||\" \"===t.key)&&this.document.selectedBlockId){const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1!==e){const s=this.document.blocks[e];if(\"text\"===s.type&&Array.isArray(s.pieces)){const o=s.pieces.map(t=>t.text).join(\"\").replace(/\\u200B/g,\"\").trim().match(/^```([a-zA-Z0-9_\\-\\+]*)$/);if(o){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot(),s.type=\"code\",s.language=o[1]||\"text\",s.code=\"\",s.pieces=[],s.class=\"code_block_wrapper\";const i=`data-id-${Date.now()}`;return this.document.blocks.splice(e+1,0,{dataId:i,class:\"paragraph-block\",pieces:[new n(\"​\",{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1})],type:\"text\"}),this.document.selectedBlockId=i,this.document.emit(\"documentChanged\",this.document),void setTimeout(()=>{this.setCursorPosition(this.document.currentOffset+1,i)},0)}}}}if(\"Enter\"===t.key){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const s=`data-id-${Date.now()}`,l=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId),a=this.document.blocks[l],d=(null===(e=null==a?void 0:a.pieces)||void 0===e?void 0:e.length)>0?a.pieces[a.pieces.length-1]:null,r=d?Object.assign({},d.attributes):{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1};if(a&&\"image\"===a.type)this.document.blocks.splice(l+1,0,{dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",r)],type:\"text\"}),this.document.emit(\"documentChanged\",this),this.imageHandler.setCursorPostion(1,s);else if(!a||\"ol\"!==a.listType&&\"ul\"!==a.listType&&\"li\"!==a.listType){const t=this.getCurrentCursorBlock(),e=null==t?void 0:t.toString();if(e&&a&&\"text\"===a.type){const t=o-this.document.currentOffset,i=[],l=[];let d=0;for(const e of a.pieces){const s=d+e.text.length;if(s<=t)i.push(e.clone());else if(d>=t)l.push(e.clone());else{const s=t-d,o=e.text.slice(0,s),a=e.text.slice(s);o&&i.push(new n(o,Object.assign({},e.attributes))),a&&l.push(new n(a,Object.assign({},e.attributes)))}d=s}a.pieces=i.length>0?i:[new n(\"​\",r)];const c=l.length>0?l:[new n(\"​\",r)],h=this.addBlockAfter(this.document.blocks,e,{dataId:s,class:\"paragraph-block\",pieces:c,type:\"text\"});this.document.blocks=h}else this.document.blocks.push({dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",r)],type:\"text\"})}else{let t=[new n(\"​\",r)];const e=o-this.document.currentOffset;if(\"text\"===a.type&&a.pieces){const s=[],o=[];let i=0;for(const t of a.pieces){const l=i+t.text.length;if(l<=e)s.push(t.clone());else if(i>=e)o.push(t.clone());else{const l=e-i,a=t.text.slice(0,l),d=t.text.slice(l);a&&s.push(new n(a,Object.assign({},t.attributes))),d&&o.push(new n(d,Object.assign({},t.attributes)))}i=l}a.pieces=s.length>0?s:[new n(\"​\",r)],t=o.length>0?o:[new n(\"​\",r)]}let i={dataId:s,class:\"paragraph-block\",pieces:t,type:\"text\"},d=\"\";if(\"ol\"===a.listType?(i.listType=\"li\",i.listStart=a.listStart+1,i.parentId=a.dataId,d=a.dataId):\"li\"===a.listType?(i.listType=\"li\",i.listStart=a.listStart+1,i.parentId=a.parentId,d=a.parentId):\"ul\"===a.listType&&(i.listType=\"ul\",i.parentId=a.parentId||a.dataId),this.document.blocks.splice(l+1,0,i),\"ol\"===a.listType||\"li\"===a.listType)for(let t=l+2;tt.dataId===this.imageHandler.highLightedImageDataId);return this.imageHandler.deleteImage(),void this.imageHandler.setCursorPostion(1,this.document.blocks[t-1].dataId)}const e=window.getSelection();console.log(e,\"selection lntgerr\");if((this.document.selectAll||this.document.dataIds.length===this.document.blocks.length&&this.document.dataIds.length>0||this.document.dataIds.length>1)&&!(null===(s=window.getSelection())||void 0===s?void 0:s.isCollapsed)){this.undoRedoManager.saveUndoSnapshot();const t=this.document.dataIds[0],e=this.document.blocks.findIndex(e=>e.dataId===t);this.document.deleteBlocks();let s=null,o=0;if(0===this.document.blocks.length){const t=`data-id-${Date.now()}`;this.document.blocks.push({dataId:t,class:\"paragraph-block\",pieces:[new n(\" \")],type:\"text\"}),s=t,o=0,this.editorView.render()}else if(et+e.text.length,0)}return void this.setCursorPosition(o,s)}if(i>o){this.undoRedoManager.saveUndoSnapshot();const t=Math.min(this.document.currentOffset,o);this.document.deleteRange(o,i,this.document.selectedBlockId,t,!0),this.setCursorPosition(o-1);const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);console.log(e,\"index lntgerr\");if(null===document.querySelector(`[data-id=\"${this.document.selectedBlockId}\"]`)){let t=0;console.log(t,\" listStart lntgerr\");const e=this.document.blocks.map((e,n)=>(void 0===(null==e?void 0:e.listType)&&null===(null==e?void 0:e.listType)||(\"ol\"===(null==e?void 0:e.listType)?(t=1,e.listStart=1):\"li\"===(null==e?void 0:e.listType)&&(t+=1,e.listStart=t)),e));console.log(e,\"blocks lntgerr\"),this.document.emit(\"documentChanged\",this)}}else if(o===i&&o>0){const t=this.editorView.container.textContent||\"\";let e=o-1;if(o>=2){const n=t.charCodeAt(o-1),s=t.charCodeAt(o-2);n>=56320&&n<=57343&&s>=55296&&s<=56319&&(e=o-2)}this.document.deleteRange(e,o,this.document.selectedBlockId,this.document.currentOffset,!0),this.setCursorPosition(e)}}else if(1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey){if(\"Delete\"===t.key){if(t.preventDefault(),o===i){if(this.undoRedoManager.saveUndoSnapshot(),i>o){const t=Math.min(this.document.currentOffset,o);this.document.deleteRange(o,i,this.document.selectedBlockId,t),this.setCursorPosition(o)}else if(i>o)return this.undoRedoManager.saveUndoSnapshot(),void this.document.deleteRange(o,i,this.document.selectedBlockId);const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1===t)return;const e=this.document.blocks[t].pieces.reduce((t,e)=>t+e.text.length,0);o-this.document.currentOffseto&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(o,i,this.document.selectedBlockId),this.setCursorPosition(o))}this.hyperlinkHandler.hideHyperlinkViewButton()}}else t.preventDefault(),i>o&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(o,i,this.document.selectedBlockId,this.document.currentOffset,!1)),console.log(\"insertat\",t.key,this.currentAttributes,o,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.document.insertAt(t.key,this.currentAttributes,o,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.setCursorPosition(o+1)}extractTextFromDataId(t){const e=window.getSelection();if(console.log(\"selection::\",e),!e||0===e.rangeCount)return{remainingText:\"\",piece:null};const n=e.getRangeAt(0).startContainer;let s=\"\";console.log(0,\"count lntgerr\");const o=this.document.blocks.filter(e=>{if(e.dataId===t)return e}),i=document.querySelector(`[data-id=\"${t}\"]`),l=this.document.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let a=[],d=0;if(o[0].pieces.forEach((t,e)=>{s+=t.text,(null==l?void 0:l.innerText)===t.text&&(d=e,a.push(t))}),o[0].pieces.length>1&&o[0].pieces.forEach((t,e)=>{dt.dataId===e);if(-1===s)return console.error(`Block with dataId \"${e}\" not found.`),t;return[...t.slice(0,s+1),n,...t.slice(s+1)]}syncCurrentAttributesWithCursor(){var t,e;const n=window.getSelection();if(n&&n.rangeCount>0){const e=(null===(t=n.anchorNode)||void 0===t?void 0:t.nodeType)===Node.TEXT_NODE?n.anchorNode.parentElement:n.anchorNode;if(null==e?void 0:e.closest(\".tblCell\"))return}const[s,o]=this.getSelectionRange();console.log(\"log1\",{start:s,end:o});const i=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(\"image\"===(null===(e=this.document.blocks[i])||void 0===e?void 0:e.type)?this.imageHandler.addStyleToImage(this.document.selectedBlockId||\"\"):this.imageHandler.isImageHighlighted&&this.imageHandler.clearImageStyling(),s===o){const t=this.document.findPieceAtOffset(s,this.document.selectedBlockId);t?(t!==this.lastPiece&&(this.manualOverride=!1,this.lastPiece=t),this.manualOverride||(this.currentAttributes={bold:t.attributes.bold,italic:t.attributes.italic,underline:t.attributes.underline,strikethrough:t.attributes.strikethrough||!1,subscript:t.attributes.subscript||!1,superscript:t.attributes.superscript||!1,hyperlink:t.attributes.hyperlink||!1,fontFamily:t.attributes.fontFamily,fontSize:t.attributes.fontSize,fontColor:t.attributes.fontColor,bgColor:t.attributes.bgColor},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.hyperlinkHandler.hideHyperlinkViewButton()):(this.hyperlinkHandler.hideHyperlinkViewButton(),this.manualOverride||(this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.lastPiece=null)}else{this.hyperlinkHandler.hideHyperlinkViewButton();const t=this.document.isRangeEntirelyAttribute(s,o,\"bold\"),e=this.document.isRangeEntirelyAttribute(s,o,\"italic\"),n=this.document.isRangeEntirelyAttribute(s,o,\"underline\"),i=this.document.isRangeEntirelyAttribute(s,o,\"strikethrough\"),l=this.document.isRangeEntirelyAttribute(s,o,\"subscript\"),a=this.document.isRangeEntirelyAttribute(s,o,\"superscript\");this.currentAttributes={bold:t,italic:e,underline:n,strikethrough:i,subscript:l,superscript:a,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)}const l=document.getElementById(\"heading\");if(l)if(this.document.selectedBlockId){const t=this.document.blocks.find(t=>t.dataId===this.document.selectedBlockId);t&&t.heading?l.value=t.heading:l.value=\"\"}else l.value=\"\"}setCursorPosition(t,e=\"\"){if(\"\"===e)this.editorView.container.focus();else{const t=document.querySelector('[data-id=\"'+e+'\"]');t&&t.focus()}const n=window.getSelection();if(!n)return;const s=document.createRange();let o=0;const i=[this.editorView.container];let l;for(;l=i.pop();)if(3===l.nodeType){const e=l,n=o+e.length;if(t>=o&&t<=n){s.setStart(e,t-o),s.collapse(!0);break}o=n}else if(\"BR\"===l.tagName){if(t===o){s.setStartBefore(l),s.collapse(!0);break}o++}else{const t=l;let e=t.childNodes.length;for(;e--;)i.push(t.childNodes[e])}n.removeAllRanges(),n.addRange(s)}showAcknowledgement(t,e=2e3){const n=document.getElementById(u.TOAST_ID);n&&n.remove();const s=document.createElement(\"div\");s.id=u.TOAST_ID,s.className=\"ti-toast\",s.textContent=t||u.TOAST_DEFAULT_MESSAGE,document.body.appendChild(s),s.offsetHeight,s.classList.add(u.TOAST_SHOW_CLASS),setTimeout(()=>{s.classList.remove(u.TOAST_SHOW_CLASS),setTimeout(()=>s.remove(),200)},e||u.TOAST_DEFAULT_DURATION_MS)}showLinkPopup(t,e,n){this.linkPopupView.show(t,e,n)}hideLinkPopup(){this.linkPopupView.hide()}openLink(t){window.open(t,\"_blank\"),this.hideLinkPopup()}unlinkText(t){this.undoRedoManager.saveUndoSnapshot();const e=t.textContent||\"\",n=(this.editorView.container.textContent||\"\").indexOf(e);-1!==n&&(this.document.formatAttribute(n,n+e.length,\"hyperlink\",!1),this.editorView.render()),this.hideLinkPopup()}getTextForSpeech(){var t,e;const n=window.getSelection();if(n&&!n.isCollapsed){const t=n.toString().trim();if(t)return t}return(null===(e=null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||void 0===e?void 0:e.trim())||\"\"}onContentChange(t){this.on(\"contentChange\",t)}getContent(){return this.document.getHtmlContent()||\"\"}getTextContent(){var t;return(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"}loadHtmlContent(t){this.undoRedoManager.saveUndoSnapshot(),this.htmlToJsonParser=new k(t);const e=this.htmlToJsonParser.parse();this.document.blocks=e,e.length>0?(this.document.dataIds[0]=e[0].dataId,this.document.selectedBlockId=e[0].dataId):(this.document.dataIds=[],this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document)}}window.TextIgniter=N,t.TextIgniter=N});\n","export * from './component/TextIgniterComponent'","import { TextIgniter } from '@mindfiredigital/textigniter';\nimport '@mindfiredigital/textigniter/dist/styles/text-igniter.css';\n\nexport class TextIgniterComponent extends HTMLElement {\n private textIgniter!: TextIgniter;\n private initialized = false;\n private config = {};\n private template = `
`;\n private initialValue = '';\n\n constructor() {\n super();\n if (!this.firstElementChild) {\n this.innerHTML = this.template;\n }\n }\n\n get value() {\n if (this.textIgniter) {\n return this.textIgniter.getContent();\n }\n return this.initialValue;\n }\n\n set value(val: string) {\n this.initialValue = val;\n if (this.textIgniter) {\n if (this.textIgniter.getContent() !== val) {\n this.textIgniter.loadHtmlContent(val);\n }\n }\n }\n\n static get observedAttributes() {\n return ['config', 'value'];\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n if (name === 'config' && newValue !== oldValue) {\n try {\n console.log(newValue);\n const parsedConfig = JSON.parse(newValue);\n this.config = parsedConfig;\n this.initializeEditor(); // Reinitialize Core when config changes\n } catch (e) {\n console.error('Failed to parse config: ', e);\n }\n } else if (name === 'value' && newValue !== oldValue) {\n this.value = newValue;\n }\n }\n\n connectedCallback() {\n if (this.initialized) {\n return;\n }\n const attrValue = this.getAttribute('value');\n if (attrValue) {\n this.initialValue = attrValue;\n }\n this.initializeEditor();\n }\n\n private initializeEditor() {\n if (this.initialized) {\n return;\n }\n\n const editorContainer = this.querySelector('#editor-container')?.id;\n if (!editorContainer) {\n console.error('Editor element not found inside the DOM.');\n return;\n }\n\n try {\n this.initialized = true;\n this.textIgniter = new TextIgniter(\n editorContainer as any,\n this.config as any\n );\n\n if (this.initialValue) {\n this.textIgniter.loadHtmlContent(this.initialValue);\n }\n\n // Subscribe to content changes and dispatch custom event\n this.textIgniter.onContentChange(data => {\n const event = new CustomEvent('content-change', {\n detail: data,\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(event);\n });\n } catch (error) {\n console.error('Failed to initialize TextIgniter:', error);\n this.initialized = false;\n }\n }\n}\n\nif (!customElements.get('text-igniter')) {\n customElements.define('text-igniter', TextIgniterComponent);\n}\n","\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\".editor-container {\\n border: none;\\n padding: 0;\\n border-radius: 12px;\\n}\\n.toolbar {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n gap: 4px;\\n padding: 8px 12px;\\n margin-bottom: 0;\\n background: #fff;\\n border-radius: 10px;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\\n}\\n.toolbar-separator {\\n width: 1px;\\n height: 24px;\\n background: #e5e7eb;\\n margin: 0 8px;\\n}\\n.toolbar button {\\n padding: 8px;\\n border: none;\\n border-radius: 6px;\\n background: transparent;\\n cursor: pointer;\\n font-size: 15px;\\n font-weight: 500;\\n color: #000000;\\n transition: all 0.15s ease;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n min-width: 32px;\\n height: 32px;\\n}\\n.toolbar button:hover {\\n background: #f3f4f6;\\n}\\n.toolbar button:hover#fontColor,\\n.toolbar button:hover#bgColor {\\n background: transparent !important;\\n}\\n.toolbar button[data-tooltip]:hover#fontColor,\\n.toolbar button[data-tooltip]:hover#bgColor {\\n background: transparent !important;\\n}\\n.toolbar button.active {\\n background: #e5e7eb;\\n color: #111827;\\n}\\n.toolbar button svg {\\n width: 18px;\\n height: 18px;\\n display: block;\\n}\\n.toolbar button[data-tooltip],\\n.toolbar select[data-tooltip],\\n.popup-toolbar button[data-tooltip] {\\n position: relative;\\n}\\n.toolbar button[data-tooltip]::before,\\n.toolbar select[data-tooltip]::before,\\n.popup-toolbar button[data-tooltip]::before {\\n content: attr(data-tooltip);\\n position: absolute;\\n bottom: calc(100% + 8px);\\n left: 50%;\\n transform: translateX(-50%) scale(0.9);\\n padding: 8px 12px;\\n background: #1f2937;\\n color: #fff;\\n font-size: 12px;\\n font-weight: 500;\\n border-radius: 8px;\\n white-space: nowrap;\\n z-index: 1000;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.15s ease, transform 0.15s ease;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n}\\n.toolbar button[data-tooltip]::after,\\n.toolbar select[data-tooltip]::after,\\n.popup-toolbar button[data-tooltip]::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: calc(100% + 4px);\\n left: 50%;\\n transform: translateX(-50%) scale(0.9);\\n border: 5px solid transparent;\\n z-index: 1000;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.15s ease, transform 0.15s ease;\\n}\\n.toolbar button[data-tooltip]:hover::before,\\n.toolbar button[data-tooltip]:hover::after,\\n.toolbar select[data-tooltip]:hover::before,\\n.toolbar select[data-tooltip]:hover::after,\\n.popup-toolbar button[data-tooltip]:hover::before,\\n.popup-toolbar button[data-tooltip]:hover::after {\\n opacity: 1;\\n transform: translateX(-50%) scale(1);\\n}\\n#fontFamily,\\n#fontSize {\\n padding: 6px 12px;\\n padding-right: 28px;\\n border: 1px solid #e5e7eb;\\n border-radius: 8px;\\n background-color: #fff;\\n background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\\\");\\n background-repeat: no-repeat;\\n background-position: right 10px center;\\n cursor: pointer;\\n font-size: 14px;\\n font-weight: 500;\\n color: #000000;\\n transition: all 0.15s ease;\\n appearance: none;\\n -webkit-appearance: none;\\n}\\n#fontFamily:hover,\\n#fontSize:hover {\\n border-color: #d1d5db;\\n background-color: #f9fafb;\\n}\\n#fontFamily:focus,\\n#fontSize:focus {\\n outline: none;\\n border-color: #9ca3af;\\n box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15);\\n}\\n#fontFamily {\\n min-width: 130px;\\n}\\n#fontSize {\\n min-width: 75px;\\n}\\n#editor {\\n border: 1px solid #e5e7eb;\\n border-radius: 10px;\\n padding: 20px 24px;\\n min-height: 200px;\\n outline: none;\\n white-space: pre-wrap;\\n overflow-wrap: break-word;\\n background: #fff;\\n margin-top: 12px;\\n font-size: 15px;\\n line-height: 1.6;\\n color: #1f2937;\\n}\\n#editor h1,\\n#editor h2,\\n#editor h3,\\n#editor h4,\\n#editor h5,\\n#editor h6 {\\n font-weight: normal;\\n margin: 0;\\n padding: 0;\\n}\\n#editor:focus {\\n border-color: #d1d5db;\\n box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.1);\\n}\\n.paragraph-block {\\n padding: 2px 0;\\n margin: 0;\\n}\\n#fontColor,\\n#bgColor {\\n font-size: 15px;\\n font-weight: 600;\\n position: relative;\\n padding-bottom: 10px;\\n}\\n#fontColor::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 4px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 14px;\\n height: 3px;\\n border-radius: 2px;\\n}\\n#bgColor::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 4px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 14px;\\n height: 3px;\\n border-radius: 2px;\\n}\\n#fontColorPicker,\\n#bgColorPicker {\\n border: 0;\\n padding: 0;\\n margin: 0;\\n height: 20px;\\n width: 20px;\\n cursor: pointer;\\n border-radius: 4px;\\n}\\n#fontColorWrapper {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n}\\n#hyperlink-container,\\n#hyperlink-container-view {\\n position: absolute;\\n display: none;\\n z-index: 1000;\\n padding: 12px;\\n border: 1px solid #e5e7eb;\\n border-radius: 10px;\\n background: white;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);\\n}\\n#hyperlink-input {\\n width: 220px;\\n margin-right: 8px;\\n padding: 8px 12px;\\n border: 1px solid #e5e7eb;\\n border-radius: 6px;\\n font-size: 14px;\\n transition: all 0.15s ease;\\n}\\n#hyperlink-input:focus {\\n outline: none;\\n border-color: #9ca3af;\\n box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15);\\n}\\n#apply-hyperlink,\\n#cancel-hyperlink {\\n padding: 8px 14px;\\n border: none;\\n border-radius: 6px;\\n cursor: pointer;\\n font-size: 14px;\\n font-weight: 500;\\n transition: all 0.15s ease;\\n}\\n#apply-hyperlink {\\n background: #1f2937;\\n color: white;\\n}\\n#apply-hyperlink:hover {\\n background: #000000;\\n}\\n#cancel-hyperlink {\\n background: #f3f4f6;\\n color: #000000;\\n}\\n#cancel-hyperlink:hover {\\n background: #e5e7eb;\\n}\\n.temporary-selection-highlight {\\n background-color: rgba(59, 130, 246, 0.3);\\n}\\n.popup-toolbar {\\n position: absolute;\\n z-index: 1001;\\n background: #fff;\\n border-radius: 10px;\\n padding: 6px 8px;\\n display: none;\\n align-items: center;\\n gap: 2px;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 4px 10px rgba(0, 0, 0, 0.05);\\n border: 1px solid #e5e7eb;\\n}\\n.popup-toolbar button {\\n background: transparent;\\n border: none;\\n color: #000000;\\n cursor: pointer;\\n padding: 6px 8px;\\n border-radius: 6px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n transition: all 0.15s ease;\\n}\\n.popup-toolbar button:hover {\\n background: #f3f4f6;\\n}\\n.popup-toolbar button.active {\\n background: #e5e7eb;\\n}\\n.popup-toolbar button svg {\\n width: 16px;\\n height: 16px;\\n display: block;\\n}\\n.popup-toolbar .toolbar-separator {\\n width: 1px;\\n height: 20px;\\n background: #e5e7eb;\\n margin: 0 4px;\\n}\\n.ti-toast {\\n position: fixed;\\n left: 50%;\\n bottom: 24px;\\n transform: translateX(-50%);\\n background: #1f2937;\\n color: #fff;\\n padding: 12px 18px;\\n border-radius: 10px;\\n font-size: 14px;\\n font-weight: 500;\\n z-index: 2000;\\n opacity: 0;\\n pointer-events: none;\\n transition: opacity 0.2s ease, transform 0.2s ease;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\\n}\\n.ti-toast.ti-toast--show {\\n opacity: 1;\\n}\\n.text-igniter a {\\n color: #2563eb;\\n text-decoration: underline;\\n text-decoration-color: rgba(37, 99, 235, 0.3);\\n text-underline-offset: 2px;\\n cursor: pointer;\\n transition: all 0.15s ease;\\n}\\n.text-igniter a:hover {\\n color: #1d4ed8;\\n text-decoration-color: rgba(37, 99, 235, 0.6);\\n}\\n.text-igniter a:visited {\\n color: #7c3aed;\\n}\\n.link-popup {\\n position: absolute;\\n background: #1f2937;\\n border-radius: 8px;\\n padding: 4px;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\\n z-index: 1000;\\n display: none;\\n animation: fadeIn 0.15s ease;\\n flex-direction: row;\\n gap: 2px;\\n}\\n.link-popup button {\\n background: transparent;\\n color: white;\\n border: none;\\n padding: 6px;\\n border-radius: 6px;\\n cursor: pointer;\\n font-size: 14px;\\n transition: background 0.15s ease;\\n width: 28px;\\n height: 28px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.link-popup button:hover {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n transform: translateY(-4px);\\n }\\n to {\\n opacity: 1;\\n transform: translateY(0);\\n }\\n}\\n#editor img {\\n max-width: 100%;\\n border-radius: 8px;\\n margin: 8px 0;\\n}\\n#editor .image-float-right {\\n float: right;\\n margin: 0 0 12px 16px;\\n max-width: 200px;\\n border-radius: 8px;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n}\\n#editor .image-float-left {\\n float: left;\\n margin: 0 16px 12px 0;\\n max-width: 200px;\\n border-radius: 8px;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n}\\n.table_wrapper {\\n margin: 12px 0;\\n width: 100%;\\n overflow-x: auto;\\n}\\n.table_controls {\\n display: flex;\\n justify-content: flex-end;\\n margin-bottom: 6px;\\n opacity: 0;\\n transition: opacity 0.2s ease;\\n}\\n.table_wrapper:hover .table_controls,\\n.table_wrapper:focus-within .table_controls,\\n.layout_wrapper:hover .table_controls,\\n.layout_wrapper:focus-within .table_controls {\\n opacity: 1;\\n}\\n.table_delete_button {\\n background: transparent;\\n color: #ef4444;\\n border: 1px solid transparent;\\n padding: 4px 8px;\\n border-radius: 4px;\\n font-size: 12px;\\n cursor: pointer;\\n transition: all 0.2s ease;\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n}\\n.table_delete_button:hover {\\n background: #fef2f2;\\n border-color: #f87171;\\n}\\n.tbl {\\n width: 100%;\\n border-collapse: collapse;\\n table-layout: fixed;\\n border-radius: 8px;\\n overflow: hidden;\\n box-shadow: 0 0 0 1px #e5e7eb;\\n}\\n.tbl_active {\\n box-shadow: 0 0 0 2px #3b82f6;\\n}\\n.tblCell {\\n border: 1px solid #e5e7eb;\\n padding: 10px 12px;\\n min-width: 80px;\\n background: #fff;\\n vertical-align: top;\\n outline: none;\\n transition: background-color 0.15s ease;\\n}\\n.tblCell:focus,\\n.tblCell_focused {\\n background: #f8fafc;\\n outline: 2px solid #3b82f6;\\n outline-offset: -2px;\\n}\\n.tbl_header_cell {\\n background: #f4f5f8;\\n font-weight: 600;\\n border-bottom-width: 2px;\\n}\\n.tblCell[data-placeholder]:empty:before {\\n content: attr(data-placeholder);\\n color: #9ca3af;\\n pointer-events: none;\\n}\\n.table_modal {\\n position: fixed;\\n inset: 0;\\n display: flex;\\n border: none;\\n align-items: center;\\n justify-content: center;\\n z-index: 99;\\n opacity: 0;\\n transition: all 0.1s ease;\\n visibility: hidden;\\n}\\n.table_modal_visible {\\n opacity: 1;\\n visibility: visible;\\n}\\n.main_modal {\\n position: absolute;\\n inset: 90px 1170px;\\n background: #f5f2f2;\\n border-radius: 12px;\\n width: 100%;\\n max-width: 380px;\\n height: 30%;\\n max-height: 220px;\\n box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.04);\\n overflow: hidden;\\n}\\n.layout_main_modal {\\n height: auto;\\n max-height: 380px;\\n}\\n.table_modal_visible .main_modal {\\n transform: scale(1);\\n}\\n.main_modal_header {\\n padding: 16px 20px;\\n border-bottom: 1px solid #e5e7eb;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n}\\n.main_modal_title {\\n margin: 0;\\n font-size: 16px;\\n font-weight: 600;\\n color: #111827;\\n}\\n.main_modal_close {\\n background: transparent;\\n border: none;\\n color: #6b7280;\\n cursor: pointer;\\n padding: 4px;\\n border-radius: 6px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transition: background 0.15s ease, color 0.15s ease;\\n}\\n.main_modal_close:hover {\\n background: #f3f4f6;\\n color: #111827;\\n}\\n.main_modal_body {\\n padding: 20px;\\n}\\n.main_modal-divider {\\n display: flex;\\n align-items: center;\\n text-align: center;\\n margin: 20px 0;\\n color: #9ca3af;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.main_modal-divider::before,\\n.main_modal-divider::after {\\n content: \\\"\\\";\\n flex: 1;\\n border-bottom: 1px solid #e5e7eb;\\n}\\n.main_modal-divider span {\\n padding: 0 10px;\\n}\\n.main_modal_inputs {\\n display: flex;\\n gap: 16px;\\n}\\n.all_input {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n gap: 6px;\\n}\\n.ti-input-label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #374151;\\n}\\n.modal_inputs {\\n width: 100%;\\n padding: 8px 12px;\\n border: 1px solid #d1d5db;\\n border-radius: 6px;\\n font-size: 14px;\\n transition: all 0.15s ease;\\n box-sizing: border-box;\\n}\\n.modal_inputs:focus {\\n outline: none;\\n border-color: #3b82f6;\\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\\n}\\n.main_modal_footer {\\n padding: 16px 20px;\\n background: #f9fafb;\\n border-top: 1px solid #e5e7eb;\\n display: flex;\\n justify-content: flex-end;\\n gap: 10px;\\n}\\n.modal_close_button {\\n padding: 8px 16px;\\n border-radius: 6px;\\n font-size: 14px;\\n font-weight: 500;\\n cursor: pointer;\\n transition: all 0.15s ease;\\n border: 1px solid transparent;\\n}\\n.modal_close_button_secondary {\\n background: #fff;\\n border-color: #d1d5db;\\n color: #374151;\\n}\\n.modal_close_button_secondary:hover {\\n background: #f3f4f6;\\n}\\n.modal_close_button_primary {\\n background: #3b82f6;\\n color: #fff;\\n}\\n.modal_close_button_primary:hover {\\n background: #2563eb;\\n}\\n.code_block_wrapper {\\n background: #f8f8f8;\\n border: 1px solid #e2e2e2;\\n border-radius: 8px;\\n margin: 12px 0;\\n overflow: hidden;\\n font-family:\\n \\\"Fira Code\\\",\\n \\\"Cascadia Code\\\",\\n \\\"Courier New\\\",\\n monospace;\\n position: relative;\\n cursor: default;\\n user-select: none;\\n syntax: none;\\n}\\n.code_block_wrapper * {\\n pointer-events: none;\\n}\\n.code_block_header {\\n background: #f0f0f0;\\n border-bottom: 1px solid #e2e2e2;\\n padding: 5px 10px;\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n user-select: none;\\n}\\n.code_block_language {\\n font-size: 11px;\\n font-weight: 600;\\n color: #888;\\n font-family: \\\"Fira Code\\\", monospace;\\n letter-spacing: 0.04em;\\n flex: 0 0 auto;\\n}\\n.code_block_hint {\\n font-size: 11px;\\n color: #bbb;\\n flex: 1;\\n}\\n.code_block_cancel {\\n width: 20px;\\n height: 20px;\\n border-radius: 50%;\\n border: none;\\n background: transparent;\\n color: #bbb;\\n font-size: 16px;\\n pointer-events: all;\\n line-height: 1;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 0 0 auto;\\n transition: background 0.15s, color 0.15s;\\n padding: 0;\\n}\\n.code_block_cancel:hover {\\n background: #ffe4e4;\\n color: #dc2626;\\n}\\n.code_block_content {\\n margin: 0;\\n padding: 14px 16px;\\n color: #1e1e1e;\\n background: #f8f8f8;\\n overflow-x: auto;\\n font-size: 13.5px;\\n line-height: 1.65;\\n white-space: pre;\\n tab-size: 2;\\n}\\n.code_editor_modal {\\n position: fixed;\\n inset: 0;\\n background: rgba(0, 0, 0, 0.25);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 9999;\\n backdrop-filter: blur(2px);\\n}\\n.code_editor_modal_content {\\n background: #ffffff;\\n width: 88vw;\\n height: 88vh;\\n border-radius: 12px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n border: 1px solid #e0e0e0;\\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);\\n}\\n.code_editor_modal_header {\\n background: #f5f5f5;\\n padding: 9px 14px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n border-bottom: 1px solid #e2e2e2;\\n flex: 0 0 auto;\\n}\\n.code_editor_modal_title {\\n font-size: 12px;\\n font-weight: 600;\\n color: #888;\\n font-family: \\\"Fira Code\\\", monospace;\\n letter-spacing: 0.04em;\\n}\\n.code_editor_modal_actions {\\n display: flex;\\n gap: 6px;\\n}\\n.copy_editor_btn {\\n font-size: 12px;\\n font-family: inherit;\\n padding: 4px 12px;\\n border-radius: 6px;\\n border: 1px solid #d4d4d4;\\n background: #fff;\\n color: #444;\\n cursor: pointer;\\n transition: background 0.15s, border-color 0.15s;\\n white-space: nowrap;\\n}\\n.copy_editor_btn:hover {\\n background: #f0f0f0;\\n}\\n.copy_editor_btn--primary {\\n background: #1a1a1a;\\n color: #fff;\\n border-color: #1a1a1a;\\n}\\n.copy_editor_btn--primary:hover {\\n background: #333;\\n border-color: #333;\\n}\\n.copy_editor_btn--cancel:hover {\\n background: #ffe4e4;\\n color: #dc2626;\\n border-color: #fca5a5;\\n}\\n.editor_moal_wrapper {\\n flex: 1;\\n display: flex;\\n overflow: hidden;\\n position: relative;\\n background: #fff;\\n}\\n.editor_moal_line_number {\\n padding: 14px 10px 14px 12px;\\n background: #f8f8f8;\\n border-right: 1px solid #ebebeb;\\n font-family: \\\"Fira Code\\\", monospace;\\n font-size: 13px;\\n line-height: 1.65;\\n color: #ccc;\\n text-align: right;\\n user-select: none;\\n overflow: hidden;\\n min-width: 44px;\\n flex: 0 0 auto;\\n}\\n.editor_moal_line_number span {\\n display: block;\\n}\\n.modal_editor_text_area,\\n.editor_modal_pre_block {\\n position: absolute;\\n top: 0;\\n left: 44px;\\n width: calc(100% - 44px);\\n height: 100%;\\n margin: 0;\\n padding: 14px 16px;\\n border: none;\\n font-family:\\n \\\"Fira Code\\\",\\n \\\"Cascadia Code\\\",\\n \\\"Courier New\\\",\\n monospace;\\n font-size: 13.5px;\\n line-height: 1.65;\\n white-space: pre;\\n overflow: auto;\\n tab-size: 2;\\n box-sizing: border-box;\\n}\\n.modal_editor_text_area {\\n color: transparent;\\n background: transparent;\\n caret-color: #1a1a1a;\\n resize: none;\\n outline: none;\\n z-index: 2;\\n}\\n.editor_modal_pre_block {\\n color: #1e1e1e;\\n background: #fff;\\n z-index: 1;\\n pointer-events: none;\\n overflow: hidden;\\n}\\n.modal_editor_highlight {\\n display: block;\\n}\\n.layout_wrapper {\\n margin: 12px 0;\\n width: 100%;\\n position: relative;\\n}\\n.layout_active {\\n outline: 2px solid #3b82f6;\\n outline-offset: 4px;\\n border-radius: 4px;\\n}\\n\")"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAo2iB;;;AFGj5iB,IAAM,uBAAN,cAAmC,YAAY;AAAA,EAOpD,cAAc;AACZ,UAAM;AANR,SAAQ,cAAc;AACtB,SAAQ,SAAS,CAAC;AAClB,SAAQ,WAAW;AACnB,SAAQ,eAAe;AAIrB,QAAI,CAAC,KAAK,mBAAmB;AAC3B,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,IAAI,QAAQ;AACV,QAAI,KAAK,aAAa;AACpB,aAAO,KAAK,YAAY,WAAW;AAAA,IACrC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,MAAM,KAAa;AACrB,SAAK,eAAe;AACpB,QAAI,KAAK,aAAa;AACpB,UAAI,KAAK,YAAY,WAAW,MAAM,KAAK;AACzC,aAAK,YAAY,gBAAgB,GAAG;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,UAAU,OAAO;AAAA,EAC3B;AAAA,EAEA,yBAAyB,MAAc,UAAkB,UAAkB;AACzE,QAAI,SAAS,YAAY,aAAa,UAAU;AAC9C,UAAI;AACF,gBAAQ,IAAI,QAAQ;AACpB,cAAM,eAAe,KAAK,MAAM,QAAQ;AACxC,aAAK,SAAS;AACd,aAAK,iBAAiB;AAAA,MACxB,SAAS,GAAG;AACV,gBAAQ,MAAM,4BAA4B,CAAC;AAAA,MAC7C;AAAA,IACF,WAAW,SAAS,WAAW,aAAa,UAAU;AACpD,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEA,oBAAoB;AAClB,QAAI,KAAK,aAAa;AACpB;AAAA,IACF;AACA,UAAM,YAAY,KAAK,aAAa,OAAO;AAC3C,QAAI,WAAW;AACb,WAAK,eAAe;AAAA,IACtB;AACA,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEQ,mBAAmB;AA/D7B;AAgEI,QAAI,KAAK,aAAa;AACpB;AAAA,IACF;AAEA,UAAM,mBAAkB,UAAK,cAAc,mBAAmB,MAAtC,mBAAyC;AACjE,QAAI,CAAC,iBAAiB;AACpB,cAAQ,MAAM,0CAA0C;AACxD;AAAA,IACF;AAEA,QAAI;AACF,WAAK,cAAc;AACnB,WAAK,cAAc,IAAI;AAAA,QACrB;AAAA,QACA,KAAK;AAAA,MACP;AAEA,UAAI,KAAK,cAAc;AACrB,aAAK,YAAY,gBAAgB,KAAK,YAAY;AAAA,MACpD;AAGA,WAAK,YAAY,gBAAgB,UAAQ;AACvC,cAAM,QAAQ,IAAI,YAAY,kBAAkB;AAAA,UAC9C,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,UAAU;AAAA,QACZ,CAAC;AACD,aAAK,cAAc,KAAK;AAAA,MAC1B,CAAC;AAAA,IACH,SAAS,OAAO;AACd,cAAQ,MAAM,qCAAqC,KAAK;AACxD,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AACF;AAEA,IAAI,CAAC,eAAe,IAAI,cAAc,GAAG;AACvC,iBAAe,OAAO,gBAAgB,oBAAoB;AAC5D;","names":["exports","module","t","e","n","s","o","i","l","a","d","r","c","h","u","p","m","g","C","k","v","I","x","E","w","_","f","b","y","T","L","N"]} \ No newline at end of file diff --git a/packages/web-component/dist/index.js b/packages/web-component/dist/index.js index 544c68c..ce0a62d 100644 --- a/packages/web-component/dist/index.js +++ b/packages/web-component/dist/index.js @@ -47,10 +47,10 @@ var require_dist = __commonJS({ constructor(t2, e2 = {}) { this.text = t2; const n2 = document.getElementById("fontFamily"), s2 = document.getElementById("fontSize"); - let i2 = "Arial", o2 = "16px", l2 = document.getElementById("fontColorPicker"), a2 = document.getElementById("bgColorPicker"); - n2 && (i2 = n2.value), s2 && (o2 = s2.value); - const r2 = e2.fontColor || (l2 ? l2.value : "#000000"), d2 = e2.bgColor || (a2 ? a2.value : "#ffffff"); - this.attributes = { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, subscript: e2.subscript || false, superscript: e2.superscript || false, undo: e2.undo || false, redo: e2.redo || false, fontFamily: e2.fontFamily || i2, fontSize: e2.fontSize || o2, hyperlink: e2.hyperlink || false, fontColor: r2, bgColor: d2 }; + let o2 = "Arial", i2 = "16px", l2 = document.getElementById("fontColorPicker"), a2 = document.getElementById("bgColorPicker"); + n2 && (o2 = n2.value), s2 && (i2 = s2.value); + const d2 = e2.fontColor || (l2 ? l2.value : "#000000"), r2 = e2.bgColor || (a2 ? a2.value : "#ffffff"); + this.attributes = { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, subscript: e2.subscript || false, superscript: e2.superscript || false, undo: e2.undo || false, redo: e2.redo || false, fontFamily: e2.fontFamily || o2, fontSize: e2.fontSize || i2, hyperlink: e2.hyperlink || false, fontColor: d2, bgColor: r2 }; } isBold() { return this.attributes.bold; @@ -127,19 +127,19 @@ var require_dist = __commonJS({ setUndoRedoManager(t2) { this.undoRedoManager = t2; } - insertAt(t2, e2, s2, i2 = "", o2 = 0, l2 = "", a2 = "", r2 = false) { - r2 || "batch" === a2 || this.undoRedoManager.saveUndoSnapshot(), console.log("inserted,", { start: s2, text: t2 }), console.log("inserted,", this.blocks); - let d2 = 0, c2 = [], h2 = false, u2 = 0; - if ("" === i2 || null === i2) return; - if (u2 = this.blocks.findIndex((t3) => t3.dataId === i2), -1 === u2 || !this.blocks[u2].pieces) return; - d2 = this.currentOffset; - for (let i3 of this.blocks[u2].pieces) { - const o3 = d2 + i3.text.length; - if (!h2 && s2 <= o3) { - const o4 = s2 - d2; - o4 > 0 && c2.push(new n(i3.text.slice(0, o4), Object.assign({}, i3.attributes))), c2.push(new n(t2, { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, hyperlink: e2.hyperlink || false })), o4 < i3.text.length && c2.push(new n(i3.text.slice(o4), Object.assign({}, i3.attributes))), h2 = true; - } else c2.push(i3.clone()); - d2 = o3; + insertAt(t2, e2, s2, o2 = "", i2 = 0, l2 = "", a2 = "", d2 = false) { + d2 || "batch" === a2 || this.undoRedoManager.saveUndoSnapshot(), console.log("inserted,", { start: s2, text: t2 }), console.log("inserted,", this.blocks); + let r2 = 0, c2 = [], h2 = false, u2 = 0; + if ("" === o2 || null === o2) return; + if (u2 = this.blocks.findIndex((t3) => t3.dataId === o2), -1 === u2 || !this.blocks[u2].pieces) return; + r2 = this.currentOffset; + for (let o3 of this.blocks[u2].pieces) { + const i3 = r2 + o3.text.length; + if (!h2 && s2 <= i3) { + const i4 = s2 - r2; + i4 > 0 && c2.push(new n(o3.text.slice(0, i4), Object.assign({}, o3.attributes))), c2.push(new n(t2, { bold: e2.bold || false, italic: e2.italic || false, underline: e2.underline || false, strikethrough: e2.strikethrough || false, hyperlink: e2.hyperlink || false })), i4 < o3.text.length && c2.push(new n(o3.text.slice(i4), Object.assign({}, o3.attributes))), h2 = true; + } else c2.push(o3.clone()); + r2 = i3; } if (!h2) { const s3 = c2[c2.length - 1]; @@ -148,32 +148,32 @@ var require_dist = __commonJS({ let p2 = this.mergePieces(c2); this.blocks[u2].pieces = p2, console.log({ position: s2 }), this.emit("documentChanged", this); } - deleteRange(t2, e2, s2 = "", i2 = 0, o2 = false) { + deleteRange(t2, e2, s2 = "", o2 = 0, i2 = false) { if (console.log("deleted2,", { start: t2, end: e2 }), t2 === e2) return; - let l2 = [], a2 = 0, r2 = 0, d2 = false; + let l2 = [], a2 = 0, d2 = 0, r2 = false; if ("" === s2 || null === s2) return; - if (r2 = this.blocks.findIndex((t3) => t3.dataId === s2), -1 === r2 || !this.blocks[r2].pieces) return; - a2 = i2; + if (d2 = this.blocks.findIndex((t3) => t3.dataId === s2), -1 === d2 || !this.blocks[d2].pieces) return; + a2 = o2; let c2 = -1; - if (o2 && t2 === a2 && r2 > 0 && e2 === t2 && (c2 = r2 - 1 >= 0 && "image" === this.blocks[r2 - 1].type ? r2 - 2 : r2 - 1, c2 >= 0 && this.blocks[c2])) for (let t3 of this.blocks[c2].pieces) l2.push(t3.clone()), d2 = true; - for (let s3 of this.blocks[r2].pieces) { - const i3 = a2 + s3.text.length, o3 = a2; - if (i3 <= t2 || o3 >= e2) l2.push(s3.clone()); + if (i2 && t2 === a2 && d2 > 0 && e2 === t2 && (c2 = d2 - 1 >= 0 && "image" === this.blocks[d2 - 1].type ? d2 - 2 : d2 - 1, c2 >= 0 && this.blocks[c2])) for (let t3 of this.blocks[c2].pieces) l2.push(t3.clone()), r2 = true; + for (let s3 of this.blocks[d2].pieces) { + const o3 = a2 + s3.text.length, i3 = a2; + if (o3 <= t2 || i3 >= e2) l2.push(s3.clone()); else { const a3 = s3.text; - if (t2 > o3) { - const e3 = a3.slice(0, t2 - o3); + if (t2 > i3) { + const e3 = a3.slice(0, t2 - i3); e3.length > 0 && l2.push(new n(e3, Object.assign({}, s3.attributes))); } - if (e2 < i3) { - const t3 = a3.slice(e2 - o3); + if (e2 < o3) { + const t3 = a3.slice(e2 - i3); t3.length > 0 && l2.push(new n(t3, Object.assign({}, s3.attributes))); } } - a2 = i3; + a2 = o3; } let h2 = this.mergePieces(l2), u2 = false; - d2 && c2 >= 0 ? (!this.blocks[r2] || "ol" !== this.blocks[r2].listType && "li" !== this.blocks[r2].listType || (u2 = true), this.blocks[c2].pieces = h2, this.blocks.splice(r2, 1)) : 0 === h2.length ? this.blocks.length > 1 ? (!this.blocks[r2] || "ol" !== this.blocks[r2].listType && "li" !== this.blocks[r2].listType || (u2 = true), this.blocks.splice(r2, 1)) : (h2 = [new n(" ")], this.blocks[r2].pieces = h2) : this.blocks[r2].pieces = h2, u2 && this.updateOrderedListNumbers(), this.emit("documentChanged", this); + r2 && c2 >= 0 ? (!this.blocks[d2] || "ol" !== this.blocks[d2].listType && "li" !== this.blocks[d2].listType || (u2 = true), this.blocks[c2].pieces = h2, this.blocks.splice(d2, 1)) : 0 === h2.length ? this.blocks.length > 1 ? (!this.blocks[d2] || "ol" !== this.blocks[d2].listType && "li" !== this.blocks[d2].listType || (u2 = true), this.blocks.splice(d2, 1)) : (h2 = [new n(" ")], this.blocks[d2].pieces = h2) : this.blocks[d2].pieces = h2, u2 && this.updateOrderedListNumbers(), this.emit("documentChanged", this); } deleteBlocks() { const t2 = this.blocks.some((t3) => this.dataIds.includes(t3.dataId) && ("ol" === t3.listType || "li" === t3.listType)); @@ -191,10 +191,10 @@ var require_dist = __commonJS({ var t2; const e2 = window.getSelection(); if (!e2 || 0 === e2.rangeCount) return []; - const n2 = e2.getRangeAt(0), s2 = [], i2 = document.createNodeIterator(n2.commonAncestorContainer, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT); - let o2; - for (; o2 = i2.nextNode(); ) if (n2.intersectsNode(o2)) { - const e3 = o2.nodeType === Node.TEXT_NODE ? o2.parentElement : o2, n3 = null === (t2 = null == e3 ? void 0 : e3.closest("[data-id]")) || void 0 === t2 ? void 0 : t2.getAttribute("data-id"); + const n2 = e2.getRangeAt(0), s2 = [], o2 = document.createNodeIterator(n2.commonAncestorContainer, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT); + let i2; + for (; i2 = o2.nextNode(); ) if (n2.intersectsNode(i2)) { + const e3 = i2.nodeType === Node.TEXT_NODE ? i2.parentElement : i2, n3 = null === (t2 = null == e3 ? void 0 : e3.closest("[data-id]")) || void 0 === t2 ? void 0 : t2.getAttribute("data-id"); n3 && !s2.includes(n3) && s2.push(n3); } return this.removeExclusiveEndBlock(n2, s2), this.dataIds = s2, console.log("selected id 3", this.dataIds, s2), s2; @@ -212,8 +212,8 @@ var require_dist = __commonJS({ getSelectedDataIds() { const t2 = window.getSelection(); if (!t2 || 0 === t2.rangeCount) return []; - const e2 = t2.getRangeAt(0), n2 = [], s2 = e2.startContainer, i2 = e2.endContainer, o2 = this.getDataIdFromNode(s2), l2 = this.getDataIdFromNode(i2); - return o2 && !n2.includes(o2) && n2.push(o2), l2 && !n2.includes(l2) && n2.push(l2), this.removeExclusiveEndBlock(e2, n2), this.dataIds = n2, console.log("selected id 1", this.dataIds, n2), n2; + const e2 = t2.getRangeAt(0), n2 = [], s2 = e2.startContainer, o2 = e2.endContainer, i2 = this.getDataIdFromNode(s2), l2 = this.getDataIdFromNode(o2); + return i2 && !n2.includes(i2) && n2.push(i2), l2 && !n2.includes(l2) && n2.push(l2), this.removeExclusiveEndBlock(e2, n2), this.dataIds = n2, console.log("selected id 1", this.dataIds, n2), n2; } getDataIdFromNode(t2) { var e2; @@ -225,33 +225,33 @@ var require_dist = __commonJS({ if (!e2 || 0 === e2.rangeCount || !t2) return -1; const n2 = e2.getRangeAt(0); let s2 = 0; - const i2 = (t3) => { + const o2 = (t3) => { if (t3 === n2.startContainer) return s2 += n2.startOffset, true; t3.nodeType === Node.TEXT_NODE && (s2 += (t3.textContent || "").length); - for (const e3 of Array.from(t3.childNodes)) if (i2(e3)) return true; + for (const e3 of Array.from(t3.childNodes)) if (o2(e3)) return true; return false; }; - return i2(t2), s2; + return o2(t2), s2; } - formatAttribute(t2, e2, s2, i2) { - console.log("formatAttribute", t2, e2, s2, i2); - let o2 = [], l2 = 0, a2 = -1; + formatAttribute(t2, e2, s2, o2) { + console.log("formatAttribute", t2, e2, s2, o2); + let i2 = [], l2 = 0, a2 = -1; if ("" === this.selectedBlockId || null === this.selectedBlockId) return; if (a2 = this.blocks.findIndex((t3) => t3.dataId === this.selectedBlockId), -1 === a2 || !this.blocks[a2].pieces) return; l2 = this.currentOffset; - for (let r3 of this.blocks[a2].pieces) { - const a3 = l2 + r3.text.length; - if (a3 <= t2 || l2 >= e2) o2.push(r3.clone()); + for (let d3 of this.blocks[a2].pieces) { + const a3 = l2 + d3.text.length; + if (a3 <= t2 || l2 >= e2) i2.push(d3.clone()); else { - const a4 = l2, d2 = r3.text, c2 = Math.max(t2 - a4, 0), h2 = Math.min(e2 - a4, d2.length); - c2 > 0 && o2.push(new n(d2.slice(0, c2), Object.assign({}, r3.attributes))); - const u2 = new n(d2.slice(c2, h2), Object.assign({}, r3.attributes)); - ("bold" !== s2 && "italic" !== s2 && "underline" !== s2 && "strikethrough" !== s2 && "subscript" !== s2 && "superscript" != s2 && "undo" !== s2 && "redo" !== s2 && "hyperlink" !== s2 || "boolean" != typeof i2) && ("fontFamily" !== s2 && "fontSize" !== s2 && "hyperlink" !== s2 && "fontColor" !== s2 && "bgColor" !== s2 || "string" != typeof i2) || (u2.attributes[s2] = i2), o2.push(u2), h2 < d2.length && o2.push(new n(d2.slice(h2), Object.assign({}, r3.attributes))); + const a4 = l2, r2 = d3.text, c2 = Math.max(t2 - a4, 0), h2 = Math.min(e2 - a4, r2.length); + c2 > 0 && i2.push(new n(r2.slice(0, c2), Object.assign({}, d3.attributes))); + const u2 = new n(r2.slice(c2, h2), Object.assign({}, d3.attributes)); + ("bold" !== s2 && "italic" !== s2 && "underline" !== s2 && "strikethrough" !== s2 && "subscript" !== s2 && "superscript" != s2 && "undo" !== s2 && "redo" !== s2 && "hyperlink" !== s2 || "boolean" != typeof o2) && ("fontFamily" !== s2 && "fontSize" !== s2 && "hyperlink" !== s2 && "fontColor" !== s2 && "bgColor" !== s2 || "string" != typeof o2) || (u2.attributes[s2] = o2), i2.push(u2), h2 < r2.length && i2.push(new n(r2.slice(h2), Object.assign({}, d3.attributes))); } l2 = a3; } - const r2 = this.mergePieces(o2); - this.blocks[a2].pieces = r2, this.emit("documentChanged", this); + const d2 = this.mergePieces(i2); + this.blocks[a2].pieces = d2, this.emit("documentChanged", this); } toggleOrderedList(t2, e2 = "") { const n2 = this.blocks.findIndex((e3) => e3.dataId === t2); @@ -280,12 +280,12 @@ var require_dist = __commonJS({ var n2; const s2 = this.blocks.findIndex((e3) => e3.dataId === t2); if (-1 === s2) return; - const i2 = this.blocks[s2]; - i2.heading = e2; - const o2 = this.getHeadingFontSize(e2); - if (Array.isArray(i2.pieces)) { - i2.pieces.every((t3) => "" === t3.text.trim() || "\u200B" === t3.text) && e2 ? i2.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = i2.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: o2 }) }] : i2.pieces.forEach((t3) => { - t3.attributes.fontSize = o2; + const o2 = this.blocks[s2]; + o2.heading = e2; + const i2 = this.getHeadingFontSize(e2); + if (Array.isArray(o2.pieces)) { + o2.pieces.every((t3) => "" === t3.text.trim() || "\u200B" === t3.text) && e2 ? o2.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = o2.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: i2 }) }] : o2.pieces.forEach((t3) => { + t3.attributes.fontSize = i2; }); } this.emit("documentChanged", this); @@ -297,10 +297,10 @@ var require_dist = __commonJS({ if (-1 !== s2) { const t4 = this.blocks[s2]; t4.heading = e2; - const i2 = this.getHeadingFontSize(e2); + const o2 = this.getHeadingFontSize(e2); if (Array.isArray(t4.pieces)) { - t4.pieces.every((t5) => "" === t5.text.trim() || "\u200B" === t5.text) && e2 ? t4.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = t4.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: i2 }) }] : t4.pieces.forEach((t5) => { - t5.attributes.fontSize = i2; + t4.pieces.every((t5) => "" === t5.text.trim() || "\u200B" === t5.text) && e2 ? t4.pieces = [{ text: `Heading ${e2.replace("h", "")}`, attributes: Object.assign(Object.assign({}, null === (n2 = t4.pieces[0]) || void 0 === n2 ? void 0 : n2.attributes), { fontSize: o2 }) }] : t4.pieces.forEach((t5) => { + t5.attributes.fontSize = o2; }); } } @@ -356,31 +356,31 @@ var require_dist = __commonJS({ } else this.editorView.container.focus(); const s2 = window.getSelection(); if (!s2) return; - const i2 = document.createRange(); - let o2 = 0; + const o2 = document.createRange(); + let i2 = 0; const l2 = [this.editorView.container]; let a2; - const r2 = (null === (n2 = this.editorView.container.textContent) || void 0 === n2 ? void 0 : n2.length) || 0; - if (!(t2 < 0 || t2 > r2)) { + const d2 = (null === (n2 = this.editorView.container.textContent) || void 0 === n2 ? void 0 : n2.length) || 0; + if (!(t2 < 0 || t2 > d2)) { for (; a2 = l2.pop(); ) if (3 === a2.nodeType) { - const e3 = a2, n3 = o2 + e3.length; - if (t2 >= o2 && t2 <= n3) { - i2.setStart(e3, Math.min(t2 - o2, e3.length)), i2.collapse(true); + const e3 = a2, n3 = i2 + e3.length; + if (t2 >= i2 && t2 <= n3) { + o2.setStart(e3, Math.min(t2 - i2, e3.length)), o2.collapse(true); break; } - o2 = n3; + i2 = n3; } else if ("BR" === a2.tagName) { - if (t2 === o2) { - i2.setStartBefore(a2), i2.collapse(true); + if (t2 === i2) { + o2.setStartBefore(a2), o2.collapse(true); break; } - o2++; + i2++; } else { const t3 = a2; let e3 = t3.childNodes.length; for (; e3--; ) l2.push(t3.childNodes[e3]); } - s2.removeAllRanges(), s2.addRange(i2); + s2.removeAllRanges(), s2.addRange(o2); } } toggleBoldRange(t2, e2, n2 = "") { @@ -422,20 +422,20 @@ var require_dist = __commonJS({ t2 < e2 && this.formatAttribute(t2, e2, "bgColor", n2); } isRangeEntirelyAttribute(t2, e2, n2) { - let s2 = this.currentOffset, i2 = true; + let s2 = this.currentOffset, o2 = true; if ("" !== this.selectedBlockId && null !== this.selectedBlockId) { - const o2 = this.blocks.findIndex((t3) => t3.dataId === this.selectedBlockId); - if (-1 === o2 || !this.blocks[o2].pieces) return false; - for (let l2 of this.blocks[o2].pieces) { - const o3 = s2 + l2.text.length; - if (o3 > t2 && s2 < e2 && !l2.attributes[n2]) { - i2 = false; + const i2 = this.blocks.findIndex((t3) => t3.dataId === this.selectedBlockId); + if (-1 === i2 || !this.blocks[i2].pieces) return false; + for (let l2 of this.blocks[i2].pieces) { + const i3 = s2 + l2.text.length; + if (i3 > t2 && s2 < e2 && !l2.attributes[n2]) { + o2 = false; break; } - s2 = o3; + s2 = i3; } } - return i2; + return o2; } mergePieces(t2) { let e2 = []; @@ -449,15 +449,15 @@ var require_dist = __commonJS({ let n2 = 0; if ("" !== e2 && null !== e2) for (let s2 of this.blocks) { if ("table" === s2.type || "layout" === s2.type || !s2.pieces) continue; - const i2 = s2.pieces.reduce((t3, e3) => t3 + e3.text.length, 0); + const o2 = s2.pieces.reduce((t3, e3) => t3 + e3.text.length, 0); if (s2.dataId == e2) { let e3 = null; - for (let i3 of s2.pieces) { - const s3 = n2, o2 = s3 + i3.text.length; - if (t2 >= s3 && t2 < o2) return t2 === s3 && e3 ? e3 : i3; - e3 = i3, n2 = o2; + for (let o3 of s2.pieces) { + const s3 = n2, i2 = s3 + o3.text.length; + if (t2 >= s3 && t2 < i2) return t2 === s3 && e3 ? e3 : o3; + e3 = o3, n2 = i2; } - } else n2 += i2; + } else n2 += o2; } return null; } @@ -486,71 +486,71 @@ var require_dist = __commonJS({ if (!n2) return null; const s2 = window.getSelection(); if (!s2 || 0 === s2.rangeCount) return null; - const i2 = s2.getRangeAt(0); - if (!n2.contains(i2.startContainer)) return null; - let o2 = 0, l2 = null; + const o2 = s2.getRangeAt(0); + if (!n2.contains(o2.startContainer)) return null; + let i2 = 0, l2 = null; const a2 = document.createTreeWalker(n2, NodeFilter.SHOW_TEXT, null); - let r2 = null; + let d2 = null; for (; a2.nextNode(); ) { const t3 = a2.currentNode; - if (console.log(t3, "textPosition - currentNode: vicky"), t3 === i2.startContainer) { - o2 += i2.startOffset, l2 = t3, r2 = t3.parentElement; + if (console.log(t3, "textPosition - currentNode: vicky"), t3 === o2.startContainer) { + i2 += o2.startOffset, l2 = t3, d2 = t3.parentElement; break; } - o2 += (null === (e2 = t3.textContent) || void 0 === e2 ? void 0 : e2.length) || 0; + i2 += (null === (e2 = t3.textContent) || void 0 === e2 ? void 0 : e2.length) || 0; } - return console.log({ offset: o2, childNode: l2, innerHTML: r2.innerHTML, innerText: r2.innerText }, "textPosition - return values: vicky"), { offset: o2, childNode: l2, innerHTML: r2.innerHTML, innerText: r2.innerText }; + return console.log({ offset: i2, childNode: l2, innerHTML: d2.innerHTML, innerText: d2.innerText }, "textPosition - return values: vicky"), { offset: i2, childNode: l2, innerHTML: d2.innerHTML, innerText: d2.innerText }; } removeExclusiveEndBlock(t2, e2) { if (e2.length <= 1) return; const n2 = t2.endContainer, s2 = t2.endOffset; - let i2 = false; - if ((n2.nodeType === Node.TEXT_NODE || n2.nodeType === Node.ELEMENT_NODE) && (i2 = 0 === s2), !i2) return; - const o2 = this.getDataIdFromNode(n2); - if (!o2) return; - if (o2 !== this.getDataIdFromNode(t2.startContainer) && e2.includes(o2)) { - const t3 = e2.lastIndexOf(o2); + let o2 = false; + if ((n2.nodeType === Node.TEXT_NODE || n2.nodeType === Node.ELEMENT_NODE) && (o2 = 0 === s2), !o2) return; + const i2 = this.getDataIdFromNode(n2); + if (!i2) return; + if (i2 !== this.getDataIdFromNode(t2.startContainer) && e2.includes(i2)) { + const t3 = e2.lastIndexOf(i2); t3 > -1 && e2.splice(t3, 1); } } } - function i(t2) { + function o(t2) { const e2 = window.getSelection(); if (!e2 || 0 === e2.rangeCount) return null; const n2 = e2.getRangeAt(0), s2 = n2.cloneRange(); s2.selectNodeContents(t2), s2.setEnd(n2.startContainer, n2.startOffset); - const i2 = s2.toString().length; + const o2 = s2.toString().length; s2.setEnd(n2.endContainer, n2.endOffset); - return { start: i2, end: s2.toString().length }; + return { start: o2, end: s2.toString().length }; } - function o(t2, e2) { + function i(t2, e2) { if (!e2) return; let n2 = 0; const s2 = document.createRange(); s2.setStart(t2, 0), s2.collapse(true); - const i2 = [t2]; - let o2, l2 = false, a2 = false; - for (; !a2 && (o2 = i2.pop()); ) if (3 === o2.nodeType) { - const t3 = o2, i3 = n2 + t3.length; - !l2 && e2.start >= n2 && e2.start <= i3 && (s2.setStart(t3, e2.start - n2), l2 = true), l2 && e2.end >= n2 && e2.end <= i3 && (s2.setEnd(t3, e2.end - n2), a2 = true), n2 = i3; - } else if ("BR" === o2.tagName) l2 || e2.start !== n2 || (s2.setStartBefore(o2), l2 = true), l2 && e2.end === n2 && (s2.setEndBefore(o2), a2 = true), n2++; + const o2 = [t2]; + let i2, l2 = false, a2 = false; + for (; !a2 && (i2 = o2.pop()); ) if (3 === i2.nodeType) { + const t3 = i2, o3 = n2 + t3.length; + !l2 && e2.start >= n2 && e2.start <= o3 && (s2.setStart(t3, e2.start - n2), l2 = true), l2 && e2.end >= n2 && e2.end <= o3 && (s2.setEnd(t3, e2.end - n2), a2 = true), n2 = o3; + } else if ("BR" === i2.tagName) l2 || e2.start !== n2 || (s2.setStartBefore(i2), l2 = true), l2 && e2.end === n2 && (s2.setEndBefore(i2), a2 = true), n2++; else { - const t3 = o2; + const t3 = i2; let e3 = t3.childNodes.length; - for (; e3--; ) i2.push(t3.childNodes[e3]); + for (; e3--; ) o2.push(t3.childNodes[e3]); } - const r2 = window.getSelection(); - r2 && (r2.removeAllRanges(), r2.addRange(s2)); + const d2 = window.getSelection(); + d2 && (d2.removeAllRanges(), d2.addRange(s2)); } function l(t2) { - const e2 = i(t2.container); + const e2 = o(t2.container); return e2 ? [e2.start, e2.end] : [0, 0]; } const a = /((https?:\/\/|www\.)[\w\-._~:\/?#[\]@!$&'()*+,;=%]+|\b[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[\w\-._~:\/?#[\]@!$&'()*+,;=%]*)?)/g; - function r(t2, e2) { + function d(t2, e2) { return e2 > 0 && "@" === t2[e2 - 1]; } - function d(t2) { + function r(t2) { if (!t2) return t2; let e2 = t2.trim(); const n2 = e2.match(/^https?:\/\/[\w.-]+(?::\d+)?\/(https?:\/\/.*)$/); @@ -564,7 +564,7 @@ var require_dist = __commonJS({ this.imageHandler = t2; } render() { - const t2 = i(this.container); + const t2 = o(this.container); this.container.innerHTML = "", this.document.blocks.forEach((t3) => { var e2; if ("" !== t3.dataId) { @@ -584,16 +584,16 @@ var require_dist = __commonJS({ e3.className = "code_block_header"; const s2 = document.createElement("span"); s2.className = "code_block_language", s2.innerText = t3.language || "text"; - const i2 = document.createElement("span"); - i2.className = "code_block_hint", i2.innerText = "double-click to edit"; - const o2 = document.createElement("button"); - o2.className = "code_block_cancel", o2.innerHTML = "×", o2.title = "Remove block", o2.addEventListener("mousedown", (t4) => { + const o2 = document.createElement("span"); + o2.className = "code_block_hint", o2.innerText = "double-click to edit"; + const i2 = document.createElement("button"); + i2.className = "code_block_cancel", i2.innerHTML = "×", i2.title = "Remove block", i2.addEventListener("mousedown", (t4) => { t4.stopPropagation(); - }), o2.onclick = (e4) => { + }), i2.onclick = (e4) => { e4.stopPropagation(), e4.preventDefault(), n2.remove(); const s3 = this.document.blocks.findIndex((e5) => e5.dataId === t3.dataId); -1 !== s3 && (this.document.blocks.splice(s3, 1), this.document.selectedBlockId === t3.dataId && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); - }, e3.appendChild(s2), e3.appendChild(i2), e3.appendChild(o2); + }, e3.appendChild(s2), e3.appendChild(o2), e3.appendChild(i2); const l2 = document.createElement("pre"); l2.className = "code_block_content"; const a2 = document.createElement("code"); @@ -608,7 +608,7 @@ var require_dist = __commonJS({ }); this.container.appendChild(n2); } - }), o(this.container, t2); + }), i(this.container, t2); } renderPiece(t2) { const e2 = t2.text.split("\n"); @@ -616,41 +616,41 @@ var require_dist = __commonJS({ } wrapAttributes(t2, e2) { const n2 = document.createDocumentFragment(); - return t2.forEach((s2, i2) => { - let o2 = document.createTextNode(s2); + return t2.forEach((s2, o2) => { + let i2 = document.createTextNode(s2); if (e2.strikethrough) { const t3 = document.createElement("s"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.underline) { const t3 = document.createElement("u"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.italic) { const t3 = document.createElement("em"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.bold) { const t3 = document.createElement("strong"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.subscript) { const t3 = document.createElement("sub"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } if (e2.superscript) { const t3 = document.createElement("sup"); - t3.appendChild(o2), o2 = t3; + t3.appendChild(i2), i2 = t3; } const l2 = document.getElementById("fontFamily"), a2 = document.getElementById("fontSize"); - let r2 = "Arial", c2 = "16px"; - l2 && (r2 = l2.value), a2 && (c2 = a2.value); + let d2 = "Arial", c2 = "16px"; + l2 && (d2 = l2.value), a2 && (c2 = a2.value); const h2 = document.createElement("span"); - if (h2.style.fontFamily = e2.fontFamily || r2, h2.style.fontSize = e2.fontSize || c2, e2.fontColor && "string" == typeof e2.fontColor && (h2.style.color = e2.fontColor), e2.bgColor && "string" == typeof e2.bgColor && (h2.style.backgroundColor = e2.bgColor), e2.hyperlink && "string" == typeof e2.hyperlink) { + if (h2.style.fontFamily = e2.fontFamily || d2, h2.style.fontSize = e2.fontSize || c2, e2.fontColor && "string" == typeof e2.fontColor && (h2.style.color = e2.fontColor), e2.bgColor && "string" == typeof e2.bgColor && (h2.style.backgroundColor = e2.bgColor), e2.hyperlink && "string" == typeof e2.hyperlink) { const t3 = document.createElement("a"); - t3.href = d(e2.hyperlink), t3.appendChild(o2), o2 = t3; + t3.href = r(e2.hyperlink), t3.appendChild(i2), i2 = t3; } - h2.appendChild(o2), o2 = h2, n2.appendChild(o2), i2 < t2.length - 1 && n2.appendChild(document.createElement("br")); + h2.appendChild(i2), i2 = h2, n2.appendChild(i2), o2 < t2.length - 1 && n2.appendChild(document.createElement("br")); }), n2; } } @@ -697,53 +697,53 @@ var require_dist = __commonJS({ setUndoRedoManager(t2) { this.undoRedoManager = t2; } - hanldeHyperlinkClick(t2, e2, n2, s2, i2) { - const o2 = this.getCommonHyperlinkInRange(t2, e2, n2, s2, i2); - this.showHyperlinkInput(o2); + hanldeHyperlinkClick(t2, e2, n2, s2, o2) { + const i2 = this.getCommonHyperlinkInRange(t2, e2, n2, s2, o2); + this.showHyperlinkInput(i2); } - getCommonHyperlinkInRange(t2, e2, n2, s2, i2) { - let o2 = n2, l2 = 0; - s2 && (l2 = i2.findIndex((t3) => t3.dataId === s2)); - const a2 = i2[l2].pieces; - let r2 = null; + getCommonHyperlinkInRange(t2, e2, n2, s2, o2) { + let i2 = n2, l2 = 0; + s2 && (l2 = o2.findIndex((t3) => t3.dataId === s2)); + const a2 = o2[l2].pieces; + let d2 = null; for (let n3 of a2) { - const s3 = o2 + n3.text.length; - if (s3 > t2 && o2 < e2) { + const s3 = i2 + n3.text.length; + if (s3 > t2 && i2 < e2) { const t3 = n3.attributes.hyperlink || null; - if (null === r2) r2 = t3; - else if (r2 !== t3) return null; + if (null === d2) d2 = t3; + else if (d2 !== t3) return null; } - o2 = s3; + i2 = s3; } - return r2; + return d2; } showHyperlinkInput(t2) { var e2, n2, s2; - const o2 = document.getElementById(u.HYPERLINK_CONTAINER_ID), l2 = document.getElementById(u.HYPERLINK_INPUT_ID), a2 = document.getElementById(u.HYPERLINK_APPLY_BTN_ID), r2 = document.getElementById(u.HYPERLINK_CANCEL_BTN_ID); - if (o2 && l2 && a2 && r2) { - o2.style.display = "block"; + const i2 = document.getElementById(u.HYPERLINK_CONTAINER_ID), l2 = document.getElementById(u.HYPERLINK_INPUT_ID), a2 = document.getElementById(u.HYPERLINK_APPLY_BTN_ID), d2 = document.getElementById(u.HYPERLINK_CANCEL_BTN_ID); + if (i2 && l2 && a2 && d2) { + i2.style.display = "block"; const c2 = window.getSelection(); if (c2 && c2.rangeCount > 0) { const t3 = c2.getRangeAt(0); - let i2 = null; - if (t3 && "function" == typeof t3.getBoundingClientRect) i2 = t3.getBoundingClientRect(); + let o2 = null; + if (t3 && "function" == typeof t3.getBoundingClientRect) o2 = t3.getBoundingClientRect(); else if (t3 && "function" == typeof t3.getClientRects) { const n3 = null === (e2 = t3.getClientRects) || void 0 === e2 ? void 0 : e2.call(t3); - i2 = n3 && n3.length ? n3[0] : null; + o2 = n3 && n3.length ? n3[0] : null; } - (!i2 || Number.isNaN(i2.top) && Number.isNaN(i2.left)) && (i2 = this.editorView.container.getBoundingClientRect()); + (!o2 || Number.isNaN(o2.top) && Number.isNaN(o2.left)) && (o2 = this.editorView.container.getBoundingClientRect()); const l3 = (null === window || void 0 === window ? void 0 : window.scrollY) || 0, a3 = (null === window || void 0 === window ? void 0 : window.scrollX) || 0; - o2.style.top = `${(null !== (n2 = i2.bottom) && void 0 !== n2 ? n2 : i2.top) + l3 + 5}px`, o2.style.left = `${(null !== (s2 = i2.left) && void 0 !== s2 ? s2 : 0) + a3}px`; + i2.style.top = `${(null !== (n2 = o2.bottom) && void 0 !== n2 ? n2 : o2.top) + l3 + 5}px`, i2.style.left = `${(null !== (s2 = o2.left) && void 0 !== s2 ? s2 : 0) + a3}px`; } - l2.value = t2 || "", this.savedSelection = i(this.editorView.container), this.highlightSelection(), l2.focus(), a2.onclick = null, r2.onclick = null; + l2.value = t2 || "", this.savedSelection = o(this.editorView.container), this.highlightSelection(), l2.focus(), a2.onclick = null, d2.onclick = null; const h2 = this.document.dataIds, u2 = () => { - const t3 = d(l2.value.trim()); - t3 && this.applyHyperlink(t3, h2), o2.style.display = "none"; + const t3 = r(l2.value.trim()); + t3 && this.applyHyperlink(t3, h2), i2.style.display = "none"; }; a2.onclick = u2, l2.onkeydown = (t3) => { "Enter" === t3.key && (t3.preventDefault(), u2()); - }, r2.onclick = () => { - this.removeHyperlink(h2), o2.style.display = "none"; + }, d2.onclick = () => { + this.removeHyperlink(h2), i2.style.display = "none"; }; } } @@ -769,10 +769,10 @@ var require_dist = __commonJS({ }); } applyHyperlink(t2, e2) { - this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), o(this.editorView.container, this.savedSelection); + this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), i(this.editorView.container, this.savedSelection); const [n2, s2] = l(this.editorView); if (n2 < s2) { - const i2 = d(t2); + const o2 = r(t2); e2.length > 1 ? this.document.blocks.forEach((t3) => { if (e2.includes(t3.dataId)) { this.document.selectedBlockId = t3.dataId; @@ -781,16 +781,16 @@ var require_dist = __commonJS({ e3 += t4.text.length; }); let s3 = n2 - e3; - this.document.formatAttribute(s3, e3, "hyperlink", i2); + this.document.formatAttribute(s3, e3, "hyperlink", o2); } - }) : this.document.formatAttribute(n2, s2, "hyperlink", i2), this.editorView.render(); - const o2 = window.getSelection(); - o2 && o2.removeAllRanges(), this.editorView.container.focus(); + }) : this.document.formatAttribute(n2, s2, "hyperlink", o2), this.editorView.render(); + const i2 = window.getSelection(); + i2 && i2.removeAllRanges(), this.editorView.container.focus(); } this.savedSelection = null; } removeHyperlink(t2) { - this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), o(this.editorView.container, this.savedSelection); + this.undoRedoManager.saveUndoSnapshot(), this.removeHighlightSelection(), i(this.editorView.container, this.savedSelection); const [e2, n2] = l(this.editorView); e2 < n2 && (t2.length > 1 ? this.document.blocks.forEach((n3) => { if (t2.includes(n3.dataId)) { @@ -802,7 +802,7 @@ var require_dist = __commonJS({ let s2 = e2 - t3; this.document.formatAttribute(s2, t3, "hyperlink", false); } - }) : this.document.formatAttribute(e2, n2, "hyperlink", false), this.editorView.render(), o(this.editorView.container, this.savedSelection), this.editorView.container.focus()), this.savedSelection = null; + }) : this.document.formatAttribute(e2, n2, "hyperlink", false), this.editorView.render(), i(this.editorView.container, this.savedSelection), this.editorView.container.focus()), this.savedSelection = null; } addClickOutsideListener(t2) { this.removeClickOutsideListener(), this.clickOutsideHandler = (e2) => { @@ -816,25 +816,25 @@ var require_dist = __commonJS({ } showHyperlinkViewButton(t2) { var e2, n2, s2; - const i2 = document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID), o2 = document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID); - if (i2 && o2) { - i2.style.display = "block"; + const o2 = document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID), i2 = document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID); + if (o2 && i2) { + o2.style.display = "block"; const l2 = window.getSelection(); if (l2 && l2.rangeCount > 0) { const t3 = l2.getRangeAt(0); - let o3 = null; - if (t3 && "function" == typeof t3.getBoundingClientRect) o3 = t3.getBoundingClientRect(); + let i3 = null; + if (t3 && "function" == typeof t3.getBoundingClientRect) i3 = t3.getBoundingClientRect(); else if (t3 && "function" == typeof t3.getClientRects) { const n3 = null === (e2 = t3.getClientRects) || void 0 === e2 ? void 0 : e2.call(t3); - o3 = n3 && n3.length ? n3[0] : null; + i3 = n3 && n3.length ? n3[0] : null; } - o3 || (o3 = this.editorView.container.getBoundingClientRect()); - const a2 = (null === window || void 0 === window ? void 0 : window.scrollY) || 0, r2 = (null === window || void 0 === window ? void 0 : window.scrollX) || 0; - o3 && (i2.style.top = `${(null !== (n2 = o3.bottom) && void 0 !== n2 ? n2 : o3.top) + a2 + 5}px`, i2.style.left = `${(null !== (s2 = o3.left) && void 0 !== s2 ? s2 : 0) + r2}px`); + i3 || (i3 = this.editorView.container.getBoundingClientRect()); + const a2 = (null === window || void 0 === window ? void 0 : window.scrollY) || 0, d2 = (null === window || void 0 === window ? void 0 : window.scrollX) || 0; + i3 && (o2.style.top = `${(null !== (n2 = i3.bottom) && void 0 !== n2 ? n2 : i3.top) + a2 + 5}px`, o2.style.left = `${(null !== (s2 = i3.left) && void 0 !== s2 ? s2 : 0) + d2}px`); } - t2 && (o2.innerText = t2, o2.href = d(t2)); + t2 && (i2.innerText = t2, i2.href = r(t2)); } - this.addClickOutsideListener(i2); + this.addClickOutsideListener(o2); } hideHyperlinkViewButton() { const t2 = document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID); @@ -846,20 +846,20 @@ var require_dist = __commonJS({ } function g(t2, e2) { let s2 = Object.assign({}, e2); - const i2 = []; + const o2 = []; if (t2 instanceof HTMLElement) { if ("A" === t2.tagName) { const e3 = t2.getAttribute("href"); e3 && (s2.hyperlink = e3); } "STRONG" !== t2.tagName && "B" !== t2.tagName || (s2.bold = true), "EM" !== t2.tagName && "I" !== t2.tagName || (s2.italic = true), "U" === t2.tagName && (s2.underline = true), t2.childNodes.forEach((t3) => { - i2.push(...g(t3, s2)); + o2.push(...g(t3, s2)); }); } else if (t2 instanceof Text) { const e3 = t2.nodeValue || ""; - "" !== e3.trim() && i2.push(new n(e3, Object.assign({}, s2))); + "" !== e3.trim() && o2.push(new n(e3, Object.assign({}, s2))); } - return i2; + return o2; } const f = { bold: '\n Bold\n \n ', italic: '\n Italic\n \n ', underline: '\n Underline\n \n ', strikethrough: '\n Strikethrough\n \n ', subscript: '\n \n ', superscript: '\n \n ', left_align: '\n Left Align\n \n ', center_align: '\n Center Align\n ', right_align: '\n Right Align', justify: '\n Justify\n ', bullet_list: '\n Bullet List', numbered_list: '\n Numbererd List\n \n ', insert_table: '\n \n \n \n \n \n \n \n ', insert_layout: '\n Insert Layout\n \n ', heading: '\n Heading\n \n ', hyperlink: '\n Hyperlink\n \n \n ', image: '\n Insert Image\n \n ', stop_microphone: ' \n \n \n \n \n ', start_microphone: '\n \n \n \n \n ', close_icon: '\n \n ', emoji: '\n Emoji\n \n \n \n \n ', insert_math: '\n \n ', textToSppech: '\n \n \n \n \n Icon_24px_TexttoSpeech_Color\n \n \n \n \n \n \n \n ', speaker_on: '\n \n \n \n \n ', speaker_off: '\n \n ' }, b = { dropdowns: ["fontFamily", "fontSize", "heading"], colors: ["fontColor", "bgColor"], formatting: ["bold", "italic", "underline", "strikethrough"], alignment: ["alignLeft", "alignCenter", "alignRight"], lists: ["unorderedList", "orderedList"], media: ["hyperlink", "image", "emoji", "insert_math"], utility: ["getHtmlContent", "loadHtmlContent"] }; function y() { @@ -867,13 +867,13 @@ var require_dist = __commonJS({ return t2.className = "toolbar-separator", t2; } function C(t2, e2) { - const n2 = u.EDITOR_ID, s2 = u.TOOLBAR_ID, i2 = u.POPUP_TOOLBAR_ID, o2 = ["Arial", "Times New Roman", "Courier New", "Verdana"], l2 = ["12px", "14px", "16px", "18px", "20px"], a2 = document.getElementById(t2); + const n2 = u.EDITOR_ID, s2 = u.TOOLBAR_ID, o2 = u.POPUP_TOOLBAR_ID, i2 = ["Arial", "Times New Roman", "Courier New", "Verdana"], l2 = ["12px", "14px", "16px", "18px", "20px"], a2 = document.getElementById(t2); if (!a2) throw new Error(u.EDITOR_ELEMENT_NT_FOUND); a2.classList.add("editor-container"); - const r2 = document.createElement("div"); - r2.className = u.TOOLBAR_CLASSNAME, r2.id = s2, a2.appendChild(r2), false === (null == e2 ? void 0 : e2.showToolbar) && (r2.style.display = "none"); const d2 = document.createElement("div"); - d2.id = n2, d2.className = u.EDITOR_CLASSNAME, d2.contentEditable = "true", d2.spellcheck = true, d2.lang = "en", a2.appendChild(d2); + d2.className = u.TOOLBAR_CLASSNAME, d2.id = s2, a2.appendChild(d2), false === (null == e2 ? void 0 : e2.showToolbar) && (d2.style.display = "none"); + const r2 = document.createElement("div"); + r2.id = n2, r2.className = u.EDITOR_CLASSNAME, r2.contentEditable = "true", r2.spellcheck = true, r2.lang = "en", a2.appendChild(r2); const c2 = { bold: "B", italic: "I", underline: "U", hyperlink: "🔗", alignLeft: "⇤", alignCenter: "↔", alignRight: "⇥", unorderedList: "•", orderedList: "1.", fontFamily: "fontFamily", fontSize: "fontSize", fontColor: "A", subscript: "X2", superscript: "X2", justify: "⇄", insert_table: "⊢", insert_layout: "❐", insert_math: "\u03A3", heading: "H", image: "📷", colors: "🎨" }, h2 = { bold: "Bold (Ctrl+B)", italic: "Italic (Ctrl+I)", underline: "Underline (Ctrl+U)", strikethrough: "Strikethrough", hyperlink: "Insert Link (Ctrl+H)", alignLeft: "Align Left (Ctrl+L)", alignCenter: "Align Center (Ctrl+E)", alignRight: "Align Right (Ctrl+R)", unorderedList: "Bullet List", orderedList: "Numbered List", fontColor: "Text Color", bgColor: "Highlight Color", image: "Insert Image", emoji: "Emoji", getHtmlContent: "Get HTML", loadHtmlContent: "Load HTML", insert_table: "Insert table", insert_math: "Insert Equation", textToSpeech: "Text To Sppech" }, p2 = [{ feature: "alignLeft", id: "alignLeft", icon: f.left_align }, { feature: "alignCenter", id: "alignCenter", icon: f.center_align }, { feature: "alignRight", id: "alignRight", icon: f.right_align }, { feature: "unorderedList", id: "unorderedList", icon: f.bullet_list }, { feature: "orderedList", id: "orderedList", icon: f.numbered_list }, { feature: "hyperlink", id: "hyperlink", icon: f.hyperlink }, { feature: "emoji", id: "emoji", icon: f.emoji }, { feature: "strikethrough", id: "strikethrough", icon: f.strikethrough }, { feature: "insert_table", id: "insert_table", icon: f.insert_table }, { feature: "insert_math", id: "insert_math", icon: f.insert_math }, { feature: "subscript", id: "subscript", icon: f.subscript }, { feature: "superscript", id: "superscript", icon: f.superscript }, { feature: "textToSpeech", id: "textToSpeech", icon: f.speaker_on }], m2 = (t3, e3) => { const n3 = document.createElement("select"); return n3.dataset.action = t3, n3.id = t3, e3.forEach((t4) => { @@ -881,7 +881,7 @@ var require_dist = __commonJS({ e4.value = t4, e4.textContent = t4, n3.appendChild(e4); }), n3; }, g2 = document.createElement("div"); - g2.id = i2, g2.className = u.POPUP_TOOLBAR_CLASSNAME, g2.style.display = "none", a2.appendChild(g2), e2.popupFeatures && e2.popupFeatures.forEach((t3, e3) => { + g2.id = o2, g2.className = u.POPUP_TOOLBAR_CLASSNAME, g2.style.display = "none", a2.appendChild(g2), e2.popupFeatures && e2.popupFeatures.forEach((t3, e3) => { e3 > 0 && "hyperlink" === t3 && g2.appendChild(y()); const n3 = p2.find((e4) => e4.feature === t3) || { icon: c2[t3] || t3 }, s3 = document.createElement("button"); s3.dataset.action = t3, s3.innerHTML = n3.icon, s3.dataset.tooltip = h2[t3] || t3.split("_").map((t4) => t4.charAt(0).toUpperCase() + t4.slice(1)).join(" "), g2.appendChild(s3); @@ -892,12 +892,12 @@ var require_dist = __commonJS({ for (const [e3, n4] of Object.entries(b)) if (n4.includes(t4)) return e3; return null; })(t3); - if (n3 > 0 && s3 && C2 && s3 !== C2 && r2.appendChild(y()), C2 = s3, "fontFamily" === t3) { - const t4 = m2(u.FONT_FAMILY_SELECT_ID, o2); - r2.appendChild(t4); + if (n3 > 0 && s3 && C2 && s3 !== C2 && d2.appendChild(y()), C2 = s3, "fontFamily" === t3) { + const t4 = m2(u.FONT_FAMILY_SELECT_ID, i2); + d2.appendChild(t4); } else if ("fontSize" === t3) { const t4 = m2(u.FONT_SIZE_SELECT_ID, l2); - r2.appendChild(t4); + d2.appendChild(t4); } else if ("fontColor" === t3) { if (document.getElementById(u.FONT_COLOR_WRAPPER_ID)) return; const t4 = document.createElement("span"); @@ -908,8 +908,8 @@ var require_dist = __commonJS({ n4.id = u.FONT_COLOR_PICKER_WRAPPER_ID, n4.style.display = "none", n4.style.position = "absolute", n4.style.top = "100%", n4.style.left = "0", n4.style.marginTop = "4px", n4.style.zIndex = "1000", n4.style.backgroundColor = "#ffffff", n4.style.border = "1px solid #d1d1d1", n4.style.borderRadius = "4px", n4.style.padding = "8px", n4.style.boxShadow = "0 2px 8px rgba(0,0,0,0.15)", n4.style.width = "135px"; const s4 = document.createElement("input"); s4.type = "color", s4.id = u.FONT_COLOR_PICKER_ID, s4.setAttribute("data-action", "fontColor"), s4.style.width = "100%", s4.style.height = "32px", s4.style.border = "1px solid #d1d1d1", s4.style.borderRadius = "4px", s4.style.cursor = "pointer", s4.style.marginBottom = "8px", s4.value = "#000000", n4.appendChild(s4); - const i3 = document.createElement("button"); - i3.id = u.FONT_COLOR_RESET_ID, i3.type = "button", i3.textContent = "Reset", i3.style.display = "block", i3.style.width = "100%", i3.style.padding = "6px 12px", i3.style.fontSize = "12px", i3.style.border = "1px solid #000000", i3.style.borderRadius = "4px", i3.style.backgroundColor = "#f8f8f8", i3.style.cursor = "pointer", i3.style.transition = "background-color 0.2s", i3.onmouseenter = () => i3.style.backgroundColor = "#e8e8e8", i3.onmouseleave = () => i3.style.backgroundColor = "#f8f8f8", n4.appendChild(i3), t4.appendChild(n4), r2.appendChild(t4); + const o3 = document.createElement("button"); + o3.id = u.FONT_COLOR_RESET_ID, o3.type = "button", o3.textContent = "Reset", o3.style.display = "block", o3.style.width = "100%", o3.style.padding = "6px 12px", o3.style.fontSize = "12px", o3.style.border = "1px solid #000000", o3.style.borderRadius = "4px", o3.style.backgroundColor = "#f8f8f8", o3.style.cursor = "pointer", o3.style.transition = "background-color 0.2s", o3.onmouseenter = () => o3.style.backgroundColor = "#e8e8e8", o3.onmouseleave = () => o3.style.backgroundColor = "#f8f8f8", n4.appendChild(o3), t4.appendChild(n4), d2.appendChild(t4); } else if ("bgColor" === t3) { if (document.getElementById(u.BG_COLOR_WRAPPER_ID)) return; const t4 = document.createElement("span"); @@ -920,11 +920,11 @@ var require_dist = __commonJS({ n4.id = u.BG_COLOR_PICKER_WRAPPER_ID, n4.style.display = "none", n4.style.position = "absolute", n4.style.top = "100%", n4.style.left = "0", n4.style.marginTop = "4px", n4.style.zIndex = "1000", n4.style.backgroundColor = "#ffffff", n4.style.border = "1px solid #000000", n4.style.borderRadius = "4px", n4.style.padding = "8px", n4.style.boxShadow = "0 2px 8px rgba(0,0,0,0.15)", n4.style.width = "135px"; const s4 = document.createElement("input"); s4.setAttribute("data-action", "bgColor"), s4.type = "color", s4.id = u.BG_COLOR_PICKER_ID, s4.style.width = "100%", s4.style.height = "32px", s4.style.border = "1px solid #000000ff", s4.style.borderRadius = "4px", s4.style.cursor = "pointer", s4.style.marginBottom = "8px", s4.value = "#ffffff", n4.appendChild(s4); - const i3 = document.createElement("button"); - i3.id = u.BG_COLOR_RESET_ID, i3.type = "button", i3.textContent = "Reset", i3.style.display = "block", i3.style.width = "100%", i3.style.padding = "6px 12px", i3.style.fontSize = "12px", i3.style.border = "1px solid #d1d1d1", i3.style.borderRadius = "4px", i3.style.backgroundColor = "#f8f8f8", i3.style.cursor = "pointer", i3.style.transition = "background-color 0.2s", i3.onmouseenter = () => i3.style.backgroundColor = "#e8e8e8", i3.onmouseleave = () => i3.style.backgroundColor = "#f8f8f8", n4.appendChild(i3), t4.appendChild(n4), r2.appendChild(t4); + const o3 = document.createElement("button"); + o3.id = u.BG_COLOR_RESET_ID, o3.type = "button", o3.textContent = "Reset", o3.style.display = "block", o3.style.width = "100%", o3.style.padding = "6px 12px", o3.style.fontSize = "12px", o3.style.border = "1px solid #d1d1d1", o3.style.borderRadius = "4px", o3.style.backgroundColor = "#f8f8f8", o3.style.cursor = "pointer", o3.style.transition = "background-color 0.2s", o3.onmouseenter = () => o3.style.backgroundColor = "#e8e8e8", o3.onmouseleave = () => o3.style.backgroundColor = "#f8f8f8", n4.appendChild(o3), t4.appendChild(n4), d2.appendChild(t4); } else if ("getHtmlContent" === t3) { const t4 = document.createElement("button"); - t4.id = u.GET_HTML_BUTTON_ID, t4.type = "button", t4.textContent = "Get HTML", t4.dataset.tooltip = h2.getHtmlContent, r2.appendChild(t4); + t4.id = u.GET_HTML_BUTTON_ID, t4.type = "button", t4.textContent = "Get HTML", t4.dataset.tooltip = h2.getHtmlContent, d2.appendChild(t4); } else if ("loadHtmlContent" === t3) { const t4 = document.createElement("select"); t4.id = u.LOAD_HTML_BUTTON_ID, t4.dataset.action = "loadHtmlContent", t4.dataset.tooltip = h2.loadHtmlContent, t4.style.cursor = "pointer", t4.style.padding = "4px 8px", t4.style.border = "1px solid #ccc", t4.style.borderRadius = "4px", t4.style.backgroundColor = "#f9f9f9", t4.style.fontSize = "13px", t4.style.outline = "none", t4.style.color = "#333", t4.style.height = "28px", t4.addEventListener("mouseenter", () => { @@ -937,7 +937,7 @@ var require_dist = __commonJS({ [...[{ name: "Default Test", html: u.TEST_HTML_CODE }, { name: "Blog Post", html: u.TEST_BLOG_POST_HTML_CODE }, { name: "Newsletter", html: u.TEST_NEWSLATER_HTML_CODE }, { name: "Resume", html: u.TEST_RESUME_HTML_CODE }, { name: "Email", html: u.TEST_EMAIL_HTML_CODE }, { name: "Meeting Notes", html: u.TEST_MEETING_HTML_CODE }], ...e2.templates || []].forEach((e3, n5) => { const s4 = document.createElement("option"); s4.value = n5.toString(), s4.dataset.html = e3.html, s4.textContent = e3.name, t4.appendChild(s4); - }), r2.appendChild(t4); + }), d2.appendChild(t4); } else if ("heading" === t3) { const t4 = document.createElement("select"); t4.id = u.HEADING_SELECT_ID, t4.dataset.action = "heading", t4.dataset.tooltip = h2.heading || "Heading", t4.style.cursor = "pointer", t4.style.padding = "4px 8px", t4.style.border = "1px solid #ccc", t4.style.borderRadius = "4px", t4.style.backgroundColor = "#f9f9f9", t4.style.fontSize = "13px", t4.style.outline = "none", t4.style.color = "#333", t4.style.height = "28px", t4.addEventListener("mouseenter", () => { @@ -949,29 +949,29 @@ var require_dist = __commonJS({ e3.value = "", e3.textContent = "Normal", t4.appendChild(e3), ["H1", "H2", "H3", "H4", "H5", "H6"].forEach((e4, n4) => { const s4 = document.createElement("option"); s4.value = e4.toLowerCase(), s4.textContent = `Heading ${n4 + 1}`, t4.appendChild(s4); - }), r2.appendChild(t4); + }), d2.appendChild(t4); } else if (p2.map((t4) => t4.feature).includes(t3)) { const e3 = p2.find((e4) => e4.feature === t3), n4 = document.createElement("button"); - n4.id = t3, n4.dataset.action = t3, n4.innerHTML = (null == e3 ? void 0 : e3.icon) || "", n4.dataset.tooltip = h2[t3] || t3, r2.appendChild(n4); + n4.id = t3, n4.dataset.action = t3, n4.innerHTML = (null == e3 ? void 0 : e3.icon) || "", n4.dataset.tooltip = h2[t3] || t3, d2.appendChild(n4); } else { const e3 = document.createElement("button"); - e3.dataset.action = t3, e3.innerHTML = c2[t3] || t3, e3.id = t3, e3.dataset.tooltip = h2[t3] || t3.split("_").map((t4) => t4.charAt(0).toUpperCase() + t4.slice(1)).join(" "), r2.appendChild(e3); + e3.dataset.action = t3, e3.innerHTML = c2[t3] || t3, e3.id = t3, e3.dataset.tooltip = h2[t3] || t3.split("_").map((t4) => t4.charAt(0).toUpperCase() + t4.slice(1)).join(" "), d2.appendChild(e3); } }); const k2 = document.createElement("div"); k2.id = u.HYPERLINK_CONTAINER_ID, k2.style.display = "none"; const v2 = document.createElement("input"); v2.type = "text", v2.id = u.HYPERLINK_INPUT_ID, v2.placeholder = u.HYPERLINK_PLACEHOLDER; - const x2 = document.createElement("button"); - x2.id = u.HYPERLINK_APPLY_BTN_ID, x2.textContent = "Link"; const I2 = document.createElement("button"); - I2.id = u.HYPERLINK_CANCEL_BTN_ID, I2.textContent = "Unlink", k2.appendChild(v2), k2.appendChild(x2), k2.appendChild(I2), r2.appendChild(k2); + I2.id = u.HYPERLINK_APPLY_BTN_ID, I2.textContent = "Link"; + const x2 = document.createElement("button"); + x2.id = u.HYPERLINK_CANCEL_BTN_ID, x2.textContent = "Unlink", k2.appendChild(v2), k2.appendChild(I2), k2.appendChild(x2), d2.appendChild(k2); const E2 = document.createElement("div"); E2.id = u.VIEW_HYPERLINK_CONTAINER_ID, E2.style.display = "none"; const w2 = document.createElement("span"); w2.id = u.VIEW_HYPERLINK_LABEL_ID, w2.innerHTML = "Visit URL : "; const _2 = document.createElement("a"); - return _2.id = u.VIEW_HYPERLINK_ANCHOR_ID, _2.href = "", _2.target = "_blank", E2.appendChild(w2), E2.appendChild(_2), r2.appendChild(E2), { mainEditorId: n2, toolbarId: s2, popupToolbarId: i2 }; + return _2.id = u.VIEW_HYPERLINK_ANCHOR_ID, _2.href = "", _2.target = "_blank", E2.appendChild(w2), E2.appendChild(_2), d2.appendChild(E2), { mainEditorId: n2, toolbarId: s2, popupToolbarId: o2 }; } class k { constructor(t2) { @@ -987,12 +987,12 @@ var require_dist = __commonJS({ } parseElement(t2) { const e2 = t2.getAttribute("data-id") || `data-id-${Date.now()}-${Math.floor(1e3 * Math.random())}`, n2 = t2.className || "paragraph-block", s2 = t2.style.textAlign || "left"; - let i2 = null, o2 = null; - "UL" === t2.tagName ? i2 = "ul" : "OL" === t2.tagName && (i2 = "ol", o2 = parseInt(t2.getAttribute("start") || "1", 10)); + let o2 = null, i2 = null; + "UL" === t2.tagName ? o2 = "ul" : "OL" === t2.tagName && (o2 = "ol", i2 = parseInt(t2.getAttribute("start") || "1", 10)); let l2 = []; - i2 ? this.parseListItems(t2, l2) : this.parseParagraphText(t2, l2); - const a2 = t2.tagName.toLowerCase(), r2 = a2.match(/^h[1-6]$/) ? a2 : null; - return Object.assign(Object.assign(Object.assign(Object.assign({ dataId: e2, class: n2, alignment: s2, pieces: l2 }, i2 ? { listType: i2 } : {}), null !== o2 ? { listStart: o2 } : {}), {}), r2 ? { heading: r2 } : {}); + o2 ? this.parseListItems(t2, l2) : this.parseParagraphText(t2, l2); + const a2 = t2.tagName.toLowerCase(), d2 = a2.match(/^h[1-6]$/) ? a2 : null; + return Object.assign(Object.assign(Object.assign(Object.assign({ dataId: e2, class: n2, alignment: s2, pieces: l2 }, o2 ? { listType: o2 } : {}), null !== i2 ? { listStart: i2 } : {}), {}), d2 ? { heading: d2 } : {}); } parseListItems(t2, e2) { t2.querySelectorAll("li").forEach((t3) => { @@ -1001,14 +1001,14 @@ var require_dist = __commonJS({ }); } parseParagraphText(t2, e2) { - const s2 = t2.querySelectorAll("span"), i2 = /* @__PURE__ */ new Map(); + const s2 = t2.querySelectorAll("span"), o2 = /* @__PURE__ */ new Map(); s2.forEach((t3) => { const e3 = this.extractTextAttributes(t3); if (console.log(e3, "piece parseParagraphText span", t3.textContent, t3.style.color), e3) { - const t4 = i2.get(e3.text); - t4 ? (t4.attributes.bold = t4.attributes.bold || e3.attributes.bold, t4.attributes.italic = t4.attributes.italic || e3.attributes.italic, t4.attributes.underline = t4.attributes.underline || e3.attributes.underline, t4.attributes.fontFamily = e3.attributes.fontFamily || t4.attributes.fontFamily, t4.attributes.fontSize = e3.attributes.fontSize || t4.attributes.fontSize, t4.attributes.fontColor = e3.attributes.fontColor || t4.attributes.fontColor, t4.attributes.bgColor = e3.attributes.bgColor || t4.attributes.bgColor) : i2.set(e3.text, Object.assign({}, e3)); + const t4 = o2.get(e3.text); + t4 ? (t4.attributes.bold = t4.attributes.bold || e3.attributes.bold, t4.attributes.italic = t4.attributes.italic || e3.attributes.italic, t4.attributes.underline = t4.attributes.underline || e3.attributes.underline, t4.attributes.fontFamily = e3.attributes.fontFamily || t4.attributes.fontFamily, t4.attributes.fontSize = e3.attributes.fontSize || t4.attributes.fontSize, t4.attributes.fontColor = e3.attributes.fontColor || t4.attributes.fontColor, t4.attributes.bgColor = e3.attributes.bgColor || t4.attributes.bgColor) : o2.set(e3.text, Object.assign({}, e3)); } - }), i2.forEach((t3) => { + }), o2.forEach((t3) => { e2.push(new n(t3.text, t3.attributes)); }), console.log(e2, "pieces--parseParagraphText (merged)"); } @@ -1069,31 +1069,31 @@ var require_dist = __commonJS({ insertImageAtPosition(t2, e2, s2) { if (!t2 || "number" != typeof e2 || !this.editorView) return; console.log(t2, e2, s2, "vicky insertImageAtPosition", this.document.blocks); - const i2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, o2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, l2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, a2 = { dataId: i2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "image", image: t2 }, r2 = { dataId: o2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "text" }; - let d2 = this.document.selectedBlockId; + const o2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, i2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, l2 = `data-id-${Date.now()}-${1e3 * Math.random()}`, a2 = { dataId: o2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "image", image: t2 }, d2 = { dataId: i2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: [new n(" ")], type: "text" }; + let r2 = this.document.selectedBlockId; const c2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); let h2 = []; const { remainingText: p2, piece: m2 } = (function(t3, e3) { const n2 = window.getSelection(); if (!n2 || 0 === n2.rangeCount) return { remainingText: "", piece: null }; const s3 = n2.getRangeAt(0).startContainer; - let i3 = ""; - const o3 = e3.blocks.filter((e4) => { + let o3 = ""; + const i3 = e3.blocks.filter((e4) => { if (e4.dataId === t3) return e4; }); - if (!o3[0] || !o3[0].pieces) return { remainingText: "", piece: null }; + if (!i3[0] || !i3[0].pieces) return { remainingText: "", piece: null }; const l3 = document.querySelector(`[data-id="${t3}"]`), a3 = e3.getCursorOffsetInParent(`[data-id="${t3}"]`); - let r3 = [], d3 = 0; - if (o3[0].pieces.forEach((t4, e4) => { - i3 += t4.text, (null == a3 ? void 0 : a3.innerText) === t4.text && (d3 = e4, r3.push(t4)); - }), o3[0].pieces.length > 1 && o3[0].pieces.forEach((t4, e4) => { - d3 < e4 && r3.push(t4); + let d3 = [], r3 = 0; + if (i3[0].pieces.forEach((t4, e4) => { + o3 += t4.text, (null == a3 ? void 0 : a3.innerText) === t4.text && (r3 = e4, d3.push(t4)); + }), i3[0].pieces.length > 1 && i3[0].pieces.forEach((t4, e4) => { + r3 < e4 && d3.push(t4); }), !l3) return console.error(`Element with data-id "${t3}" not found.`), { remainingText: "", piece: null }; if (!l3.contains(s3)) return console.error(`Cursor is not inside the element with data-id "${t3}".`), { remainingText: "", piece: null }; - const c3 = i3, h3 = null == a3 ? void 0 : a3.offset, u2 = c3.slice(h3), p3 = c3.slice(0, h3); - return l3.textContent = p3, { remainingText: u2, piece: r3 }; - })(d2 || "", this.document); - console.log(d2 || "", this.document, "extractTextFromDataId-vicky", p2, m2); + const c3 = o3, h3 = null == a3 ? void 0 : a3.offset, u2 = c3.slice(h3), p3 = c3.slice(0, h3); + return l3.textContent = p3, { remainingText: u2, piece: d3 }; + })(r2 || "", this.document); + console.log(r2 || "", this.document, "extractTextFromDataId-vicky", p2, m2); const g2 = " " + p2; let f2 = this.document.blocks; if (g2.length > 0) { @@ -1107,9 +1107,9 @@ var require_dist = __commonJS({ })(this.document.blocks, this.document.selectedBlockId || "", { dataId: l2, class: u.PARAGRAPH_BLOCK_CLASS, pieces: e3, type: "text" }); } this.document.blocks = f2, this.document.deleteRange(this.currentCursorLocation, this.currentCursorLocation + p2.length, this.document.selectedBlockId, this.document.currentOffset), this.document.blocks.length > c2 + 1 ? this.document.blocks.forEach((t3, e3) => { - h2.push(t3), e3 === c2 ? h2.push(a2) : d2 === this.document.selectedBlockId && (d2 = t3.dataId); - }) : (h2 = [...this.document.blocks, a2, r2], d2 = r2.dataId), this.document.blocks = h2, this.editorView.render(), this.document.selectedBlockId = d2; - const b2 = document.querySelector(`[data-id="${d2}"]`); + h2.push(t3), e3 === c2 ? h2.push(a2) : r2 === this.document.selectedBlockId && (r2 = t3.dataId); + }) : (h2 = [...this.document.blocks, a2, d2], r2 = d2.dataId), this.document.blocks = h2, this.editorView.render(), this.document.selectedBlockId = r2; + const b2 = document.querySelector(`[data-id="${r2}"]`); b2.focus(), setTimeout(() => { const t3 = document.createRange(), e3 = window.getSelection(); if (b2.firstChild) t3.setStart(b2.firstChild, 1); @@ -1124,8 +1124,8 @@ var require_dist = __commonJS({ if (!t2 || !e2) return document.createDocumentFragment(); const n2 = document.createDocumentFragment(), s2 = document.createElement("img"); s2.src = t2, s2.style.maxWidth = "30%", s2.setAttribute("contenteditable", "false"), n2.appendChild(s2); - const i2 = document.createElement("span"); - return i2.setAttribute("contenteditable", "false"), i2.appendChild(n2), s2.addEventListener("click", () => this.addStyleToImage(e2)), i2; + const o2 = document.createElement("span"); + return o2.setAttribute("contenteditable", "false"), o2.appendChild(n2), s2.addEventListener("click", () => this.addStyleToImage(e2)), o2; } addStyleToImage(t2) { if (t2 && !this.isCrossIconVisible) { @@ -1133,10 +1133,10 @@ var require_dist = __commonJS({ n2 && (n2.style.position = "relative"); const s2 = null == e2 ? void 0 : e2.querySelector("img"); s2 && (s2.style.border = "2px solid blue"); - const i2 = document.createElement("div"); - i2.className = u.IMAGE_CROSS_CLASS, i2.innerHTML = "x", Object.assign(i2.style, { position: "absolute", top: "0", left: "50%", transform: "translate(-50%, 0)", background: "#fff", borderRadius: "50%", width: "30px", height: "30px", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", border: "3px solid blue", zIndex: "999" }), i2.addEventListener("mouseover", () => i2.style.border = "3px solid black"), i2.addEventListener("mouseout", () => i2.style.border = "3px solid blue"), i2.addEventListener("click", (t3) => { + const o2 = document.createElement("div"); + o2.className = u.IMAGE_CROSS_CLASS, o2.innerHTML = "x", Object.assign(o2.style, { position: "absolute", top: "0", left: "50%", transform: "translate(-50%, 0)", background: "#fff", borderRadius: "50%", width: "30px", height: "30px", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", border: "3px solid blue", zIndex: "999" }), o2.addEventListener("mouseover", () => o2.style.border = "3px solid black"), o2.addEventListener("mouseout", () => o2.style.border = "3px solid blue"), o2.addEventListener("click", (t3) => { t3.stopPropagation(), this.deleteImage(); - }), null == n2 || n2.appendChild(i2), this.isImageHighlighted = true, this.highLightedImageDataId = t2, this.isCrossIconVisible = true; + }), null == n2 || n2.appendChild(o2), this.isImageHighlighted = true, this.highLightedImageDataId = t2, this.isCrossIconVisible = true; } } clearImageStyling() { @@ -1156,7 +1156,7 @@ var require_dist = __commonJS({ this.highLightedImageDataId && (this.document.blocks = this.document.blocks.filter((t2) => t2.dataId !== this.highLightedImageDataId), this.highLightedImageDataId = "", this.isImageHighlighted = false, this.clearImageStyling(), this.document.emit("documentChanged", this)); } } - class x { + class I { constructor(t2, e2) { this.snapshotUndoStack = [], this.snapshotRedoStack = [], this.maxSnapshots = 5e3, this.document = t2, this.editorView = e2; } @@ -1165,7 +1165,7 @@ var require_dist = __commonJS({ return { blocks: JSON.parse(JSON.stringify(this.document.blocks)), dataIds: [...this.document.dataIds], selectedBlockId: this.document.selectedBlockId, currentOffset: this.document.currentOffset, selection: this.getCurrentSelection(), cursorPosition: t2 }; } getCurrentSelection() { - const t2 = i(this.document.editorView.container); + const t2 = o(this.document.editorView.container); return t2 ? { start: t2.start, end: t2.end } : { start: 0, end: 0 }; } saveUndoSnapshot() { @@ -1194,7 +1194,7 @@ var require_dist = __commonJS({ e2 && this.restoreSnapshot(e2); } } - class I extends e { + class x extends e { constructor(t2) { super(), this.container = t2, this.setupButtons(); } @@ -1214,8 +1214,8 @@ var require_dist = __commonJS({ if (0 === e2.width && 0 === e2.height) return void this.hide(); this.container.style.display = "flex"; const n2 = this.container.offsetWidth, s2 = this.container.offsetHeight; - let i2 = e2.top + window.scrollY - s2 - 8, o2 = e2.left + window.scrollX + e2.width / 2 - n2 / 2; - i2 < window.scrollY && (i2 = e2.bottom + window.scrollY + 8), o2 < 0 && (o2 = 5), this.container.style.top = `${i2}px`, this.container.style.left = `${o2}px`; + let o2 = e2.top + window.scrollY - s2 - 8, i2 = e2.left + window.scrollX + e2.width / 2 - n2 / 2; + o2 < window.scrollY && (o2 = e2.bottom + window.scrollY + 8), i2 < 0 && (i2 = 5), this.container.style.top = `${o2}px`, this.container.style.left = `${i2}px`; } hide() { this.container.style.display = "none"; @@ -1276,8 +1276,8 @@ var require_dist = __commonJS({ class w { constructor(t2, e2, n2, s2) { this.isRecording = false, this.silenceTimer = null, this.document = t2, this.editorView = e2, this.onStateChange = n2, this.insertText = s2; - const i2 = window.SpeechRecognition || window.webkitSpeechRecognition; - i2 ? (this.recognition = new i2(), this.recognition.continuous = true, this.recognition.interimResults = false, this.recognition.onresult = (t3) => { + const o2 = window.SpeechRecognition || window.webkitSpeechRecognition; + o2 ? (this.recognition = new o2(), this.recognition.continuous = true, this.recognition.interimResults = false, this.recognition.onresult = (t3) => { const e3 = t3.results[t3.results.length - 1]; if (e3.isFinal) { const t4 = e3[0].transcript + " "; @@ -1324,18 +1324,18 @@ var require_dist = __commonJS({ n2.className = "main_modal_header"; const s2 = document.createElement("h3"); s2.className = "main_modal_title", s2.textContent = "Insert Table"; - const i2 = document.createElement("button"); - i2.className = "main_modal_close", i2.setAttribute("aria-label", "Close"), i2.innerHTML = f.close_icon, i2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(i2); - const o2 = document.createElement("div"); - o2.className = "main_modal_body"; + const o2 = document.createElement("button"); + o2.className = "main_modal_close", o2.setAttribute("aria-label", "Close"), o2.innerHTML = f.close_icon, o2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(o2); + const i2 = document.createElement("div"); + i2.className = "main_modal_body"; const l2 = document.createElement("div"); l2.className = "main_modal_inputs"; const a2 = document.createElement("div"); a2.className = "all_input"; - const r2 = document.createElement("label"); - r2.textContent = "Rows", r2.className = "input_label", r2.setAttribute("for", "modal_input_row"); - const d2 = document.createElement("input"); - d2.type = "number", d2.id = "modal_input_row", d2.className = "modal_inputs", d2.placeholder = "Enter the row number 1 to 20", d2.min = "1", d2.max = "20", d2.value = "3", a2.appendChild(r2), a2.appendChild(d2); + const d2 = document.createElement("label"); + d2.textContent = "Rows", d2.className = "input_label", d2.setAttribute("for", "modal_input_row"); + const r2 = document.createElement("input"); + r2.type = "number", r2.id = "modal_input_row", r2.className = "modal_inputs", r2.placeholder = "Enter the row number 1 to 20", r2.min = "1", r2.max = "20", r2.value = "3", a2.appendChild(d2), a2.appendChild(r2); const c2 = document.createElement("div"); c2.className = "all_input"; const h2 = document.createElement("label"); @@ -1348,9 +1348,9 @@ var require_dist = __commonJS({ m2.className = "modal_close_button modal_close_button_secondary", m2.textContent = "Cancel", m2.type = "button", m2.onclick = () => this.closeModal(); const g2 = document.createElement("button"); g2.className = "modal_close_button modal_close_button_primary", g2.textContent = "Insert Table", g2.type = "button", g2.onclick = () => { - const t3 = Math.max(1, Math.min(20, parseInt(d2.value) || 3)), e3 = Math.max(1, Math.min(20, parseInt(u2.value) || 3)); + const t3 = Math.max(1, Math.min(20, parseInt(r2.value) || 3)), e3 = Math.max(1, Math.min(20, parseInt(u2.value) || 3)); this.insertTable(t3, e3), this.closeModal(); - }, p2.appendChild(m2), p2.appendChild(g2), o2.appendChild(l2), e2.appendChild(n2), e2.appendChild(o2), e2.appendChild(p2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { + }, p2.appendChild(m2), p2.appendChild(g2), i2.appendChild(l2), e2.appendChild(n2), e2.appendChild(i2), e2.appendChild(p2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { e3.target === t2 && this.closeModal(); }), document.body.appendChild(t2), this.modal = t2, requestAnimationFrame(() => { t2.classList.add("table_modal_visible"); @@ -1363,23 +1363,23 @@ var require_dist = __commonJS({ }, 200)); } insertTable(t2, e2) { - const s2 = `data-id-${Date.now()}`, i2 = `data-id-${Date.now() + 1}`, o2 = document.createElement("div"); - o2.className = "table_wrapper", o2.setAttribute("data-type", "tbl"), o2.setAttribute("data-id", s2), o2.setAttribute("contenteditable", "false"); + const s2 = `data-id-${Date.now()}`, o2 = `data-id-${Date.now() + 1}`, i2 = document.createElement("div"); + i2.className = "table_wrapper", i2.setAttribute("data-type", "tbl"), i2.setAttribute("data-id", s2), i2.setAttribute("contenteditable", "false"); const l2 = document.createElement("div"); l2.className = "table_controls"; const a2 = document.createElement("button"); a2.className = "table_delete_button", a2.innerHTML = f.close_icon, a2.onclick = () => { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === s2); -1 !== t3 && (this.document.blocks.splice(t3, 1), this.document.selectedBlockId === s2 && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); - }, l2.appendChild(a2), o2.appendChild(l2); - const r2 = document.createElement("table"); - r2.className = "tbl"; - const d2 = document.createElement("thead"), c2 = document.createElement("tr"); + }, l2.appendChild(a2), i2.appendChild(l2); + const d2 = document.createElement("table"); + d2.className = "tbl"; + const r2 = document.createElement("thead"), c2 = document.createElement("tr"); for (let t3 = 0; t3 < e2; t3++) { const e3 = document.createElement("th"); e3.className = "tblCell tbl_header_cell", e3.contentEditable = "true", e3.setAttribute("data-placeholder", `Header ${t3 + 1}`), this.setupCellEvents(e3), c2.appendChild(e3); } - d2.appendChild(c2), r2.appendChild(d2); + r2.appendChild(c2), d2.appendChild(r2); const h2 = document.createElement("tbody"); for (let n2 = 0; n2 < t2; n2++) { const t3 = document.createElement("tr"); @@ -1389,16 +1389,16 @@ var require_dist = __commonJS({ } h2.appendChild(t3); } - r2.appendChild(h2), o2.appendChild(r2); + d2.appendChild(h2), i2.appendChild(d2); let u2 = this.document.blocks.length; if (this.document.selectedBlockId) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); -1 !== t3 && (u2 = t3 + 1); } - const p2 = { dataId: s2, type: "table", element: o2 }, m2 = { dataId: i2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; + const p2 = { dataId: s2, type: "table", element: i2 }, m2 = { dataId: o2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; this.document.blocks.splice(u2, 0, p2, m2), this.document.selectedBlockId = s2, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document), setTimeout(() => { - const t3 = o2.querySelector(".tblCell"); - t3 && (t3.focus(), this.setActiveTable(o2.querySelector("table"))); + const t3 = i2.querySelector(".tblCell"); + t3 && (t3.focus(), this.setActiveTable(i2.querySelector("table"))); }, 0); } setupCellEvents(t2) { @@ -1412,9 +1412,9 @@ var require_dist = __commonJS({ const s2 = e2; if ("Tab" === s2.key) { s2.preventDefault(), s2.stopPropagation(); - const e3 = Array.from((null === (n2 = t2.closest("table")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".tblCell")) || []), i2 = e3.indexOf(t2); - if (s2.shiftKey) i2 > 0 && (e3[i2 - 1].focus(), this.selectAllInCell(e3[i2 - 1])); - else if (i2 < e3.length - 1) e3[i2 + 1].focus(), this.selectAllInCell(e3[i2 + 1]); + const e3 = Array.from((null === (n2 = t2.closest("table")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".tblCell")) || []), o2 = e3.indexOf(t2); + if (s2.shiftKey) o2 > 0 && (e3[o2 - 1].focus(), this.selectAllInCell(e3[o2 - 1])); + else if (o2 < e3.length - 1) e3[o2 + 1].focus(), this.selectAllInCell(e3[o2 + 1]); else { const e4 = t2.closest(".table_wrapper"), n3 = null == e4 ? void 0 : e4.nextElementSibling; n3 && (n3.focus(), this.clearTableActive()); @@ -1509,14 +1509,14 @@ var require_dist = __commonJS({ n3.style.marginBottom = "12px"; const s2 = document.createElement("div"); s2.textContent = t3, s2.style.cssText = "\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 6px;\n ", n3.appendChild(s2); - const i2 = document.createElement("div"); - i2.style.cssText = "\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 2px;\n ", e3.forEach((t4) => { + const o2 = document.createElement("div"); + o2.style.cssText = "\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 2px;\n ", e3.forEach((t4) => { const e4 = this.resolveChar(t4), n4 = document.createElement("button"); n4.textContent = e4, n4.title = `${t4.name} ${t4.shortcode}`, n4.style.cssText = "\n font-size: 20px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 5px;\n padding: 4px;\n line-height: 1.2;\n transition: background 0.1s;\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n ", n4.addEventListener("mouseenter", () => n4.style.background = "#f0f0f0"), n4.addEventListener("mouseleave", () => n4.style.background = "transparent"), n4.addEventListener("mousedown", (n5) => { var s3; n5.preventDefault(), this.saveRecentEmoji(t4), null === (s3 = this.onSelectCallback) || void 0 === s3 || s3.call(this, e4); - }), i2.appendChild(n4); - }), n3.appendChild(i2), this.gridArea.appendChild(n3); + }), o2.appendChild(n4); + }), n3.appendChild(o2), this.gridArea.appendChild(n3); }; if (e2) { const t3 = []; @@ -1546,8 +1546,8 @@ var require_dist = __commonJS({ n2.className = "code_editor_modal_title"; const s2 = document.createElement("div"); s2.className = "code_editor_modal_actions", this.copyBtn = document.createElement("button"), this.copyBtn.className = "copy_editor_btn", this.copyBtn.innerText = "Copy", this.copyBtn.onclick = () => this.handleCopy(), this.saveBtn = document.createElement("button"), this.saveBtn.className = "copy_editor_btn copy_editor_btn--primary", this.saveBtn.innerText = "Save", this.saveBtn.onclick = () => this.handleSave(), this.cancelBtn = document.createElement("button"), this.cancelBtn.className = "copy_editor_btn copy_editor_btn--cancel", this.cancelBtn.innerText = "Cancel", this.cancelBtn.onclick = () => this.handleClose(), s2.appendChild(this.copyBtn), s2.appendChild(this.saveBtn), s2.appendChild(this.cancelBtn), e2.appendChild(n2), e2.appendChild(s2); - const i2 = document.createElement("div"); - i2.className = "editor_moal_wrapper", this.lineNumbers = document.createElement("div"), this.lineNumbers.className = "editor_moal_line_number", this.pre = document.createElement("pre"), this.pre.className = "editor_modal_pre_block", this.pre.setAttribute("aria-hidden", "true"), this.codeHighlight = document.createElement("code"), this.codeHighlight.className = "modal_editor_highlight", this.pre.appendChild(this.codeHighlight), this.textArea = document.createElement("textarea"), this.textArea.className = "modal_editor_text_area", this.textArea.spellcheck = false, i2.appendChild(this.lineNumbers), i2.appendChild(this.pre), i2.appendChild(this.textArea), t2.appendChild(e2), t2.appendChild(i2), this.container.appendChild(t2), document.body.appendChild(this.container), this.attachEventListeners(); + const o2 = document.createElement("div"); + o2.className = "editor_moal_wrapper", this.lineNumbers = document.createElement("div"), this.lineNumbers.className = "editor_moal_line_number", this.pre = document.createElement("pre"), this.pre.className = "editor_modal_pre_block", this.pre.setAttribute("aria-hidden", "true"), this.codeHighlight = document.createElement("code"), this.codeHighlight.className = "modal_editor_highlight", this.pre.appendChild(this.codeHighlight), this.textArea = document.createElement("textarea"), this.textArea.className = "modal_editor_text_area", this.textArea.spellcheck = false, o2.appendChild(this.lineNumbers), o2.appendChild(this.pre), o2.appendChild(this.textArea), t2.appendChild(e2), t2.appendChild(o2), this.container.appendChild(t2), document.body.appendChild(this.container), this.attachEventListeners(); } attachEventListeners() { this.textArea.addEventListener("input", () => { @@ -1602,10 +1602,10 @@ var require_dist = __commonJS({ n2.className = "main_modal_header"; const s2 = document.createElement("h3"); s2.className = "main_modal_title", s2.textContent = "Insert Layout"; - const i2 = document.createElement("button"); - i2.className = "main_modal_close", i2.setAttribute("aria-label", "Close"), i2.innerHTML = f.close_icon, i2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(i2); - const o2 = document.createElement("div"); - o2.className = "main_modal_body"; + const o2 = document.createElement("button"); + o2.className = "main_modal_close", o2.setAttribute("aria-label", "Close"), o2.innerHTML = f.close_icon, o2.onclick = () => this.closeModal(), n2.appendChild(s2), n2.appendChild(o2); + const i2 = document.createElement("div"); + i2.className = "main_modal_body"; const l2 = document.createElement("label"); l2.textContent = "Preset Splits", l2.className = "input_label", l2.style.display = "block", l2.style.marginBottom = "8px"; const a2 = document.createElement("div"); @@ -1616,17 +1616,17 @@ var require_dist = __commonJS({ this.insertLayout(t3.cols, t3.widths), this.closeModal(); }, a2.appendChild(e3); }); - const r2 = document.createElement("label"); - r2.textContent = "Or Custom Splits (comma separated %)", r2.className = "input_label", r2.style.display = "block", r2.style.marginBottom = "8px"; - const d2 = document.createElement("input"); - d2.type = "text", d2.className = "modal_inputs", d2.placeholder = "e.g. 20, 60, 20", d2.style.width = "100%", o2.appendChild(l2), o2.appendChild(a2), o2.appendChild(r2), o2.appendChild(d2); + const d2 = document.createElement("label"); + d2.textContent = "Or Custom Splits (comma separated %)", d2.className = "input_label", d2.style.display = "block", d2.style.marginBottom = "8px"; + const r2 = document.createElement("input"); + r2.type = "text", r2.className = "modal_inputs", r2.placeholder = "e.g. 20, 60, 20", r2.style.width = "100%", i2.appendChild(l2), i2.appendChild(a2), i2.appendChild(d2), i2.appendChild(r2); const c2 = document.createElement("div"); c2.className = "main_modal_footer"; const h2 = document.createElement("button"); h2.className = "modal_close_button modal_close_button_secondary", h2.textContent = "Cancel", h2.type = "button", h2.onclick = () => this.closeModal(); const u2 = document.createElement("button"); u2.className = "modal_close_button modal_close_button_primary", u2.textContent = "Insert Custom", u2.type = "button", u2.onclick = () => { - const t3 = d2.value.trim(); + const t3 = r2.value.trim(); if (t3) { const e3 = t3.split(",").map((t4) => parseFloat(t4.trim())).filter((t4) => !isNaN(t4)); if (e3.length > 0) { @@ -1635,7 +1635,7 @@ var require_dist = __commonJS({ } else this.insertLayout(2, [50, 50]); } else this.insertLayout(2, [50, 50]); this.closeModal(); - }, c2.appendChild(h2), c2.appendChild(u2), e2.appendChild(n2), e2.appendChild(o2), e2.appendChild(c2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { + }, c2.appendChild(h2), c2.appendChild(u2), e2.appendChild(n2), e2.appendChild(i2), e2.appendChild(c2), t2.appendChild(e2), t2.addEventListener("click", (e3) => { e3.target === t2 && this.closeModal(); }), document.body.appendChild(t2), this.modal = t2, requestAnimationFrame(() => { t2.classList.add("table_modal_visible"); @@ -1648,31 +1648,31 @@ var require_dist = __commonJS({ }, 200)); } insertLayout(t2, e2) { - const s2 = `data-id-${Date.now()}`, i2 = `data-id-${Date.now() + 1}`, o2 = document.createElement("div"); - o2.className = "layout_wrapper", o2.setAttribute("data-type", "layout"), o2.setAttribute("data-id", s2), o2.setAttribute("contenteditable", "false"); + const s2 = `data-id-${Date.now()}`, o2 = `data-id-${Date.now() + 1}`, i2 = document.createElement("div"); + i2.className = "layout_wrapper", i2.setAttribute("data-type", "layout"), i2.setAttribute("data-id", s2), i2.setAttribute("contenteditable", "false"); const l2 = document.createElement("div"); l2.className = "table_controls"; const a2 = document.createElement("button"); a2.className = "table_delete_button", a2.innerHTML = f.close_icon, a2.onclick = () => { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === s2); -1 !== t3 && (this.document.blocks.splice(t3, 1), this.document.selectedBlockId === s2 && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); - }, l2.appendChild(a2), o2.appendChild(l2); - const r2 = document.createElement("div"); - r2.className = "layout_container", r2.style.display = "flex", r2.style.width = "100%", r2.style.gap = "10px"; + }, l2.appendChild(a2), i2.appendChild(l2); + const d2 = document.createElement("div"); + d2.className = "layout_container", d2.style.display = "flex", d2.style.width = "100%", d2.style.gap = "10px"; for (let n2 = 0; n2 < t2; n2++) { const s3 = document.createElement("div"); - s3.className = "layout_column tblCell", s3.style.flex = `0 0 calc(${e2[n2]}% - ${10 * (t2 - 1) / t2}px)`, s3.style.border = "1px dashed #ccc", s3.style.padding = "10px", s3.style.minHeight = "40px", s3.style.boxSizing = "border-box", s3.contentEditable = "true", s3.setAttribute("data-placeholder", `Column ${n2 + 1}`), this.setupCellEvents(s3), r2.appendChild(s3); + s3.className = "layout_column tblCell", s3.style.flex = `0 0 calc(${e2[n2]}% - ${10 * (t2 - 1) / t2}px)`, s3.style.border = "1px dashed #ccc", s3.style.padding = "10px", s3.style.minHeight = "40px", s3.style.boxSizing = "border-box", s3.contentEditable = "true", s3.setAttribute("data-placeholder", `Column ${n2 + 1}`), this.setupCellEvents(s3), d2.appendChild(s3); } - o2.appendChild(r2); - let d2 = this.document.blocks.length; + i2.appendChild(d2); + let r2 = this.document.blocks.length; if (this.document.selectedBlockId) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); - -1 !== t3 && (d2 = t3 + 1); + -1 !== t3 && (r2 = t3 + 1); } - const c2 = { dataId: s2, type: "layout", element: o2 }, h2 = { dataId: i2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; - this.document.blocks.splice(d2, 0, c2, h2), this.document.selectedBlockId = s2, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document), setTimeout(() => { - const t3 = o2.querySelector(".layout_column"); - t3 && (t3.focus(), this.setActiveLayout(o2.querySelector(".layout_container"))); + const c2 = { dataId: s2, type: "layout", element: i2 }, h2 = { dataId: o2, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; + this.document.blocks.splice(r2, 0, c2, h2), this.document.selectedBlockId = s2, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document), setTimeout(() => { + const t3 = i2.querySelector(".layout_column"); + t3 && (t3.focus(), this.setActiveLayout(i2.querySelector(".layout_container"))); }, 0); } setupCellEvents(t2) { @@ -1686,9 +1686,9 @@ var require_dist = __commonJS({ const s2 = e2; if ("Tab" === s2.key) { s2.preventDefault(), s2.stopPropagation(); - const e3 = Array.from((null === (n2 = t2.closest(".layout_container")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".layout_column")) || []), i2 = e3.indexOf(t2); - if (s2.shiftKey) i2 > 0 && (e3[i2 - 1].focus(), this.selectAllInCell(e3[i2 - 1])); - else if (i2 < e3.length - 1) e3[i2 + 1].focus(), this.selectAllInCell(e3[i2 + 1]); + const e3 = Array.from((null === (n2 = t2.closest(".layout_container")) || void 0 === n2 ? void 0 : n2.querySelectorAll(".layout_column")) || []), o2 = e3.indexOf(t2); + if (s2.shiftKey) o2 > 0 && (e3[o2 - 1].focus(), this.selectAllInCell(e3[o2 - 1])); + else if (o2 < e3.length - 1) e3[o2 + 1].focus(), this.selectAllInCell(e3[o2 + 1]); else { const e4 = t2.closest(".layout_wrapper"), n3 = null == e4 ? void 0 : e4.nextElementSibling; n3 && (n3.focus(), this.clearLayoutActive()); @@ -1741,41 +1741,41 @@ var require_dist = __commonJS({ n2.className = "table_modal", n2.id = "math_modal"; const s2 = document.createElement("div"); s2.className = "main_modal", s2.setAttribute("role", "dialog"), s2.setAttribute("aria-modal", "true"), s2.setAttribute("aria-label", "Insert Equation"), s2.style.width = "400px", s2.style.height = "390px", s2.style.maxHeight = "90vh", s2.style.position = "fixed", s2.style.top = "90px", s2.style.right = "-90px", s2.style.margin = "0"; - const i2 = document.createElement("div"); - i2.className = "main_modal_header"; - const o2 = document.createElement("h3"); - o2.className = "main_modal_title", o2.textContent = this.editingBlockId ? "Edit Equation" : "Insert Equation"; + const o2 = document.createElement("div"); + o2.className = "main_modal_header"; + const i2 = document.createElement("h3"); + i2.className = "main_modal_title", i2.textContent = this.editingBlockId ? "Edit Equation" : "Insert Equation"; const l2 = document.createElement("button"); - l2.className = "main_modal_close", l2.setAttribute("aria-label", "Close"), l2.innerHTML = f.close_icon, l2.onclick = () => this.closeModal(), i2.appendChild(o2), i2.appendChild(l2); + l2.className = "main_modal_close", l2.setAttribute("aria-label", "Close"), l2.innerHTML = f.close_icon, l2.onclick = () => this.closeModal(), o2.appendChild(i2), o2.appendChild(l2); const a2 = document.createElement("div"); a2.className = "main_modal_body"; - const r2 = document.createElement("label"); - r2.textContent = "LaTeX Input:", r2.className = "input_label", r2.style.display = "block", r2.style.marginBottom = "8px"; - const d2 = document.createElement("textarea"); - d2.className = "modal_inputs", d2.style.width = "100%", d2.style.height = "80px", d2.style.resize = "vertical", d2.placeholder = "e.g. c = \\pm\\sqrt{a^2 + b^2}", d2.value = t2; + const d2 = document.createElement("label"); + d2.textContent = "LaTeX Input:", d2.className = "input_label", d2.style.display = "block", d2.style.marginBottom = "8px"; + const r2 = document.createElement("textarea"); + r2.className = "modal_inputs", r2.style.width = "100%", r2.style.height = "80px", r2.style.resize = "vertical", r2.placeholder = "e.g. c = \\pm\\sqrt{a^2 + b^2}", r2.value = t2; const c2 = document.createElement("label"); c2.textContent = "Preview:", c2.className = "input_label", c2.style.display = "block", c2.style.marginTop = "16px", c2.style.marginBottom = "8px"; const h2 = document.createElement("div"); h2.style.padding = "10px", h2.style.border = "1px solid #ccc", h2.style.borderRadius = "4px", h2.style.minHeight = "50px", h2.style.display = "flex", h2.style.alignItems = "center", h2.style.justifyContent = "center", h2.style.overflowX = "auto"; const u2 = () => { try { - katex.render(d2.value || "Preview", h2, { throwOnError: false }); + katex.render(r2.value || "Preview", h2, { throwOnError: false }); } catch (t3) { console.error("error", t3), h2.textContent = "Invalid LaTeX"; } }; - d2.addEventListener("input", u2), a2.appendChild(r2), a2.appendChild(d2), a2.appendChild(c2), a2.appendChild(h2); + r2.addEventListener("input", u2), a2.appendChild(d2), a2.appendChild(r2), a2.appendChild(c2), a2.appendChild(h2); const p2 = document.createElement("div"); p2.className = "main_modal_footer"; const m2 = document.createElement("button"); m2.className = "modal_close_button modal_close_button_secondary", m2.textContent = "Cancel", m2.type = "button", m2.onclick = () => this.closeModal(); const g2 = document.createElement("button"); g2.className = "modal_close_button modal_close_button_primary", g2.textContent = "Apply Equation", g2.type = "button", g2.onclick = () => { - d2.value.trim() && this.insertEquation(d2.value.trim()), this.closeModal(); - }, p2.appendChild(m2), p2.appendChild(g2), s2.appendChild(i2), s2.appendChild(a2), s2.appendChild(p2), n2.appendChild(s2), n2.addEventListener("click", (t3) => { + r2.value.trim() && this.insertEquation(r2.value.trim()), this.closeModal(); + }, p2.appendChild(m2), p2.appendChild(g2), s2.appendChild(o2), s2.appendChild(a2), s2.appendChild(p2), n2.appendChild(s2), n2.addEventListener("click", (t3) => { t3.target === n2 && this.closeModal(); }), document.body.appendChild(n2), this.modal = n2, requestAnimationFrame(() => { - n2.classList.add("table_modal_visible"), d2.focus(), u2(); + n2.classList.add("table_modal_visible"), r2.focus(), u2(); }); } closeModal() { @@ -1794,29 +1794,29 @@ var require_dist = __commonJS({ } return void this.document.emit("documentChanged", this.document); } - const s2 = `data-id-${Date.now()}`, i2 = document.createElement("div"); - i2.setAttribute("data-id", s2), i2.setAttribute("contenteditable", "false"), i2.style.display = "inline-flex", i2.style.alignItems = "center", i2.style.gap = "6px", i2.style.margin = "4px", i2.style.cursor = "pointer", i2.style.position = "relative"; - const o2 = document.createElement("button"); - o2.className = "table_delete_button", o2.innerHTML = f.close_icon, o2.style.cursor = "pointer", o2.style.opacity = "0", o2.style.transition = "opacity 0.2s", i2.onmouseenter = () => { - o2.style.opacity = "1"; - }, i2.onmouseleave = () => { - o2.style.opacity = "0"; - }, o2.onclick = (t3) => { + const s2 = `data-id-${Date.now()}`, o2 = document.createElement("div"); + o2.setAttribute("data-id", s2), o2.setAttribute("contenteditable", "false"), o2.style.display = "inline-flex", o2.style.alignItems = "center", o2.style.gap = "6px", o2.style.margin = "4px", o2.style.cursor = "pointer", o2.style.position = "relative"; + const i2 = document.createElement("button"); + i2.className = "table_delete_button", i2.innerHTML = f.close_icon, i2.style.cursor = "pointer", i2.style.opacity = "0", i2.style.transition = "opacity 0.2s", o2.onmouseenter = () => { + i2.style.opacity = "1"; + }, o2.onmouseleave = () => { + i2.style.opacity = "0"; + }, i2.onclick = (t3) => { t3.stopPropagation(); const e3 = this.document.blocks.findIndex((t4) => t4.dataId === s2); -1 !== e3 && (this.document.blocks.splice(e3, 1), this.document.selectedBlockId === s2 && (this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document)); }; const l2 = document.createElement("span"); - l2.className = "math_node", l2.dataset.latex = t2, l2.innerHTML = e2, i2.onclick = (e3) => { + l2.className = "math_node", l2.dataset.latex = t2, l2.innerHTML = e2, o2.onclick = (e3) => { e3.stopPropagation(), this.openMathModal(t2, s2); - }, i2.appendChild(l2), i2.appendChild(o2); + }, o2.appendChild(l2), o2.appendChild(i2); let a2 = this.document.blocks.length; if (this.document.selectedBlockId) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); -1 !== t3 && (a2 = t3 + 1); } - const r2 = { dataId: s2, type: "math", element: i2 }, d2 = { dataId: `data-id-${Date.now() + 1}`, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; - this.document.blocks.splice(a2, 0, r2, d2), this.document.selectedBlockId = d2.dataId, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document); + const d2 = { dataId: s2, type: "math", element: o2 }, r2 = { dataId: `data-id-${Date.now() + 1}`, type: "text", class: "paragraph-block", pieces: [new n("\u200B", { bold: false, italic: false, underline: false, strikethrough: false, hyperlink: false })] }; + this.document.blocks.splice(a2, 0, d2, r2), this.document.selectedBlockId = r2.dataId, this.document.currentOffset = 0, this.document.emit("documentChanged", this.document); } } class O { @@ -1847,13 +1847,13 @@ var require_dist = __commonJS({ } class N extends e { constructor(t2, e2) { - var i2, o2, l2, d2, g2, b2, y2, T2, L2, N2, H, M, P, D; + var o2, i2, l2, r2, g2, b2, y2, T2, L2, N2, H, M, P, D; super(), this.savedSelection = null, this.debounceTimer = null; const { mainEditorId: z, toolbarId: V, popupToolbarId: F } = C(t2, e2); this.editorContainer = document.getElementById(z) || null, this.toolbarContainer = document.getElementById(V) || null; const j = document.getElementById(F) || null; if (!this.editorContainer || !this.toolbarContainer || !j) throw new Error("Editor element not found or incorrect element type."); - this.document = new s(), this.editorView = new c(this.editorContainer, this.document), this.toolbarView = new h(this.toolbarContainer), this.popupToolbarView = new I(j), this.linkPopupView = new E(), this.hyperlinkHandler = new p(this.editorContainer, this.editorView, this.document), this.imageHandler = new v(this.editorContainer, this.document), this.undoRedoManager = new x(this.document, this.editorView), this.editorView.setImageHandler(this.imageHandler), this.imageHandler.setEditorView(this.editorView), this.document.setEditorView(this.editorView), this.document.setUndoRedoManager(this.undoRedoManager), this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager), this.linkPopupView.setCallbacks((t3) => this.openLink(t3), (t3) => this.unlinkText(t3)), this.insertTableHandler = new _(this.editorView.container, this.document), this.insertLayoutHandler = new R(this.editorView.container, this.document), this.insertMathHandler = new B(this.editorView.container, this.document), this.textToSpeechHandler = new O((t3) => { + this.document = new s(), this.editorView = new c(this.editorContainer, this.document), this.toolbarView = new h(this.toolbarContainer), this.popupToolbarView = new x(j), this.linkPopupView = new E(), this.hyperlinkHandler = new p(this.editorContainer, this.editorView, this.document), this.imageHandler = new v(this.editorContainer, this.document), this.undoRedoManager = new I(this.document, this.editorView), this.editorView.setImageHandler(this.imageHandler), this.imageHandler.setEditorView(this.editorView), this.document.setEditorView(this.editorView), this.document.setUndoRedoManager(this.undoRedoManager), this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager), this.linkPopupView.setCallbacks((t3) => this.openLink(t3), (t3) => this.unlinkText(t3)), this.insertTableHandler = new _(this.editorView.container, this.document), this.insertLayoutHandler = new R(this.editorView.container, this.document), this.insertMathHandler = new B(this.editorView.container, this.document), this.textToSpeechHandler = new O((t3) => { const e3 = document.getElementById("textToSpeech"); e3 && (e3.innerHTML = t3 ? f.speaker_off : f.speaker_on, e3.dataset.tooltip = t3 ? "stop Reading" : "start Reading"); }), this.speechToTextHandler = new w(this.document, this.editorView, (t3) => { @@ -1869,10 +1869,10 @@ var require_dist = __commonJS({ U && (U.innerHTML = "", U.insertAdjacentHTML("afterbegin", f.start_microphone), U.dataset.tooltip = "start"); const q = document.getElementById("textToSpeech"); q && (q.innerHTML = "", q.insertAdjacentHTML("afterbegin", f.speaker_on), q.dataset.tooltip = "start Reading"), this.emojiPickerView = new A(), this.codeEditorModal = new S(), this.emojiPickerView.onSelect((t3) => { - var e3, n2, s2, i3; - const o3 = null !== (n2 = null === (e3 = this.savedSelection) || void 0 === e3 ? void 0 : e3.start) && void 0 !== n2 ? n2 : 0, l3 = null !== (i3 = null === (s2 = this.savedSelection) || void 0 === s2 ? void 0 : s2.end) && void 0 !== i3 ? i3 : o3; - l3 > o3 && this.document.deleteRange(o3, l3, this.document.selectedBlockId, this.document.currentOffset, false), this.document.insertAt(t3, Object.assign({}, this.currentAttributes), o3, this.document.selectedBlockId, 0, "", "batch"); - const a2 = o3 + t3.length; + var e3, n2, s2, o3; + const i3 = null !== (n2 = null === (e3 = this.savedSelection) || void 0 === e3 ? void 0 : e3.start) && void 0 !== n2 ? n2 : 0, l3 = null !== (o3 = null === (s2 = this.savedSelection) || void 0 === s2 ? void 0 : s2.end) && void 0 !== o3 ? o3 : i3; + l3 > i3 && this.document.deleteRange(i3, l3, this.document.selectedBlockId, this.document.currentOffset, false), this.document.insertAt(t3, Object.assign({}, this.currentAttributes), i3, this.document.selectedBlockId, 0, "", "batch"); + const a2 = i3 + t3.length; this.savedSelection = { start: a2, end: a2 }, this.setCursorPosition(a2); }), this.currentAttributes = { bold: false, italic: false, underline: false, strikethrough: false, subscript: false, superscript: false, undo: false, redo: false, hyperlink: false }, this.manualOverride = false, this.lastPiece = null, this.toolbarView.on("toolbarAction", (t3, e3 = []) => this.handleToolbarAction(t3, e3)), this.popupToolbarView.on("popupAction", (t3) => this.handleToolbarAction(t3)), this.document.on("documentChanged", () => { if (0 === this.document.blocks.length || 1 === this.document.blocks.length && this.document.blocks[0].pieces.every((t3) => "" === t3.text.trim() || "\u200B" === t3.text)) { @@ -1909,23 +1909,23 @@ var require_dist = __commonJS({ }), document.addEventListener("selectionchange", () => { const t3 = window.getSelection(); t3 && !t3.isCollapsed || (this.document.dataIds = [], this.document.selectAll = false); - }), null === (i2 = document.getElementById("fontColor")) || void 0 === i2 || i2.addEventListener("click", (t3) => { + }), null === (o2 = document.getElementById("fontColor")) || void 0 === o2 || o2.addEventListener("click", (t3) => { t3.stopPropagation(); const e3 = document.getElementById("colorWrapper"), n2 = document.getElementById("fontColorPicker"); if (!e3 || !n2) return; const s2 = "block" === e3.style.display; e3.style.display = s2 ? "none" : "block"; - }), null === (o2 = document.getElementById("fontColorPicker")) || void 0 === o2 || o2.addEventListener("input", (t3) => { - const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), i3 = document.getElementById("fontColorIndicator"); - i3 && (i3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { + }), null === (i2 = document.getElementById("fontColorPicker")) || void 0 === i2 || i2.addEventListener("input", (t3) => { + const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), o3 = document.getElementById("fontColorIndicator"); + o3 && (o3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { if (this.document.dataIds.includes(t4.dataId)) { this.document.selectedBlockId = t4.dataId; let s3 = 0; t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i4 = n2 - s3; - this.document.applyFontColor(i4, s3, e3); + let o4 = n2 - s3; + this.document.applyFontColor(o4, s3, e3); } }) : (this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout(() => { this.document.applyFontColor(n2, s2, e3); @@ -1935,25 +1935,25 @@ var require_dist = __commonJS({ t3 && (t3.value = "#000000", e3 && (e3.style.backgroundColor = "#000000"), t3.dispatchEvent(new Event("input"))); }), document.addEventListener("click", (t3) => { var e3; - const n2 = t3.target, s2 = document.getElementById("colorWrapper"), i3 = document.getElementById("colorBgWrapper"), o3 = document.getElementById("fontColor"), l3 = document.getElementById("bgColor"); - !s2 || n2.closest("#colorWrapper") || n2 === o3 || (null == o3 ? void 0 : o3.contains(n2)) || (s2.style.display = "none"), !i3 || n2.closest("#colorBgWrapper") || n2 === l3 || (null == l3 ? void 0 : l3.contains(n2)) || (i3.style.display = "none"), (null === (e3 = this.editorContainer) || void 0 === e3 ? void 0 : e3.contains(n2)) || n2.closest(".hyperlink-popup") || this.hyperlinkHandler.hideHyperlinkViewButton(); - }), null === (d2 = document.getElementById("bgColor")) || void 0 === d2 || d2.addEventListener("click", (t3) => { + const n2 = t3.target, s2 = document.getElementById("colorWrapper"), o3 = document.getElementById("colorBgWrapper"), i3 = document.getElementById("fontColor"), l3 = document.getElementById("bgColor"); + !s2 || n2.closest("#colorWrapper") || n2 === i3 || (null == i3 ? void 0 : i3.contains(n2)) || (s2.style.display = "none"), !o3 || n2.closest("#colorBgWrapper") || n2 === l3 || (null == l3 ? void 0 : l3.contains(n2)) || (o3.style.display = "none"), (null === (e3 = this.editorContainer) || void 0 === e3 ? void 0 : e3.contains(n2)) || n2.closest(".hyperlink-popup") || this.hyperlinkHandler.hideHyperlinkViewButton(); + }), null === (r2 = document.getElementById("bgColor")) || void 0 === r2 || r2.addEventListener("click", (t3) => { t3.stopPropagation(); const e3 = document.getElementById("colorBgWrapper"), n2 = document.getElementById("bgColorPicker"); if (!e3 || !n2) return; const s2 = "block" === e3.style.display; e3.style.display = s2 ? "none" : "block"; }), null === (g2 = document.getElementById("bgColorPicker")) || void 0 === g2 || g2.addEventListener("input", (t3) => { - const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), i3 = document.getElementById("bgColorIndicator"); - i3 && (i3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { + const e3 = t3.target.value, [n2, s2] = this.getSelectionRange(), o3 = document.getElementById("bgColorIndicator"); + o3 && (o3.style.backgroundColor = e3), this.document.dataIds.length > 1 ? this.document.blocks.forEach((t4) => { if (this.document.dataIds.includes(t4.dataId)) { this.document.selectedBlockId = t4.dataId; let s3 = 0; t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i4 = n2 - s3; - this.document.applyBgColor(i4, s3, e3); + let o4 = n2 - s3; + this.document.applyBgColor(o4, s3, e3); } }) : (this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout(() => { this.document.applyBgColor(n2, s2, e3); @@ -1972,7 +1972,7 @@ var require_dist = __commonJS({ this.htmlToJsonParser = new k(n2), console.log(this.htmlToJsonParser, "this.htmlToJsonParser"); const s2 = this.htmlToJsonParser.parse(); this.document.blocks = s2, s2.length > 0 && (this.document.dataIds[0] = s2[0].dataId, this.document.selectedBlockId = s2[0].dataId), this.document.emit("documentChanged", this); - const [i3] = this.getSelectionRange(); + const [o3] = this.getSelectionRange(); this.document.blocks.forEach((t4) => { if (this.document.dataIds.includes(t4.dataId)) { this.document.selectedBlockId = t4.dataId; @@ -1980,7 +1980,7 @@ var require_dist = __commonJS({ t4.pieces.forEach((t5) => { e4 += t5.text.length; }); - let n3 = i3 - e4; + let n3 = o3 - e4; t4.fontSize && this.document.setFontSize(n3, e4, t4.fontSize); } }), console.log("blocks", this.document.blocks, this.document.dataIds, this.document.currentOffset), console.log("htmltoJson", JSON.stringify(s2, null, 2), s2); @@ -1994,8 +1994,8 @@ var require_dist = __commonJS({ t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i3 = n2 - s3; - this.document.setFontFamily(i3, s3, e3); + let o3 = n2 - s3; + this.document.setFontFamily(o3, s3, e3); } }) : this.document.setFontFamily(n2, s2, e3); }), null === (N2 = document.getElementById("fontSize")) || void 0 === N2 || N2.addEventListener("change", (t3) => { @@ -2008,8 +2008,8 @@ var require_dist = __commonJS({ t4.pieces.forEach((t5) => { s3 += t5.text.length; }); - let i3 = n2 - s3; - this.document.setFontSize(i3, s3, e3); + let o3 = n2 - s3; + this.document.setFontSize(o3, s3, e3); } }) : this.document.setFontSize(n2, s2, e3); }), null === (H = document.getElementById("heading")) || void 0 === H || H.addEventListener("change", (t3) => { @@ -2065,50 +2065,50 @@ var require_dist = __commonJS({ }), this.document.emit("documentChanged", this.document), this.editorContainer.addEventListener("paste", (t3) => { var e3, s2; this.undoRedoManager.saveUndoSnapshot(), t3.preventDefault(); - const i3 = null === (e3 = t3.clipboardData) || void 0 === e3 ? void 0 : e3.getData("text/html"), [o3, l3] = this.getSelectionRange(); - l3 > o3 && this.document.deleteRange(o3, l3, this.document.selectedBlockId, this.document.currentOffset); - let d3 = []; - if (i3) d3 = m(i3); + const o3 = null === (e3 = t3.clipboardData) || void 0 === e3 ? void 0 : e3.getData("text/html"), [i3, l3] = this.getSelectionRange(); + l3 > i3 && this.document.deleteRange(i3, l3, this.document.selectedBlockId, this.document.currentOffset); + let r3 = []; + if (o3) r3 = m(o3); else { const e4 = (function(t4) { const e5 = []; let n2, s3 = 0; for (; null !== (n2 = a.exec(t4)); ) { - const i4 = n2.index; - let o4 = n2[0], l4 = ""; - const a2 = o4.match(/[.,!?;:)\]\}"']+$/); - if (a2 && (l4 = a2[0], o4 = o4.slice(0, -l4.length)), r(t4, i4)) continue; - i4 > s3 && e5.push({ text: t4.substring(s3, i4), isUrl: false }); - let d4 = o4; - d4.startsWith("http") || (d4 = "https://" + d4), e5.push({ text: o4, isUrl: true, url: d4 }), l4 && e5.push({ text: l4, isUrl: false }), s3 = i4 + n2[0].length; + const o4 = n2.index; + let i4 = n2[0], l4 = ""; + const a2 = i4.match(/[.,!?;:)\]\}"']+$/); + if (a2 && (l4 = a2[0], i4 = i4.slice(0, -l4.length)), d(t4, o4)) continue; + o4 > s3 && e5.push({ text: t4.substring(s3, o4), isUrl: false }); + let r4 = i4; + r4.startsWith("http") || (r4 = "https://" + r4), e5.push({ text: i4, isUrl: true, url: r4 }), l4 && e5.push({ text: l4, isUrl: false }), s3 = o4 + n2[0].length; } return s3 < t4.length && e5.push({ text: t4.substring(s3), isUrl: false }), e5; })((null === (s2 = t3.clipboardData) || void 0 === s2 ? void 0 : s2.getData("text/plain")) || ""); - d3 = e4.map((t4) => t4.isUrl && t4.url ? new n(t4.text, Object.assign(Object.assign({}, this.currentAttributes), { hyperlink: t4.url })) : new n(t4.text, Object.assign({}, this.currentAttributes))); + r3 = e4.map((t4) => t4.isUrl && t4.url ? new n(t4.text, Object.assign(Object.assign({}, this.currentAttributes), { hyperlink: t4.url })) : new n(t4.text, Object.assign({}, this.currentAttributes))); } - let c2 = o3; - for (const t4 of d3) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), c2, this.document.selectedBlockId, 0, "", "batch"), c2 += t4.text.length; + let c2 = i3; + for (const t4 of r3) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), c2, this.document.selectedBlockId, 0, "", "batch"), c2 += t4.text.length; this.setCursorPosition(c2); }), this.editorContainer.addEventListener("dragover", (t3) => { t3.preventDefault(); }), this.editorContainer.addEventListener("drop", (t3) => { var e3, s2; t3.preventDefault(), this.undoRedoManager.saveUndoSnapshot(); - const i3 = null === (e3 = t3.dataTransfer) || void 0 === e3 ? void 0 : e3.getData("text/html"), [o3, l3] = this.getSelectionRange(); - l3 > o3 && this.document.deleteRange(o3, l3, this.document.selectedBlockId, this.document.currentOffset); + const o3 = null === (e3 = t3.dataTransfer) || void 0 === e3 ? void 0 : e3.getData("text/html"), [i3, l3] = this.getSelectionRange(); + l3 > i3 && this.document.deleteRange(i3, l3, this.document.selectedBlockId, this.document.currentOffset); let a2 = []; - if (i3) a2 = m(i3); + if (o3) a2 = m(o3); else { const e4 = (null === (s2 = t3.dataTransfer) || void 0 === s2 ? void 0 : s2.getData("text/plain")) || ""; a2 = [new n(e4, Object.assign({}, this.currentAttributes))]; } - let r2 = o3; - for (const t4 of a2) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), r2, this.document.selectedBlockId, 0, "", "batch"), r2 += t4.text.length; - this.setCursorPosition(r2); + let d2 = i3; + for (const t4 of a2) this.document.insertAt(t4.text, Object.assign({}, t4.attributes), d2, this.document.selectedBlockId, 0, "", "batch"), d2 += t4.text.length; + this.setCursorPosition(d2); }); } getSelectionRange() { - const t2 = i(this.editorView.container); + const t2 = o(this.editorView.container); return t2 ? [t2.start, t2.end] : [0, 0]; } applyFontColor(t2) { @@ -2148,16 +2148,16 @@ var require_dist = __commonJS({ this.insertMathHandler.openMathModal(); break; case "emoji": - this.savedSelection = i(this.editorView.container); + this.savedSelection = o(this.editorView.container); const e3 = document.querySelector('[data-action="emoji"]'); e3.addEventListener("mousedown", (t3) => { t3.preventDefault(); }), e3 && this.emojiPickerView.open(e3); break; case "textToSpeech": - const o2 = this.getTextForSpeech(); - if (!o2) return void console.warn("Nothing to read"); - this.textToSpeechHandler.toggle(o2); + const i2 = this.getTextForSpeech(); + if (!i2) return void console.warn("Nothing to read"); + this.textToSpeechHandler.toggle(i2); break; default: if (n2 < s2) switch (this.undoRedoManager.saveUndoSnapshot(), t2) { @@ -2250,16 +2250,16 @@ var require_dist = __commonJS({ var t2, e2, n2; const s2 = window.getSelection(); if (!s2 || 0 === s2.rangeCount || !(null === (t2 = this.editorContainer) || void 0 === t2 ? void 0 : t2.contains(s2.anchorNode))) return this.hyperlinkHandler.hideHyperlinkViewButton(), void this.popupToolbarView.hide(); - const i2 = (null === (e2 = s2.anchorNode) || void 0 === e2 ? void 0 : e2.nodeType) === Node.TEXT_NODE ? s2.anchorNode.parentElement : s2.anchorNode; - if (null == i2 ? void 0 : i2.closest(".tblCell")) return void this.popupToolbarView.hide(); - const o2 = document.getElementById("textToSpeech"); - s2 && !s2.isCollapsed && s2.toString().trim() ? null == o2 || o2.classList.remove("hidden") : null == o2 || o2.classList.add("hidden"); + const o2 = (null === (e2 = s2.anchorNode) || void 0 === e2 ? void 0 : e2.nodeType) === Node.TEXT_NODE ? s2.anchorNode.parentElement : s2.anchorNode; + if (null == o2 ? void 0 : o2.closest(".tblCell")) return void this.popupToolbarView.hide(); + const i2 = document.getElementById("textToSpeech"); + s2 && !s2.isCollapsed && s2.toString().trim() ? null == i2 || i2.classList.remove("hidden") : null == i2 || i2.classList.add("hidden"); const [l2] = this.getSelectionRange(); if (this.imageHandler.currentCursorLocation = l2, s2.isCollapsed ? (this.document.dataIds = [], this.document.selectAll = false, this.popupToolbarView.hide()) : (this.document.getAllSelectedDataIds(), this.document.dataIds.length === this.document.blocks.length && this.document.blocks.length > 0 && (this.document.selectAll = true), this.popupToolbarView.show(s2)), !s2 || 0 === s2.rangeCount) return; s2 && true === s2.isCollapsed && (this.document.dataIds = [], this.document.selectAll = false); - const a2 = s2.getRangeAt(0), r2 = (null === (n2 = a2.startContainer.parentElement) || void 0 === n2 ? void 0 : n2.closest("[data-id]")) || a2.startContainer; - if (r2 instanceof HTMLElement) { - const t3 = r2.getAttribute("data-id") || (a2.startContainer instanceof HTMLElement ? a2.startContainer.getAttribute("data-id") : null); + const a2 = s2.getRangeAt(0), d2 = (null === (n2 = a2.startContainer.parentElement) || void 0 === n2 ? void 0 : n2.closest("[data-id]")) || a2.startContainer; + if (d2 instanceof HTMLElement) { + const t3 = d2.getAttribute("data-id") || (a2.startContainer instanceof HTMLElement ? a2.startContainer.getAttribute("data-id") : null); if (t3) { const e3 = this.document.blocks.find((e4) => e4.dataId === t3); e3 && "table" !== e3.type && (this.document.selectedBlockId = t3); @@ -2269,18 +2269,18 @@ var require_dist = __commonJS({ } handleKeydown(t2) { var e2, s2; - const [i2, o2] = this.getSelectionRange(); - if (this.imageHandler.currentCursorLocation = i2, ("Enter" === t2.key || " " === t2.key) && this.document.selectedBlockId) { + const [o2, i2] = this.getSelectionRange(); + if (this.imageHandler.currentCursorLocation = o2, ("Enter" === t2.key || " " === t2.key) && this.document.selectedBlockId) { const e3 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); if (-1 !== e3) { const s3 = this.document.blocks[e3]; if ("text" === s3.type && Array.isArray(s3.pieces)) { - const i3 = s3.pieces.map((t3) => t3.text).join("").replace(/\u200B/g, "").trim().match(/^```([a-zA-Z0-9_\-\+]*)$/); - if (i3) { - t2.preventDefault(), this.undoRedoManager.saveUndoSnapshot(), s3.type = "code", s3.language = i3[1] || "text", s3.code = "", s3.pieces = [], s3.class = "code_block_wrapper"; - const o3 = `data-id-${Date.now()}`; - return this.document.blocks.splice(e3 + 1, 0, { dataId: o3, class: "paragraph-block", pieces: [new n("\u200B", { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false })], type: "text" }), this.document.selectedBlockId = o3, this.document.emit("documentChanged", this.document), void setTimeout(() => { - this.setCursorPosition(this.document.currentOffset + 1, o3); + const o3 = s3.pieces.map((t3) => t3.text).join("").replace(/\u200B/g, "").trim().match(/^```([a-zA-Z0-9_\-\+]*)$/); + if (o3) { + t2.preventDefault(), this.undoRedoManager.saveUndoSnapshot(), s3.type = "code", s3.language = o3[1] || "text", s3.code = "", s3.pieces = [], s3.class = "code_block_wrapper"; + const i3 = `data-id-${Date.now()}`; + return this.document.blocks.splice(e3 + 1, 0, { dataId: i3, class: "paragraph-block", pieces: [new n("\u200B", { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false })], type: "text" }), this.document.selectedBlockId = i3, this.document.emit("documentChanged", this.document), void setTimeout(() => { + this.setCursorPosition(this.document.currentOffset + 1, i3); }, 0); } } @@ -2288,53 +2288,53 @@ var require_dist = __commonJS({ } if ("Enter" === t2.key) { t2.preventDefault(), this.undoRedoManager.saveUndoSnapshot(); - const s3 = `data-id-${Date.now()}`, l2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId), a2 = this.document.blocks[l2], r2 = (null === (e2 = null == a2 ? void 0 : a2.pieces) || void 0 === e2 ? void 0 : e2.length) > 0 ? a2.pieces[a2.pieces.length - 1] : null, d2 = r2 ? Object.assign({}, r2.attributes) : { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false }; - if (a2 && "image" === a2.type) this.document.blocks.splice(l2 + 1, 0, { dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", d2)], type: "text" }), this.document.emit("documentChanged", this), this.imageHandler.setCursorPostion(1, s3); + const s3 = `data-id-${Date.now()}`, l2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId), a2 = this.document.blocks[l2], d2 = (null === (e2 = null == a2 ? void 0 : a2.pieces) || void 0 === e2 ? void 0 : e2.length) > 0 ? a2.pieces[a2.pieces.length - 1] : null, r2 = d2 ? Object.assign({}, d2.attributes) : { fontFamily: "Arial", fontSize: "16px", fontColor: "#000000", bgColor: "#ffffff", bold: false, italic: false, underline: false, strikethrough: false }; + if (a2 && "image" === a2.type) this.document.blocks.splice(l2 + 1, 0, { dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", r2)], type: "text" }), this.document.emit("documentChanged", this), this.imageHandler.setCursorPostion(1, s3); else if (!a2 || "ol" !== a2.listType && "ul" !== a2.listType && "li" !== a2.listType) { const t3 = this.getCurrentCursorBlock(), e3 = null == t3 ? void 0 : t3.toString(); if (e3 && a2 && "text" === a2.type) { - const t4 = i2 - this.document.currentOffset, o3 = [], l3 = []; - let r3 = 0; + const t4 = o2 - this.document.currentOffset, i3 = [], l3 = []; + let d3 = 0; for (const e4 of a2.pieces) { - const s4 = r3 + e4.text.length; - if (s4 <= t4) o3.push(e4.clone()); - else if (r3 >= t4) l3.push(e4.clone()); + const s4 = d3 + e4.text.length; + if (s4 <= t4) i3.push(e4.clone()); + else if (d3 >= t4) l3.push(e4.clone()); else { - const s5 = t4 - r3, i3 = e4.text.slice(0, s5), a3 = e4.text.slice(s5); - i3 && o3.push(new n(i3, Object.assign({}, e4.attributes))), a3 && l3.push(new n(a3, Object.assign({}, e4.attributes))); + const s5 = t4 - d3, o3 = e4.text.slice(0, s5), a3 = e4.text.slice(s5); + o3 && i3.push(new n(o3, Object.assign({}, e4.attributes))), a3 && l3.push(new n(a3, Object.assign({}, e4.attributes))); } - r3 = s4; + d3 = s4; } - a2.pieces = o3.length > 0 ? o3 : [new n("\u200B", d2)]; - const c2 = l3.length > 0 ? l3 : [new n("\u200B", d2)], h2 = this.addBlockAfter(this.document.blocks, e3, { dataId: s3, class: "paragraph-block", pieces: c2, type: "text" }); + a2.pieces = i3.length > 0 ? i3 : [new n("\u200B", r2)]; + const c2 = l3.length > 0 ? l3 : [new n("\u200B", r2)], h2 = this.addBlockAfter(this.document.blocks, e3, { dataId: s3, class: "paragraph-block", pieces: c2, type: "text" }); this.document.blocks = h2; - } else this.document.blocks.push({ dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", d2)], type: "text" }); + } else this.document.blocks.push({ dataId: s3, class: "paragraph-block", pieces: [new n("\u200B", r2)], type: "text" }); } else { - let t3 = [new n("\u200B", d2)]; - const e3 = i2 - this.document.currentOffset; + let t3 = [new n("\u200B", r2)]; + const e3 = o2 - this.document.currentOffset; if ("text" === a2.type && a2.pieces) { - const s4 = [], i3 = []; - let o4 = 0; + const s4 = [], o3 = []; + let i4 = 0; for (const t4 of a2.pieces) { - const l3 = o4 + t4.text.length; + const l3 = i4 + t4.text.length; if (l3 <= e3) s4.push(t4.clone()); - else if (o4 >= e3) i3.push(t4.clone()); + else if (i4 >= e3) o3.push(t4.clone()); else { - const l4 = e3 - o4, a3 = t4.text.slice(0, l4), r4 = t4.text.slice(l4); - a3 && s4.push(new n(a3, Object.assign({}, t4.attributes))), r4 && i3.push(new n(r4, Object.assign({}, t4.attributes))); + const l4 = e3 - i4, a3 = t4.text.slice(0, l4), d4 = t4.text.slice(l4); + a3 && s4.push(new n(a3, Object.assign({}, t4.attributes))), d4 && o3.push(new n(d4, Object.assign({}, t4.attributes))); } - o4 = l3; + i4 = l3; } - a2.pieces = s4.length > 0 ? s4 : [new n("\u200B", d2)], t3 = i3.length > 0 ? i3 : [new n("\u200B", d2)]; + a2.pieces = s4.length > 0 ? s4 : [new n("\u200B", r2)], t3 = o3.length > 0 ? o3 : [new n("\u200B", r2)]; } - let o3 = { dataId: s3, class: "paragraph-block", pieces: t3, type: "text" }, r3 = ""; - if ("ol" === a2.listType ? (o3.listType = "li", o3.listStart = a2.listStart + 1, o3.parentId = a2.dataId, r3 = a2.dataId) : "li" === a2.listType ? (o3.listType = "li", o3.listStart = a2.listStart + 1, o3.parentId = a2.parentId, r3 = a2.parentId) : "ul" === a2.listType && (o3.listType = "ul", o3.parentId = a2.parentId || a2.dataId), this.document.blocks.splice(l2 + 1, 0, o3), "ol" === a2.listType || "li" === a2.listType) for (let t4 = l2 + 2; t4 < this.document.blocks.length; t4++) { + let i3 = { dataId: s3, class: "paragraph-block", pieces: t3, type: "text" }, d3 = ""; + if ("ol" === a2.listType ? (i3.listType = "li", i3.listStart = a2.listStart + 1, i3.parentId = a2.dataId, d3 = a2.dataId) : "li" === a2.listType ? (i3.listType = "li", i3.listStart = a2.listStart + 1, i3.parentId = a2.parentId, d3 = a2.parentId) : "ul" === a2.listType && (i3.listType = "ul", i3.parentId = a2.parentId || a2.dataId), this.document.blocks.splice(l2 + 1, 0, i3), "ol" === a2.listType || "li" === a2.listType) for (let t4 = l2 + 2; t4 < this.document.blocks.length; t4++) { const e4 = this.document.blocks[t4]; - if ("li" !== e4.listType || e4.parentId !== r3) break; + if ("li" !== e4.listType || e4.parentId !== d3) break; e4.listStart += 1; } } - this.syncCurrentAttributesWithCursor(), this.editorView.render(), this.setCursorPosition(o2 + 1, s3); + this.syncCurrentAttributesWithCursor(), this.editorView.render(), this.setCursorPosition(i2 + 1, s3); } else if ("Backspace" === t2.key) { if (t2.preventDefault(), this.imageHandler.isImageHighlighted) { const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.imageHandler.highLightedImageDataId); @@ -2346,21 +2346,21 @@ var require_dist = __commonJS({ this.undoRedoManager.saveUndoSnapshot(); const t3 = this.document.dataIds[0], e4 = this.document.blocks.findIndex((e5) => e5.dataId === t3); this.document.deleteBlocks(); - let s3 = null, i3 = 0; + let s3 = null, o3 = 0; if (0 === this.document.blocks.length) { const t4 = `data-id-${Date.now()}`; - this.document.blocks.push({ dataId: t4, class: "paragraph-block", pieces: [new n(" ")], type: "text" }), s3 = t4, i3 = 0, this.editorView.render(); - } else if (e4 < this.document.blocks.length) s3 = this.document.blocks[e4].dataId, i3 = 0; + this.document.blocks.push({ dataId: t4, class: "paragraph-block", pieces: [new n(" ")], type: "text" }), s3 = t4, o3 = 0, this.editorView.render(); + } else if (e4 < this.document.blocks.length) s3 = this.document.blocks[e4].dataId, o3 = 0; else { const t4 = this.document.blocks[this.document.blocks.length - 1]; - s3 = t4.dataId, i3 = t4.pieces.reduce((t5, e5) => t5 + e5.text.length, 0); + s3 = t4.dataId, o3 = t4.pieces.reduce((t5, e5) => t5 + e5.text.length, 0); } - return void this.setCursorPosition(i3, s3); + return void this.setCursorPosition(o3, s3); } - if (o2 > i2) { + if (i2 > o2) { this.undoRedoManager.saveUndoSnapshot(); - const t3 = Math.min(this.document.currentOffset, i2); - this.document.deleteRange(i2, o2, this.document.selectedBlockId, t3, true), this.setCursorPosition(i2 - 1); + const t3 = Math.min(this.document.currentOffset, o2); + this.document.deleteRange(o2, i2, this.document.selectedBlockId, t3, true), this.setCursorPosition(o2 - 1); const e4 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); console.log(e4, "index lntgerr"); if (null === document.querySelector(`[data-id="${this.document.selectedBlockId}"]`)) { @@ -2369,30 +2369,30 @@ var require_dist = __commonJS({ const e5 = this.document.blocks.map((e6, n2) => (void 0 === (null == e6 ? void 0 : e6.listType) && null === (null == e6 ? void 0 : e6.listType) || ("ol" === (null == e6 ? void 0 : e6.listType) ? (t4 = 1, e6.listStart = 1) : "li" === (null == e6 ? void 0 : e6.listType) && (t4 += 1, e6.listStart = t4)), e6)); console.log(e5, "blocks lntgerr"), this.document.emit("documentChanged", this); } - } else if (i2 === o2 && i2 > 0) { + } else if (o2 === i2 && o2 > 0) { const t3 = this.editorView.container.textContent || ""; - let e4 = i2 - 1; - if (i2 >= 2) { - const n2 = t3.charCodeAt(i2 - 1), s3 = t3.charCodeAt(i2 - 2); - n2 >= 56320 && n2 <= 57343 && s3 >= 55296 && s3 <= 56319 && (e4 = i2 - 2); + let e4 = o2 - 1; + if (o2 >= 2) { + const n2 = t3.charCodeAt(o2 - 1), s3 = t3.charCodeAt(o2 - 2); + n2 >= 56320 && n2 <= 57343 && s3 >= 55296 && s3 <= 56319 && (e4 = o2 - 2); } - this.document.deleteRange(e4, i2, this.document.selectedBlockId, this.document.currentOffset, true), this.setCursorPosition(e4); + this.document.deleteRange(e4, o2, this.document.selectedBlockId, this.document.currentOffset, true), this.setCursorPosition(e4); } } else if (1 !== t2.key.length || t2.ctrlKey || t2.metaKey || t2.altKey) { if ("Delete" === t2.key) { - if (t2.preventDefault(), i2 === o2) { - if (this.undoRedoManager.saveUndoSnapshot(), o2 > i2) { - const t4 = Math.min(this.document.currentOffset, i2); - this.document.deleteRange(i2, o2, this.document.selectedBlockId, t4), this.setCursorPosition(i2); - } else if (o2 > i2) return this.undoRedoManager.saveUndoSnapshot(), void this.document.deleteRange(i2, o2, this.document.selectedBlockId); + if (t2.preventDefault(), o2 === i2) { + if (this.undoRedoManager.saveUndoSnapshot(), i2 > o2) { + const t4 = Math.min(this.document.currentOffset, o2); + this.document.deleteRange(o2, i2, this.document.selectedBlockId, t4), this.setCursorPosition(o2); + } else if (i2 > o2) return this.undoRedoManager.saveUndoSnapshot(), void this.document.deleteRange(o2, i2, this.document.selectedBlockId); const t3 = this.document.blocks.findIndex((t4) => t4.dataId === this.document.selectedBlockId); if (-1 === t3) return; const e3 = this.document.blocks[t3].pieces.reduce((t4, e4) => t4 + e4.text.length, 0); - i2 - this.document.currentOffset < e3 ? (this.document.deleteRange(i2, i2 + 1, this.document.selectedBlockId, this.document.currentOffset, false), this.setCursorPosition(i2)) : o2 > i2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(i2, o2, this.document.selectedBlockId), this.setCursorPosition(i2)); + o2 - this.document.currentOffset < e3 ? (this.document.deleteRange(o2, o2 + 1, this.document.selectedBlockId, this.document.currentOffset, false), this.setCursorPosition(o2)) : i2 > o2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(o2, i2, this.document.selectedBlockId), this.setCursorPosition(o2)); } this.hyperlinkHandler.hideHyperlinkViewButton(); } - } else t2.preventDefault(), o2 > i2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(i2, o2, this.document.selectedBlockId, this.document.currentOffset, false)), console.log("insertat", t2.key, this.currentAttributes, i2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.document.insertAt(t2.key, this.currentAttributes, i2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.setCursorPosition(i2 + 1); + } else t2.preventDefault(), i2 > o2 && (this.undoRedoManager.saveUndoSnapshot(), this.document.deleteRange(o2, i2, this.document.selectedBlockId, this.document.currentOffset, false)), console.log("insertat", t2.key, this.currentAttributes, o2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.document.insertAt(t2.key, this.currentAttributes, o2, this.document.selectedBlockId, this.document.currentOffset, "", "", !t2.isTrusted || false), this.setCursorPosition(o2 + 1); } extractTextFromDataId(t2) { const e2 = window.getSelection(); @@ -2400,18 +2400,18 @@ var require_dist = __commonJS({ const n2 = e2.getRangeAt(0).startContainer; let s2 = ""; console.log(0, "count lntgerr"); - const i2 = this.document.blocks.filter((e3) => { + const o2 = this.document.blocks.filter((e3) => { if (e3.dataId === t2) return e3; - }), o2 = document.querySelector(`[data-id="${t2}"]`), l2 = this.document.getCursorOffsetInParent(`[data-id="${t2}"]`); - let a2 = [], r2 = 0; - if (i2[0].pieces.forEach((t3, e3) => { - s2 += t3.text, (null == l2 ? void 0 : l2.innerText) === t3.text && (r2 = e3, a2.push(t3)); - }), i2[0].pieces.length > 1 && i2[0].pieces.forEach((t3, e3) => { - r2 < e3 && a2.push(t3); - }), !o2) return console.error(`Element with data-id "${t2}" not found.`), { remainingText: "", piece: null }; - if (!o2.contains(n2)) return console.error(`Cursor is not inside the element with data-id "${t2}".`), { remainingText: "", piece: null }; - const d2 = s2, c2 = null == l2 ? void 0 : l2.offset, h2 = d2.slice(c2), u2 = d2.slice(0, c2); - return o2.textContent = u2, { remainingText: h2, piece: a2 }; + }), i2 = document.querySelector(`[data-id="${t2}"]`), l2 = this.document.getCursorOffsetInParent(`[data-id="${t2}"]`); + let a2 = [], d2 = 0; + if (o2[0].pieces.forEach((t3, e3) => { + s2 += t3.text, (null == l2 ? void 0 : l2.innerText) === t3.text && (d2 = e3, a2.push(t3)); + }), o2[0].pieces.length > 1 && o2[0].pieces.forEach((t3, e3) => { + d2 < e3 && a2.push(t3); + }), !i2) return console.error(`Element with data-id "${t2}" not found.`), { remainingText: "", piece: null }; + if (!i2.contains(n2)) return console.error(`Cursor is not inside the element with data-id "${t2}".`), { remainingText: "", piece: null }; + const r2 = s2, c2 = null == l2 ? void 0 : l2.offset, h2 = r2.slice(c2), u2 = r2.slice(0, c2); + return i2.textContent = u2, { remainingText: h2, piece: a2 }; } getCurrentCursorBlock() { const t2 = window.getSelection(); @@ -2432,16 +2432,16 @@ var require_dist = __commonJS({ const e3 = (null === (t2 = n2.anchorNode) || void 0 === t2 ? void 0 : t2.nodeType) === Node.TEXT_NODE ? n2.anchorNode.parentElement : n2.anchorNode; if (null == e3 ? void 0 : e3.closest(".tblCell")) return; } - const [s2, i2] = this.getSelectionRange(); - console.log("log1", { start: s2, end: i2 }); - const o2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); - if ("image" === (null === (e2 = this.document.blocks[o2]) || void 0 === e2 ? void 0 : e2.type) ? this.imageHandler.addStyleToImage(this.document.selectedBlockId || "") : this.imageHandler.isImageHighlighted && this.imageHandler.clearImageStyling(), s2 === i2) { + const [s2, o2] = this.getSelectionRange(); + console.log("log1", { start: s2, end: o2 }); + const i2 = this.document.blocks.findIndex((t3) => t3.dataId === this.document.selectedBlockId); + if ("image" === (null === (e2 = this.document.blocks[i2]) || void 0 === e2 ? void 0 : e2.type) ? this.imageHandler.addStyleToImage(this.document.selectedBlockId || "") : this.imageHandler.isImageHighlighted && this.imageHandler.clearImageStyling(), s2 === o2) { const t3 = this.document.findPieceAtOffset(s2, this.document.selectedBlockId); t3 ? (t3 !== this.lastPiece && (this.manualOverride = false, this.lastPiece = t3), this.manualOverride || (this.currentAttributes = { bold: t3.attributes.bold, italic: t3.attributes.italic, underline: t3.attributes.underline, strikethrough: t3.attributes.strikethrough || false, subscript: t3.attributes.subscript || false, superscript: t3.attributes.superscript || false, hyperlink: t3.attributes.hyperlink || false, fontFamily: t3.attributes.fontFamily, fontSize: t3.attributes.fontSize, fontColor: t3.attributes.fontColor, bgColor: t3.attributes.bgColor }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes)), this.hyperlinkHandler.hideHyperlinkViewButton()) : (this.hyperlinkHandler.hideHyperlinkViewButton(), this.manualOverride || (this.currentAttributes = { bold: false, italic: false, underline: false, strikethrough: false, subscript: false, superscript: false, hyperlink: false }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes)), this.lastPiece = null); } else { this.hyperlinkHandler.hideHyperlinkViewButton(); - const t3 = this.document.isRangeEntirelyAttribute(s2, i2, "bold"), e3 = this.document.isRangeEntirelyAttribute(s2, i2, "italic"), n3 = this.document.isRangeEntirelyAttribute(s2, i2, "underline"), o3 = this.document.isRangeEntirelyAttribute(s2, i2, "strikethrough"), l3 = this.document.isRangeEntirelyAttribute(s2, i2, "subscript"), a2 = this.document.isRangeEntirelyAttribute(s2, i2, "superscript"); - this.currentAttributes = { bold: t3, italic: e3, underline: n3, strikethrough: o3, subscript: l3, superscript: a2, hyperlink: false }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes); + const t3 = this.document.isRangeEntirelyAttribute(s2, o2, "bold"), e3 = this.document.isRangeEntirelyAttribute(s2, o2, "italic"), n3 = this.document.isRangeEntirelyAttribute(s2, o2, "underline"), i3 = this.document.isRangeEntirelyAttribute(s2, o2, "strikethrough"), l3 = this.document.isRangeEntirelyAttribute(s2, o2, "subscript"), a2 = this.document.isRangeEntirelyAttribute(s2, o2, "superscript"); + this.currentAttributes = { bold: t3, italic: e3, underline: n3, strikethrough: i3, subscript: l3, superscript: a2, hyperlink: false }, this.toolbarView.updateActiveStates(this.currentAttributes), this.popupToolbarView.updateActiveStates(this.currentAttributes); } const l2 = document.getElementById("heading"); if (l2) if (this.document.selectedBlockId) { @@ -2458,26 +2458,26 @@ var require_dist = __commonJS({ const n2 = window.getSelection(); if (!n2) return; const s2 = document.createRange(); - let i2 = 0; - const o2 = [this.editorView.container]; + let o2 = 0; + const i2 = [this.editorView.container]; let l2; - for (; l2 = o2.pop(); ) if (3 === l2.nodeType) { - const e3 = l2, n3 = i2 + e3.length; - if (t2 >= i2 && t2 <= n3) { - s2.setStart(e3, t2 - i2), s2.collapse(true); + for (; l2 = i2.pop(); ) if (3 === l2.nodeType) { + const e3 = l2, n3 = o2 + e3.length; + if (t2 >= o2 && t2 <= n3) { + s2.setStart(e3, t2 - o2), s2.collapse(true); break; } - i2 = n3; + o2 = n3; } else if ("BR" === l2.tagName) { - if (t2 === i2) { + if (t2 === o2) { s2.setStartBefore(l2), s2.collapse(true); break; } - i2++; + o2++; } else { const t3 = l2; let e3 = t3.childNodes.length; - for (; e3--; ) o2.push(t3.childNodes[e3]); + for (; e3--; ) i2.push(t3.childNodes[e3]); } n2.removeAllRanges(), n2.addRange(s2); } @@ -2522,6 +2522,11 @@ var require_dist = __commonJS({ var t2; return (null === (t2 = this.editorContainer) || void 0 === t2 ? void 0 : t2.textContent) || ""; } + loadHtmlContent(t2) { + this.undoRedoManager.saveUndoSnapshot(), this.htmlToJsonParser = new k(t2); + const e2 = this.htmlToJsonParser.parse(); + this.document.blocks = e2, e2.length > 0 ? (this.document.dataIds[0] = e2[0].dataId, this.document.selectedBlockId = e2[0].dataId) : (this.document.dataIds = [], this.document.selectedBlockId = null), this.document.emit("documentChanged", this.document); + } } window.TextIgniter = N, t.TextIgniter = N; }); @@ -2530,18 +2535,899 @@ var require_dist = __commonJS({ // src/component/TextIgniterComponent.ts var import_textigniter = __toESM(require_dist(), 1); + +// #style-inject:#style-inject +function styleInject(css, { insertAt } = {}) { + if (!css || typeof document === "undefined") return; + const head = document.head || document.getElementsByTagName("head")[0]; + const style = document.createElement("style"); + style.type = "text/css"; + if (insertAt === "top") { + if (head.firstChild) { + head.insertBefore(style, head.firstChild); + } else { + head.appendChild(style); + } + } else { + head.appendChild(style); + } + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + style.appendChild(document.createTextNode(css)); + } +} + +// ../core/dist/styles/text-igniter.css +styleInject(`.editor-container { + border: none; + padding: 0; + border-radius: 12px; +} +.toolbar { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 4px; + padding: 8px 12px; + margin-bottom: 0; + background: #fff; + border-radius: 10px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); +} +.toolbar-separator { + width: 1px; + height: 24px; + background: #e5e7eb; + margin: 0 8px; +} +.toolbar button { + padding: 8px; + border: none; + border-radius: 6px; + background: transparent; + cursor: pointer; + font-size: 15px; + font-weight: 500; + color: #000000; + transition: all 0.15s ease; + display: inline-flex; + align-items: center; + justify-content: center; + position: relative; + min-width: 32px; + height: 32px; +} +.toolbar button:hover { + background: #f3f4f6; +} +.toolbar button:hover#fontColor, +.toolbar button:hover#bgColor { + background: transparent !important; +} +.toolbar button[data-tooltip]:hover#fontColor, +.toolbar button[data-tooltip]:hover#bgColor { + background: transparent !important; +} +.toolbar button.active { + background: #e5e7eb; + color: #111827; +} +.toolbar button svg { + width: 18px; + height: 18px; + display: block; +} +.toolbar button[data-tooltip], +.toolbar select[data-tooltip], +.popup-toolbar button[data-tooltip] { + position: relative; +} +.toolbar button[data-tooltip]::before, +.toolbar select[data-tooltip]::before, +.popup-toolbar button[data-tooltip]::before { + content: attr(data-tooltip); + position: absolute; + bottom: calc(100% + 8px); + left: 50%; + transform: translateX(-50%) scale(0.9); + padding: 8px 12px; + background: #1f2937; + color: #fff; + font-size: 12px; + font-weight: 500; + border-radius: 8px; + white-space: nowrap; + z-index: 1000; + pointer-events: none; + opacity: 0; + transition: opacity 0.15s ease, transform 0.15s ease; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} +.toolbar button[data-tooltip]::after, +.toolbar select[data-tooltip]::after, +.popup-toolbar button[data-tooltip]::after { + content: ""; + position: absolute; + bottom: calc(100% + 4px); + left: 50%; + transform: translateX(-50%) scale(0.9); + border: 5px solid transparent; + z-index: 1000; + pointer-events: none; + opacity: 0; + transition: opacity 0.15s ease, transform 0.15s ease; +} +.toolbar button[data-tooltip]:hover::before, +.toolbar button[data-tooltip]:hover::after, +.toolbar select[data-tooltip]:hover::before, +.toolbar select[data-tooltip]:hover::after, +.popup-toolbar button[data-tooltip]:hover::before, +.popup-toolbar button[data-tooltip]:hover::after { + opacity: 1; + transform: translateX(-50%) scale(1); +} +#fontFamily, +#fontSize { + padding: 6px 12px; + padding-right: 28px; + border: 1px solid #e5e7eb; + border-radius: 8px; + background-color: #fff; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + cursor: pointer; + font-size: 14px; + font-weight: 500; + color: #000000; + transition: all 0.15s ease; + appearance: none; + -webkit-appearance: none; +} +#fontFamily:hover, +#fontSize:hover { + border-color: #d1d5db; + background-color: #f9fafb; +} +#fontFamily:focus, +#fontSize:focus { + outline: none; + border-color: #9ca3af; + box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15); +} +#fontFamily { + min-width: 130px; +} +#fontSize { + min-width: 75px; +} +#editor { + border: 1px solid #e5e7eb; + border-radius: 10px; + padding: 20px 24px; + min-height: 200px; + outline: none; + white-space: pre-wrap; + overflow-wrap: break-word; + background: #fff; + margin-top: 12px; + font-size: 15px; + line-height: 1.6; + color: #1f2937; +} +#editor h1, +#editor h2, +#editor h3, +#editor h4, +#editor h5, +#editor h6 { + font-weight: normal; + margin: 0; + padding: 0; +} +#editor:focus { + border-color: #d1d5db; + box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.1); +} +.paragraph-block { + padding: 2px 0; + margin: 0; +} +#fontColor, +#bgColor { + font-size: 15px; + font-weight: 600; + position: relative; + padding-bottom: 10px; +} +#fontColor::after { + content: ""; + position: absolute; + bottom: 4px; + left: 50%; + transform: translateX(-50%); + width: 14px; + height: 3px; + border-radius: 2px; +} +#bgColor::after { + content: ""; + position: absolute; + bottom: 4px; + left: 50%; + transform: translateX(-50%); + width: 14px; + height: 3px; + border-radius: 2px; +} +#fontColorPicker, +#bgColorPicker { + border: 0; + padding: 0; + margin: 0; + height: 20px; + width: 20px; + cursor: pointer; + border-radius: 4px; +} +#fontColorWrapper { + display: flex; + align-items: center; + gap: 4px; +} +#hyperlink-container, +#hyperlink-container-view { + position: absolute; + display: none; + z-index: 1000; + padding: 12px; + border: 1px solid #e5e7eb; + border-radius: 10px; + background: white; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05); +} +#hyperlink-input { + width: 220px; + margin-right: 8px; + padding: 8px 12px; + border: 1px solid #e5e7eb; + border-radius: 6px; + font-size: 14px; + transition: all 0.15s ease; +} +#hyperlink-input:focus { + outline: none; + border-color: #9ca3af; + box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15); +} +#apply-hyperlink, +#cancel-hyperlink { + padding: 8px 14px; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + transition: all 0.15s ease; +} +#apply-hyperlink { + background: #1f2937; + color: white; +} +#apply-hyperlink:hover { + background: #000000; +} +#cancel-hyperlink { + background: #f3f4f6; + color: #000000; +} +#cancel-hyperlink:hover { + background: #e5e7eb; +} +.temporary-selection-highlight { + background-color: rgba(59, 130, 246, 0.3); +} +.popup-toolbar { + position: absolute; + z-index: 1001; + background: #fff; + border-radius: 10px; + padding: 6px 8px; + display: none; + align-items: center; + gap: 2px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 4px 10px rgba(0, 0, 0, 0.05); + border: 1px solid #e5e7eb; +} +.popup-toolbar button { + background: transparent; + border: none; + color: #000000; + cursor: pointer; + padding: 6px 8px; + border-radius: 6px; + display: inline-flex; + align-items: center; + justify-content: center; + transition: all 0.15s ease; +} +.popup-toolbar button:hover { + background: #f3f4f6; +} +.popup-toolbar button.active { + background: #e5e7eb; +} +.popup-toolbar button svg { + width: 16px; + height: 16px; + display: block; +} +.popup-toolbar .toolbar-separator { + width: 1px; + height: 20px; + background: #e5e7eb; + margin: 0 4px; +} +.ti-toast { + position: fixed; + left: 50%; + bottom: 24px; + transform: translateX(-50%); + background: #1f2937; + color: #fff; + padding: 12px 18px; + border-radius: 10px; + font-size: 14px; + font-weight: 500; + z-index: 2000; + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease, transform 0.2s ease; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); +} +.ti-toast.ti-toast--show { + opacity: 1; +} +.text-igniter a { + color: #2563eb; + text-decoration: underline; + text-decoration-color: rgba(37, 99, 235, 0.3); + text-underline-offset: 2px; + cursor: pointer; + transition: all 0.15s ease; +} +.text-igniter a:hover { + color: #1d4ed8; + text-decoration-color: rgba(37, 99, 235, 0.6); +} +.text-igniter a:visited { + color: #7c3aed; +} +.link-popup { + position: absolute; + background: #1f2937; + border-radius: 8px; + padding: 4px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); + z-index: 1000; + display: none; + animation: fadeIn 0.15s ease; + flex-direction: row; + gap: 2px; +} +.link-popup button { + background: transparent; + color: white; + border: none; + padding: 6px; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + transition: background 0.15s ease; + width: 28px; + height: 28px; + display: flex; + align-items: center; + justify-content: center; +} +.link-popup button:hover { + background: rgba(255, 255, 255, 0.1); +} +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-4px); + } + to { + opacity: 1; + transform: translateY(0); + } +} +#editor img { + max-width: 100%; + border-radius: 8px; + margin: 8px 0; +} +#editor .image-float-right { + float: right; + margin: 0 0 12px 16px; + max-width: 200px; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} +#editor .image-float-left { + float: left; + margin: 0 16px 12px 0; + max-width: 200px; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} +.table_wrapper { + margin: 12px 0; + width: 100%; + overflow-x: auto; +} +.table_controls { + display: flex; + justify-content: flex-end; + margin-bottom: 6px; + opacity: 0; + transition: opacity 0.2s ease; +} +.table_wrapper:hover .table_controls, +.table_wrapper:focus-within .table_controls, +.layout_wrapper:hover .table_controls, +.layout_wrapper:focus-within .table_controls { + opacity: 1; +} +.table_delete_button { + background: transparent; + color: #ef4444; + border: 1px solid transparent; + padding: 4px 8px; + border-radius: 4px; + font-size: 12px; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 4px; +} +.table_delete_button:hover { + background: #fef2f2; + border-color: #f87171; +} +.tbl { + width: 100%; + border-collapse: collapse; + table-layout: fixed; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 0 0 1px #e5e7eb; +} +.tbl_active { + box-shadow: 0 0 0 2px #3b82f6; +} +.tblCell { + border: 1px solid #e5e7eb; + padding: 10px 12px; + min-width: 80px; + background: #fff; + vertical-align: top; + outline: none; + transition: background-color 0.15s ease; +} +.tblCell:focus, +.tblCell_focused { + background: #f8fafc; + outline: 2px solid #3b82f6; + outline-offset: -2px; +} +.tbl_header_cell { + background: #f4f5f8; + font-weight: 600; + border-bottom-width: 2px; +} +.tblCell[data-placeholder]:empty:before { + content: attr(data-placeholder); + color: #9ca3af; + pointer-events: none; +} +.table_modal { + position: fixed; + inset: 0; + display: flex; + border: none; + align-items: center; + justify-content: center; + z-index: 99; + opacity: 0; + transition: all 0.1s ease; + visibility: hidden; +} +.table_modal_visible { + opacity: 1; + visibility: visible; +} +.main_modal { + position: absolute; + inset: 90px 1170px; + background: #f5f2f2; + border-radius: 12px; + width: 100%; + max-width: 380px; + height: 30%; + max-height: 220px; + box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.04); + overflow: hidden; +} +.layout_main_modal { + height: auto; + max-height: 380px; +} +.table_modal_visible .main_modal { + transform: scale(1); +} +.main_modal_header { + padding: 16px 20px; + border-bottom: 1px solid #e5e7eb; + display: flex; + align-items: center; + justify-content: space-between; +} +.main_modal_title { + margin: 0; + font-size: 16px; + font-weight: 600; + color: #111827; +} +.main_modal_close { + background: transparent; + border: none; + color: #6b7280; + cursor: pointer; + padding: 4px; + border-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + transition: background 0.15s ease, color 0.15s ease; +} +.main_modal_close:hover { + background: #f3f4f6; + color: #111827; +} +.main_modal_body { + padding: 20px; +} +.main_modal-divider { + display: flex; + align-items: center; + text-align: center; + margin: 20px 0; + color: #9ca3af; + font-size: 12px; + font-weight: 500; +} +.main_modal-divider::before, +.main_modal-divider::after { + content: ""; + flex: 1; + border-bottom: 1px solid #e5e7eb; +} +.main_modal-divider span { + padding: 0 10px; +} +.main_modal_inputs { + display: flex; + gap: 16px; +} +.all_input { + flex: 1; + display: flex; + flex-direction: column; + gap: 6px; +} +.ti-input-label { + font-size: 13px; + font-weight: 500; + color: #374151; +} +.modal_inputs { + width: 100%; + padding: 8px 12px; + border: 1px solid #d1d5db; + border-radius: 6px; + font-size: 14px; + transition: all 0.15s ease; + box-sizing: border-box; +} +.modal_inputs:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} +.main_modal_footer { + padding: 16px 20px; + background: #f9fafb; + border-top: 1px solid #e5e7eb; + display: flex; + justify-content: flex-end; + gap: 10px; +} +.modal_close_button { + padding: 8px 16px; + border-radius: 6px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.15s ease; + border: 1px solid transparent; +} +.modal_close_button_secondary { + background: #fff; + border-color: #d1d5db; + color: #374151; +} +.modal_close_button_secondary:hover { + background: #f3f4f6; +} +.modal_close_button_primary { + background: #3b82f6; + color: #fff; +} +.modal_close_button_primary:hover { + background: #2563eb; +} +.code_block_wrapper { + background: #f8f8f8; + border: 1px solid #e2e2e2; + border-radius: 8px; + margin: 12px 0; + overflow: hidden; + font-family: + "Fira Code", + "Cascadia Code", + "Courier New", + monospace; + position: relative; + cursor: default; + user-select: none; + syntax: none; +} +.code_block_wrapper * { + pointer-events: none; +} +.code_block_header { + background: #f0f0f0; + border-bottom: 1px solid #e2e2e2; + padding: 5px 10px; + display: flex; + align-items: center; + gap: 8px; + user-select: none; +} +.code_block_language { + font-size: 11px; + font-weight: 600; + color: #888; + font-family: "Fira Code", monospace; + letter-spacing: 0.04em; + flex: 0 0 auto; +} +.code_block_hint { + font-size: 11px; + color: #bbb; + flex: 1; +} +.code_block_cancel { + width: 20px; + height: 20px; + border-radius: 50%; + border: none; + background: transparent; + color: #bbb; + font-size: 16px; + pointer-events: all; + line-height: 1; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + flex: 0 0 auto; + transition: background 0.15s, color 0.15s; + padding: 0; +} +.code_block_cancel:hover { + background: #ffe4e4; + color: #dc2626; +} +.code_block_content { + margin: 0; + padding: 14px 16px; + color: #1e1e1e; + background: #f8f8f8; + overflow-x: auto; + font-size: 13.5px; + line-height: 1.65; + white-space: pre; + tab-size: 2; +} +.code_editor_modal { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.25); + display: flex; + align-items: center; + justify-content: center; + z-index: 9999; + backdrop-filter: blur(2px); +} +.code_editor_modal_content { + background: #ffffff; + width: 88vw; + height: 88vh; + border-radius: 12px; + display: flex; + flex-direction: column; + overflow: hidden; + border: 1px solid #e0e0e0; + box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15); +} +.code_editor_modal_header { + background: #f5f5f5; + padding: 9px 14px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #e2e2e2; + flex: 0 0 auto; +} +.code_editor_modal_title { + font-size: 12px; + font-weight: 600; + color: #888; + font-family: "Fira Code", monospace; + letter-spacing: 0.04em; +} +.code_editor_modal_actions { + display: flex; + gap: 6px; +} +.copy_editor_btn { + font-size: 12px; + font-family: inherit; + padding: 4px 12px; + border-radius: 6px; + border: 1px solid #d4d4d4; + background: #fff; + color: #444; + cursor: pointer; + transition: background 0.15s, border-color 0.15s; + white-space: nowrap; +} +.copy_editor_btn:hover { + background: #f0f0f0; +} +.copy_editor_btn--primary { + background: #1a1a1a; + color: #fff; + border-color: #1a1a1a; +} +.copy_editor_btn--primary:hover { + background: #333; + border-color: #333; +} +.copy_editor_btn--cancel:hover { + background: #ffe4e4; + color: #dc2626; + border-color: #fca5a5; +} +.editor_moal_wrapper { + flex: 1; + display: flex; + overflow: hidden; + position: relative; + background: #fff; +} +.editor_moal_line_number { + padding: 14px 10px 14px 12px; + background: #f8f8f8; + border-right: 1px solid #ebebeb; + font-family: "Fira Code", monospace; + font-size: 13px; + line-height: 1.65; + color: #ccc; + text-align: right; + user-select: none; + overflow: hidden; + min-width: 44px; + flex: 0 0 auto; +} +.editor_moal_line_number span { + display: block; +} +.modal_editor_text_area, +.editor_modal_pre_block { + position: absolute; + top: 0; + left: 44px; + width: calc(100% - 44px); + height: 100%; + margin: 0; + padding: 14px 16px; + border: none; + font-family: + "Fira Code", + "Cascadia Code", + "Courier New", + monospace; + font-size: 13.5px; + line-height: 1.65; + white-space: pre; + overflow: auto; + tab-size: 2; + box-sizing: border-box; +} +.modal_editor_text_area { + color: transparent; + background: transparent; + caret-color: #1a1a1a; + resize: none; + outline: none; + z-index: 2; +} +.editor_modal_pre_block { + color: #1e1e1e; + background: #fff; + z-index: 1; + pointer-events: none; + overflow: hidden; +} +.modal_editor_highlight { + display: block; +} +.layout_wrapper { + margin: 12px 0; + width: 100%; + position: relative; +} +.layout_active { + outline: 2px solid #3b82f6; + outline-offset: 4px; + border-radius: 4px; +} +`); + +// src/component/TextIgniterComponent.ts var TextIgniterComponent = class extends HTMLElement { constructor() { super(); this.initialized = false; this.config = {}; this.template = `
`; + this.initialValue = ""; if (!this.firstElementChild) { this.innerHTML = this.template; } } + get value() { + if (this.textIgniter) { + return this.textIgniter.getContent(); + } + return this.initialValue; + } + set value(val) { + this.initialValue = val; + if (this.textIgniter) { + if (this.textIgniter.getContent() !== val) { + this.textIgniter.loadHtmlContent(val); + } + } + } static get observedAttributes() { - return ["config"]; + return ["config", "value"]; } attributeChangedCallback(name, oldValue, newValue) { if (name === "config" && newValue !== oldValue) { @@ -2553,12 +3439,18 @@ var TextIgniterComponent = class extends HTMLElement { } catch (e) { console.error("Failed to parse config: ", e); } + } else if (name === "value" && newValue !== oldValue) { + this.value = newValue; } } connectedCallback() { if (this.initialized) { return; } + const attrValue = this.getAttribute("value"); + if (attrValue) { + this.initialValue = attrValue; + } this.initializeEditor(); } initializeEditor() { @@ -2577,6 +3469,9 @@ var TextIgniterComponent = class extends HTMLElement { editorContainer, this.config ); + if (this.initialValue) { + this.textIgniter.loadHtmlContent(this.initialValue); + } this.textIgniter.onContentChange((data) => { const event = new CustomEvent("content-change", { detail: data, diff --git a/packages/web-component/dist/index.js.map b/packages/web-component/dist/index.js.map index 914841a..d391c60 100644 --- a/packages/web-component/dist/index.js.map +++ b/packages/web-component/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../core/dist/index.js","../src/component/TextIgniterComponent.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).TextIgniter={})}(this,function(t){\"use strict\";class e{constructor(){this.events={}}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}emit(t,e){this.events[t]&&this.events[t].forEach(t=>t(e))}}class n{constructor(t,e={}){this.text=t;const n=document.getElementById(\"fontFamily\"),s=document.getElementById(\"fontSize\");let i=\"Arial\",o=\"16px\",l=document.getElementById(\"fontColorPicker\"),a=document.getElementById(\"bgColorPicker\");n&&(i=n.value),s&&(o=s.value);const r=e.fontColor||(l?l.value:\"#000000\"),d=e.bgColor||(a?a.value:\"#ffffff\");this.attributes={bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,subscript:e.subscript||!1,superscript:e.superscript||!1,undo:e.undo||!1,redo:e.redo||!1,fontFamily:e.fontFamily||i,fontSize:e.fontSize||o,hyperlink:e.hyperlink||!1,fontColor:r,bgColor:d}}isBold(){return this.attributes.bold}setBold(t){this.attributes.bold=t}isItalic(){return this.attributes.italic}isUndo(){return this.attributes.undo}isRedo(){return this.attributes.redo}setItalic(t){this.attributes.italic=t}isUnderline(){return this.attributes.underline}setUnderline(t){this.attributes.underline=t}isStrikethrough(){return this.attributes.strikethrough||!1}setStrikethrough(t){this.attributes.strikethrough=t}setUndo(t){this.attributes.undo=t}setRedo(t){this.attributes.redo=t}clone(){return new n(this.text,Object.assign({},this.attributes))}hasSameAttributes(t){return this.attributes.bold===t.attributes.bold&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&(this.attributes.strikethrough||!1)===(t.attributes.strikethrough||!1)&&(this.attributes.subscript||!1)===(t.attributes.subscript||!1)&&(this.attributes.superscript||!1)===(t.attributes.superscript||!1)&&this.attributes.undo===t.attributes.undo&&this.attributes.redo===t.attributes.redo&&this.attributes.fontFamily===t.attributes.fontFamily&&this.attributes.fontSize===t.attributes.fontSize&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&this.attributes.hyperlink===t.attributes.hyperlink&&this.attributes.fontColor===t.attributes.fontColor&&this.attributes.bgColor===t.attributes.bgColor}getHyperlink(){return this.attributes.hyperlink||!1}setHyperlink(t){this.attributes.hyperlink=t}}class s extends e{get selectedBlockId(){return this._selectedBlockId}set selectedBlockId(t){if(this._selectedBlockId!==t){this._selectedBlockId=t;const e=document.querySelector('[id=\"editor\"]'),n=document.querySelector('[data-id=\"'+t+'\"]');if(e&&n){const t=this.getCursorOffset(e),s=this.getCursorOffset(n);this.currentOffset=t-s}else this.currentOffset=0}}constructor(){super(),this.dataIds=[],this.selectAll=!1,this._selectedBlockId=null,this.pieces=[new n(\"\")],this.blocks=[{type:\"text\",dataId:\"data-id-1734604240404\",class:\"paragraph-block\",alignment:\"left\",pieces:[new n(\"​\")]}],this.selectedBlockId=\"data-id-1734604240404\",this.currentOffset=0}setEditorView(t){this.editorView=t}getPlainText(){return this.pieces.map(t=>t.text).join(\"\")}setUndoRedoManager(t){this.undoRedoManager=t}insertAt(t,e,s,i=\"\",o=0,l=\"\",a=\"\",r=!1){r||\"batch\"===a||this.undoRedoManager.saveUndoSnapshot(),console.log(\"inserted,\",{start:s,text:t}),console.log(\"inserted,\",this.blocks);let d=0,c=[],h=!1,u=0;if(\"\"===i||null===i)return;if(u=this.blocks.findIndex(t=>t.dataId===i),-1===u||!this.blocks[u].pieces)return;d=this.currentOffset;for(let i of this.blocks[u].pieces){const o=d+i.text.length;if(!h&&s<=o){const o=s-d;o>0&&c.push(new n(i.text.slice(0,o),Object.assign({},i.attributes))),c.push(new n(t,{bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,hyperlink:e.hyperlink||!1})),ot.dataId===s),-1===r||!this.blocks[r].pieces)return;a=i;let c=-1;if(o&&t===a&&r>0&&e===t&&(c=r-1>=0&&\"image\"===this.blocks[r-1].type?r-2:r-1,c>=0&&this.blocks[c]))for(let t of this.blocks[c].pieces)l.push(t.clone()),d=!0;for(let s of this.blocks[r].pieces){const i=a+s.text.length,o=a;if(i<=t||o>=e)l.push(s.clone());else{const a=s.text;if(t>o){const e=a.slice(0,t-o);e.length>0&&l.push(new n(e,Object.assign({},s.attributes)))}if(e0&&l.push(new n(t,Object.assign({},s.attributes)))}}a=i}let h=this.mergePieces(l),u=!1;d&&c>=0?(!this.blocks[r]||\"ol\"!==this.blocks[r].listType&&\"li\"!==this.blocks[r].listType||(u=!0),this.blocks[c].pieces=h,this.blocks.splice(r,1)):0===h.length?this.blocks.length>1?(!this.blocks[r]||\"ol\"!==this.blocks[r].listType&&\"li\"!==this.blocks[r].listType||(u=!0),this.blocks.splice(r,1)):(h=[new n(\" \")],this.blocks[r].pieces=h):this.blocks[r].pieces=h,u&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}deleteBlocks(){const t=this.blocks.some(t=>this.dataIds.includes(t.dataId)&&(\"ol\"===t.listType||\"li\"===t.listType));this.blocks=this.blocks.filter(t=>{if(!this.dataIds.includes(t.dataId))return t}),this.dataIds=[],this.selectAll=!1,0===this.blocks.length&&this.blocks.push({dataId:`data-id-${Date.now()}`,class:\"paragraph-block\",type:\"text\",pieces:[new n(\"​\")]}),t&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getSelectedTextDataId(){const t=window.getSelection();if(!t||0===t.rangeCount)return null;const e=t.getRangeAt(0).startContainer,n=(e.nodeType===Node.TEXT_NODE?e.parentElement:e).closest(\"[data-id]\");return(null==n?void 0:n.getAttribute(\"data-id\"))||null}getAllSelectedDataIds(){var t;const e=window.getSelection();if(!e||0===e.rangeCount)return[];const n=e.getRangeAt(0),s=[],i=document.createNodeIterator(n.commonAncestorContainer,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let o;for(;o=i.nextNode();)if(n.intersectsNode(o)){const e=o.nodeType===Node.TEXT_NODE?o.parentElement:o,n=null===(t=null==e?void 0:e.closest(\"[data-id]\"))||void 0===t?void 0:t.getAttribute(\"data-id\");n&&!s.includes(n)&&s.push(n)}return this.removeExclusiveEndBlock(n,s),this.dataIds=s,console.log(\"selected id 3\",this.dataIds,s),s}handleCtrlASelection(){const t=[],e=document.getElementById(\"editor\");if(e){e.querySelectorAll(\"[data-id]\").forEach(e=>{const n=e.getAttribute(\"data-id\");n&&!t.includes(n)&&t.push(n)})}return this.dataIds=t,console.log(\"selected id 2\",this.dataIds,t),t}getSelectedDataIds(){const t=window.getSelection();if(!t||0===t.rangeCount)return[];const e=t.getRangeAt(0),n=[],s=e.startContainer,i=e.endContainer,o=this.getDataIdFromNode(s),l=this.getDataIdFromNode(i);return o&&!n.includes(o)&&n.push(o),l&&!n.includes(l)&&n.push(l),this.removeExclusiveEndBlock(e,n),this.dataIds=n,console.log(\"selected id 1\",this.dataIds,n),n}getDataIdFromNode(t){var e;const n=t.nodeType===Node.TEXT_NODE?t.parentElement:t;return(null===(e=null==n?void 0:n.closest(\"[data-id]\"))||void 0===e?void 0:e.getAttribute(\"data-id\"))||null}getCursorOffset(t){const e=window.getSelection();if(!e||0===e.rangeCount||!t)return-1;const n=e.getRangeAt(0);let s=0;const i=t=>{if(t===n.startContainer)return s+=n.startOffset,!0;t.nodeType===Node.TEXT_NODE&&(s+=(t.textContent||\"\").length);for(const e of Array.from(t.childNodes))if(i(e))return!0;return!1};return i(t),s}formatAttribute(t,e,s,i){console.log(\"formatAttribute\",t,e,s,i);let o=[],l=0,a=-1;if(\"\"===this.selectedBlockId||null===this.selectedBlockId)return;if(a=this.blocks.findIndex(t=>t.dataId===this.selectedBlockId),-1===a||!this.blocks[a].pieces)return;l=this.currentOffset;for(let r of this.blocks[a].pieces){const a=l+r.text.length;if(a<=t||l>=e)o.push(r.clone());else{const a=l,d=r.text,c=Math.max(t-a,0),h=Math.min(e-a,d.length);c>0&&o.push(new n(d.slice(0,c),Object.assign({},r.attributes)));const u=new n(d.slice(c,h),Object.assign({},r.attributes));(\"bold\"!==s&&\"italic\"!==s&&\"underline\"!==s&&\"strikethrough\"!==s&&\"subscript\"!==s&&\"superscript\"!=s&&\"undo\"!==s&&\"redo\"!==s&&\"hyperlink\"!==s||\"boolean\"!=typeof i)&&(\"fontFamily\"!==s&&\"fontSize\"!==s&&\"hyperlink\"!==s&&\"fontColor\"!==s&&\"bgColor\"!==s||\"string\"!=typeof i)||(u.attributes[s]=i),o.push(u),he.dataId===t);if(-1===n)return;const s=this.blocks[n];\"ol\"===s.listType||\"li\"===s.listType?(s.listType=null,s.listStart=void 0,s.parentId=void 0):(s.listType=\"ol\",s.listStart=1,s.parentId=s.dataId),this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getHeadingFontSize(t){switch(t){case\"h1\":return\"32px\";case\"h2\":return\"24px\";case\"h3\":return\"18px\";case\"h4\":default:return\"16px\";case\"h5\":return\"13px\";case\"h6\":return\"11px\"}}toggleHeading(t,e){var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1===s)return;const i=this.blocks[s];i.heading=e;const o=this.getHeadingFontSize(e);if(Array.isArray(i.pieces)){i.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?i.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=i.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:o})}]:i.pieces.forEach(t=>{t.attributes.fontSize=o})}this.emit(\"documentChanged\",this)}toggleHeadingForMultipleBlocks(t,e){t.forEach(t=>{var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1!==s){const t=this.blocks[s];t.heading=e;const i=this.getHeadingFontSize(e);if(Array.isArray(t.pieces)){t.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?t.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=t.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:i})}]:t.pieces.forEach(t=>{t.attributes.fontSize=i})}}}),this.emit(\"documentChanged\",this)}toggleOrderedListForMultipleBlocks(t){if(0===t.length)return;const e=t.sort((t,e)=>this.blocks.findIndex(e=>e.dataId===t)-this.blocks.findIndex(t=>t.dataId===e));if(e.every(t=>{const e=this.blocks.find(e=>e.dataId===t);return e&&(\"ol\"===e.listType||\"li\"===e.listType)}))e.forEach(t=>{const e=this.blocks.find(e=>e.dataId===t);e&&(e.listType=null,e.listStart=void 0,e.parentId=void 0)});else{const t=e[0];e.forEach((e,n)=>{const s=this.blocks.find(t=>t.dataId===e);s&&(0===n?(s.listType=\"ol\",s.listStart=1,s.parentId=t):(s.listType=\"li\",s.listStart=n+1,s.parentId=t))})}this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}toggleUnorderedList(t){const e=this.blocks.findIndex(e=>e.dataId===t);if(-1===e)return;const n=this.blocks[e];n.listType=\"ul\"===n.listType?null:\"ul\",this.emit(\"documentChanged\",this)}updateOrderedListNumbers(){let t=1,e=null;for(let n=0;nt.focus(),0)}else this.editorView.container.focus();const s=window.getSelection();if(!s)return;const i=document.createRange();let o=0;const l=[this.editorView.container];let a;const r=(null===(n=this.editorView.container.textContent)||void 0===n?void 0:n.length)||0;if(!(t<0||t>r)){for(;a=l.pop();)if(3===a.nodeType){const e=a,n=o+e.length;if(t>=o&&t<=n){i.setStart(e,Math.min(t-o,e.length)),i.collapse(!0);break}o=n}else if(\"BR\"===a.tagName){if(t===o){i.setStartBefore(a),i.collapse(!0);break}o++}else{const t=a;let e=t.childNodes.length;for(;e--;)l.push(t.childNodes[e])}s.removeAllRanges(),s.addRange(i)}}toggleBoldRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"bold\");this.formatAttribute(t,e,\"bold\",!s)}toggleItalicRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"italic\");this.formatAttribute(t,e,\"italic\",!s)}toggleUnderlineRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"underline\");this.formatAttribute(t,e,\"underline\",!s)}toggleStrikethroughRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"strikethrough\");this.formatAttribute(t,e,\"strikethrough\",!s)}toggleSubscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"subscript\");s||this.formatAttribute(t,e,\"superscript\",!1),this.formatAttribute(t,e,\"subscript\",!s)}toggleSuperscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"superscript\");s||this.formatAttribute(t,e,\"subscript\",!1),this.formatAttribute(t,e,\"superscript\",!s)}toggleUndoRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"undo\");this.formatAttribute(t,e,\"undo\",!s)}toggleRedoRange(t,e){const n=this.isRangeEntirelyAttribute(t,e,\"redo\");this.formatAttribute(t,e,\"redo\",!n)}applyFontColor(t,e,n,s=\"\"){tt.dataId===this.selectedBlockId);if(-1===o||!this.blocks[o].pieces)return!1;for(let l of this.blocks[o].pieces){const o=s+l.text.length;if(o>t&&st+e.text.length,0);if(s.dataId==e){let e=null;for(let i of s.pieces){const s=n,o=s+i.text.length;if(t>=s&&tt.dataId===e);n&&(n.alignment=t,this.emit(\"documentChanged\",this))}getHtmlContent(t=!1){const e=document.getElementById(\"editor\");if(!e)return void console.error(\"Editor container not found.\");const n=e.innerHTML;return t&&navigator.clipboard.writeText(n).then(()=>{console.log(\"HTML copied to clipboard!\")}).catch(t=>console.error(\"Failed to copy HTML:\",t)),n}getCursorOffsetInParent(t){var e;console.log(\"textPosition -1:vicky\",t);const n=document.querySelector(t);if(!n)return null;const s=window.getSelection();if(!s||0===s.rangeCount)return null;const i=s.getRangeAt(0);if(!n.contains(i.startContainer))return null;let o=0,l=null;const a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let r=null;for(;a.nextNode();){const t=a.currentNode;if(console.log(t,\"textPosition - currentNode: vicky\"),t===i.startContainer){o+=i.startOffset,l=t,r=t.parentElement;break}o+=(null===(e=t.textContent)||void 0===e?void 0:e.length)||0}return console.log({offset:o,childNode:l,innerHTML:r.innerHTML,innerText:r.innerText},\"textPosition - return values: vicky\"),{offset:o,childNode:l,innerHTML:r.innerHTML,innerText:r.innerText}}removeExclusiveEndBlock(t,e){if(e.length<=1)return;const n=t.endContainer,s=t.endOffset;let i=!1;if((n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE)&&(i=0===s),!i)return;const o=this.getDataIdFromNode(n);if(!o)return;if(o!==this.getDataIdFromNode(t.startContainer)&&e.includes(o)){const t=e.lastIndexOf(o);t>-1&&e.splice(t,1)}}}function i(t){const e=window.getSelection();if(!e||0===e.rangeCount)return null;const n=e.getRangeAt(0),s=n.cloneRange();s.selectNodeContents(t),s.setEnd(n.startContainer,n.startOffset);const i=s.toString().length;s.setEnd(n.endContainer,n.endOffset);return{start:i,end:s.toString().length}}function o(t,e){if(!e)return;let n=0;const s=document.createRange();s.setStart(t,0),s.collapse(!0);const i=[t];let o,l=!1,a=!1;for(;!a&&(o=i.pop());)if(3===o.nodeType){const t=o,i=n+t.length;!l&&e.start>=n&&e.start<=i&&(s.setStart(t,e.start-n),l=!0),l&&e.end>=n&&e.end<=i&&(s.setEnd(t,e.end-n),a=!0),n=i}else if(\"BR\"===o.tagName)l||e.start!==n||(s.setStartBefore(o),l=!0),l&&e.end===n&&(s.setEndBefore(o),a=!0),n++;else{const t=o;let e=t.childNodes.length;for(;e--;)i.push(t.childNodes[e])}const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(s))}function l(t){const e=i(t.container);return e?[e.start,e.end]:[0,0]}const a=/((https?:\\/\\/|www\\.)[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]+|\\b[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:\\/[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]*)?)/g;function r(t,e){return e>0&&\"@\"===t[e-1]}function d(t){if(!t)return t;let e=t.trim();const n=e.match(/^https?:\\/\\/[\\w.-]+(?::\\d+)?\\/(https?:\\/\\/.*)$/);return n&&(e=n[1]),/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)?e:e.startsWith(\"//\")?\"https:\"+e:\"https://\"+e}class c{constructor(t,e){this.container=t,this.document=e}setImageHandler(t){this.imageHandler=t}render(){const t=i(this.container);this.container.innerHTML=\"\",this.document.blocks.forEach(t=>{var e;if(\"\"!==t.dataId){let n;if(\"table\"===t.type||\"layout\"===t.type||\"math\"===t.type)return void(t.element&&this.container.appendChild(t.element));if(\"image\"===t.type){if(n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",t.image)if(this.imageHandler&&\"function\"==typeof this.imageHandler.createImageFragment)n.appendChild(this.imageHandler.createImageFragment(t.image,t.dataId));else{const e=document.createElement(\"img\");e.src=t.image,n.appendChild(e)}}else if(\"code\"===t.type){n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",\"code_block_wrapper\"),n.setAttribute(\"type\",\"code\"),n.setAttribute(\"data-language\",t.language||\"text\"),n.addEventListener(\"mousedown\",t=>{t.preventDefault()});const e=document.createElement(\"div\");e.className=\"code_block_header\";const s=document.createElement(\"span\");s.className=\"code_block_language\",s.innerText=t.language||\"text\";const i=document.createElement(\"span\");i.className=\"code_block_hint\",i.innerText=\"double-click to edit\";const o=document.createElement(\"button\");o.className=\"code_block_cancel\",o.innerHTML=\"×\",o.title=\"Remove block\",o.addEventListener(\"mousedown\",t=>{t.stopPropagation()}),o.onclick=e=>{e.stopPropagation(),e.preventDefault(),n.remove();const s=this.document.blocks.findIndex(e=>e.dataId===t.dataId);-1!==s&&(this.document.blocks.splice(s,1),this.document.selectedBlockId===t.dataId&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},e.appendChild(s),e.appendChild(i),e.appendChild(o);const l=document.createElement(\"pre\");l.className=\"code_block_content\";const a=document.createElement(\"code\");a.textContent=t.code||\"\",l.appendChild(a),n.appendChild(e),n.appendChild(l)}else if(\"ol\"===t.listType||\"li\"===t.listType?(n=document.createElement(\"ol\"),n.setAttribute(\"start\",(null===(e=null==t?void 0:t.listStart)||void 0===e?void 0:e.toString())||\"1\")):n=\"ul\"===t.listType?document.createElement(\"ul\"):document.createElement(t.heading||\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",Array.isArray(t.pieces))if(\"ol\"===t.listType||\"ul\"===t.listType||\"li\"===t.listType){const e=document.createElement(\"li\");t.pieces.forEach(t=>{e.appendChild(this.renderPiece(t))}),n.appendChild(e)}else t.pieces.forEach(t=>{n.appendChild(this.renderPiece(t))});this.container.appendChild(n)}}),o(this.container,t)}renderPiece(t){const e=t.text.split(\"\\n\");return this.wrapAttributes(e,t.attributes)}wrapAttributes(t,e){const n=document.createDocumentFragment();return t.forEach((s,i)=>{let o=document.createTextNode(s);if(e.strikethrough){const t=document.createElement(\"s\");t.appendChild(o),o=t}if(e.underline){const t=document.createElement(\"u\");t.appendChild(o),o=t}if(e.italic){const t=document.createElement(\"em\");t.appendChild(o),o=t}if(e.bold){const t=document.createElement(\"strong\");t.appendChild(o),o=t}if(e.subscript){const t=document.createElement(\"sub\");t.appendChild(o),o=t}if(e.superscript){const t=document.createElement(\"sup\");t.appendChild(o),o=t}const l=document.getElementById(\"fontFamily\"),a=document.getElementById(\"fontSize\");let r=\"Arial\",c=\"16px\";l&&(r=l.value),a&&(c=a.value);const h=document.createElement(\"span\");if(h.style.fontFamily=e.fontFamily||r,h.style.fontSize=e.fontSize||c,e.fontColor&&\"string\"==typeof e.fontColor&&(h.style.color=e.fontColor),e.bgColor&&\"string\"==typeof e.bgColor&&(h.style.backgroundColor=e.bgColor),e.hyperlink&&\"string\"==typeof e.hyperlink){const t=document.createElement(\"a\");t.href=d(e.hyperlink),t.appendChild(o),o=t}h.appendChild(o),o=h,n.appendChild(o),i{t.addEventListener(\"mousedown\",t=>{t.preventDefault()})}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"toolbarAction\",t)}})}updateActiveStates(t){if(this.container.querySelectorAll(\"button\").forEach(e=>{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),\"undo\"===n&&t.undo&&(s=!0),\"redo\"===n&&t.redo&&(s=!0),e.classList.toggle(\"active\",s)}),this.container.querySelectorAll(\"select\").forEach(e=>{const n=e.getAttribute(\"data-action\");\"fontFamily\"===n&&t.fontFamily&&(e.value=t.fontFamily),\"fontSize\"===n&&t.fontSize&&(e.value=t.fontSize)}),t.fontColor){const e=document.getElementById(\"fontColorPicker\");e&&(e.value=t.fontColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}if(t.bgColor){const e=document.getElementById(\"bgColorPicker\");e&&(e.value=t.bgColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}}}const u={TOOLBAR_CLASSNAME:\"toolbar\",TOOLBAR_ID:\"toolbar\",EDITOR_CLASSNAME:\"editor\",EDITOR_ID:\"editor\",EDITOR_ELEMENT_NT_FOUND:\"Editor element not found or incorrect element type.\",FONT_FAMILY_SELECT_ID:\"fontFamily\",FONT_SIZE_SELECT_ID:\"fontSize\",HEADING_SELECT_ID:\"heading\",FONT_COLOR_WRAPPER_ID:\"fontColorWrapper\",FONT_COLOR_ID:\"fontColor\",FONT_COLOR_PICKER_WRAPPER_ID:\"colorWrapper\",FONT_COLOR_PICKER_ID:\"fontColorPicker\",FONT_COLOR_RESET_ID:\"colorResetFont\",BG_COLOR_WRAPPER_ID:\"bgColorWrapper\",BG_COLOR_ID:\"bgColor\",BG_COLOR_PICKER_WRAPPER_ID:\"colorBgWrapper\",BG_COLOR_RESET_ID:\"colorResetBG\",BG_COLOR_PICKER_ID:\"bgColorPicker\",GET_HTML_BUTTON_ID:\"getHtmlButton\",LOAD_HTML_BUTTON_ID:\"loadHtmlButton\",HYPERLINK_CONTAINER_ID:\"hyperlink-container\",HYPERLINK_INPUT_ID:\"hyperlink-input\",HYPERLINK_PLACEHOLDER:\"Enter a URL...\",HYPERLINK_APPLY_BTN_ID:\"apply-hyperlink\",HYPERLINK_CANCEL_BTN_ID:\"cancel-hyperlink\",VIEW_HYPERLINK_CONTAINER_ID:\"hyperlink-container-view\",VIEW_HYPERLINK_LABEL_ID:\"hyperlink-view-span\",VIEW_HYPERLINK_ANCHOR_ID:\"hyperlink-view-link\",TEMPORARY_SELECTION_HIGHLIGHT_CLASS:\"temporary-selection-highlight\",PARAGRAPH_BLOCK_CLASS:\"paragraph-block\",IMAGE_CROSS_CLASS:\"image-cross\",TEST_HTML_CODE:'
ajsh diujaksdajsh diujaksdajsh
diujaksdasd 98hasiudasdh 98
This is a t this is a test work
This is a test work. this is a test work
da90 uasd y98asiodoiasda90 uasd y98asiodoiasda90 uasd y98asioda
sdjasdjasdja9sudoija9sudoija9sudoija90sdoa90sdoa90sdo
',TEST_BLOG_POST_HTML_CODE:'
Blog Post Title
Start writing your post here...
',TEST_NEWSLATER_HTML_CODE:'
Weekly Newsletter
Hello subscribers,
',TEST_RESUME_HTML_CODE:'
John Doe
Experience
• Role 1
',TEST_EMAIL_HTML_CODE:'
Subject: Important Update
Hi Team,
',TEST_MEETING_HTML_CODE:'
Meeting Minutes
Attendees:
Action Items:
',POPUP_TOOLBAR_CLASSNAME:\"popup-toolbar\",POPUP_TOOLBAR_ID:\"popup-toolbar\",TOAST_ID:\"ti-toast\",TOAST_SHOW_CLASS:\"ti-toast--show\",TOAST_DEFAULT_MESSAGE:\"HTML copied to clipboard\",TOAST_DEFAULT_DURATION_MS:2e3};class p{constructor(t,e,n){this.savedSelection=null,this.clickOutsideHandler=null,this.editorContainer=t,this.editorView=e,this.document=n}setUndoRedoManager(t){this.undoRedoManager=t}hanldeHyperlinkClick(t,e,n,s,i){const o=this.getCommonHyperlinkInRange(t,e,n,s,i);this.showHyperlinkInput(o)}getCommonHyperlinkInRange(t,e,n,s,i){let o=n,l=0;s&&(l=i.findIndex(t=>t.dataId===s));const a=i[l].pieces;let r=null;for(let n of a){const s=o+n.text.length;if(s>t&&o0){const t=c.getRangeAt(0);let i=null;if(t&&\"function\"==typeof t.getBoundingClientRect)i=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);i=n&&n.length?n[0]:null}(!i||Number.isNaN(i.top)&&Number.isNaN(i.left))&&(i=this.editorView.container.getBoundingClientRect());const l=(null===window||void 0===window?void 0:window.scrollY)||0,a=(null===window||void 0===window?void 0:window.scrollX)||0;o.style.top=`${(null!==(n=i.bottom)&&void 0!==n?n:i.top)+l+5}px`,o.style.left=`${(null!==(s=i.left)&&void 0!==s?s:0)+a}px`}l.value=t||\"\",this.savedSelection=i(this.editorView.container),this.highlightSelection(),l.focus(),a.onclick=null,r.onclick=null;const h=this.document.dataIds,u=()=>{const t=d(l.value.trim());t&&this.applyHyperlink(t,h),o.style.display=\"none\"};a.onclick=u,l.onkeydown=t=>{\"Enter\"===t.key&&(t.preventDefault(),u())},r.onclick=()=>{this.removeHyperlink(h),o.style.display=\"none\"}}}highlightSelection(){this.removeHighlightSelection();const t=window.getSelection();if(t&&t.rangeCount>0){const e=t.getRangeAt(0),n=document.createElement(\"span\");n.className=u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS,n.appendChild(e.extractContents()),e.insertNode(n),t.removeAllRanges();const s=document.createRange();s.selectNodeContents(n),t.addRange(s)}}removeHighlightSelection(){var t;const e=null===(t=this.editorContainer)||void 0===t?void 0:t.querySelectorAll(`span.${u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS}`);null==e||e.forEach(t=>{const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)}})}applyHyperlink(t,e){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),o(this.editorView.container,this.savedSelection);const[n,s]=l(this.editorView);if(n1?this.document.blocks.forEach(t=>{if(e.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.formatAttribute(s,e,\"hyperlink\",i)}}):this.document.formatAttribute(n,s,\"hyperlink\",i),this.editorView.render();const o=window.getSelection();o&&o.removeAllRanges(),this.editorView.container.focus()}this.savedSelection=null}removeHyperlink(t){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),o(this.editorView.container,this.savedSelection);const[e,n]=l(this.editorView);e1?this.document.blocks.forEach(n=>{if(t.includes(n.dataId)){this.document.selectedBlockId=n.dataId;let t=0;n.pieces.forEach(e=>{t+=e.text.length});let s=e-t;this.document.formatAttribute(s,t,\"hyperlink\",!1)}}):this.document.formatAttribute(e,n,\"hyperlink\",!1),this.editorView.render(),o(this.editorView.container,this.savedSelection),this.editorView.container.focus()),this.savedSelection=null}addClickOutsideListener(t){this.removeClickOutsideListener(),this.clickOutsideHandler=e=>{t&&!t.contains(e.target)&&this.hideHyperlinkViewButton()},setTimeout(()=>{\"undefined\"!=typeof document&&document.addEventListener(\"click\",this.clickOutsideHandler)},100)}removeClickOutsideListener(){this.clickOutsideHandler&&(document.removeEventListener(\"click\",this.clickOutsideHandler),this.clickOutsideHandler=null)}showHyperlinkViewButton(t){var e,n,s;const i=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID),o=document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID);if(i&&o){i.style.display=\"block\";const l=window.getSelection();if(l&&l.rangeCount>0){const t=l.getRangeAt(0);let o=null;if(t&&\"function\"==typeof t.getBoundingClientRect)o=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);o=n&&n.length?n[0]:null}o||(o=this.editorView.container.getBoundingClientRect());const a=(null===window||void 0===window?void 0:window.scrollY)||0,r=(null===window||void 0===window?void 0:window.scrollX)||0;o&&(i.style.top=`${(null!==(n=o.bottom)&&void 0!==n?n:o.top)+a+5}px`,i.style.left=`${(null!==(s=o.left)&&void 0!==s?s:0)+r}px`)}t&&(o.innerText=t,o.href=d(t))}this.addClickOutsideListener(i)}hideHyperlinkViewButton(){const t=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID);t&&(t.style.display=\"none\"),this.removeClickOutsideListener()}}function m(t){return g((new DOMParser).parseFromString(t,\"text/html\").body,{bold:!1,italic:!1,underline:!1,hyperlink:!1})}function g(t,e){let s=Object.assign({},e);const i=[];if(t instanceof HTMLElement){if(\"A\"===t.tagName){const e=t.getAttribute(\"href\");e&&(s.hyperlink=e)}\"STRONG\"!==t.tagName&&\"B\"!==t.tagName||(s.bold=!0),\"EM\"!==t.tagName&&\"I\"!==t.tagName||(s.italic=!0),\"U\"===t.tagName&&(s.underline=!0),t.childNodes.forEach(t=>{i.push(...g(t,s))})}else if(t instanceof Text){const e=t.nodeValue||\"\";\"\"!==e.trim()&&i.push(new n(e,Object.assign({},s)))}return i}const f={bold:'\\n Bold\\n \\n ',italic:'\\n Italic\\n \\n ',underline:'\\n Underline\\n \\n ',strikethrough:'\\n Strikethrough\\n \\n ',subscript:'\\n \\n ',superscript:'\\n \\n ',left_align:'\\n Left Align\\n \\n ',center_align:'\\n Center Align\\n ',right_align:'\\n Right Align',justify:'\\n Justify\\n ',bullet_list:'\\n Bullet List',numbered_list:'\\n Numbererd List\\n \\n ',insert_table:'\\n \\n \\n \\n \\n \\n \\n \\n ',insert_layout:'\\n Insert Layout\\n \\n ',heading:'\\n Heading\\n \\n ',hyperlink:'\\n Hyperlink\\n \\n \\n ',image:'\\n Insert Image\\n \\n ',stop_microphone:' \\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',start_microphone:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',close_icon:'\\n \\n ',emoji:'\\n Emoji\\n \\n \\n \\n \\n ',insert_math:'\\n \\n ',textToSppech:'\\n \\n \\n \\n \\n Icon_24px_TexttoSpeech_Color\\n \\n \\n \\n \\n \\n \\n \\n ',speaker_on:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',speaker_off:'\\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n '},b={dropdowns:[\"fontFamily\",\"fontSize\",\"heading\"],colors:[\"fontColor\",\"bgColor\"],formatting:[\"bold\",\"italic\",\"underline\",\"strikethrough\"],alignment:[\"alignLeft\",\"alignCenter\",\"alignRight\"],lists:[\"unorderedList\",\"orderedList\"],media:[\"hyperlink\",\"image\",\"emoji\",\"insert_math\"],utility:[\"getHtmlContent\",\"loadHtmlContent\"]};function y(){const t=document.createElement(\"div\");return t.className=\"toolbar-separator\",t}function C(t,e){const n=u.EDITOR_ID,s=u.TOOLBAR_ID,i=u.POPUP_TOOLBAR_ID,o=[\"Arial\",\"Times New Roman\",\"Courier New\",\"Verdana\"],l=[\"12px\",\"14px\",\"16px\",\"18px\",\"20px\"],a=document.getElementById(t);if(!a)throw new Error(u.EDITOR_ELEMENT_NT_FOUND);a.classList.add(\"editor-container\");const r=document.createElement(\"div\");r.className=u.TOOLBAR_CLASSNAME,r.id=s,a.appendChild(r),!1===(null==e?void 0:e.showToolbar)&&(r.style.display=\"none\");const d=document.createElement(\"div\");d.id=n,d.className=u.EDITOR_CLASSNAME,d.contentEditable=\"true\",d.spellcheck=!0,d.lang=\"en\",a.appendChild(d);const c={bold:\"B\",italic:\"I\",underline:\"U\",hyperlink:\"🔗\",alignLeft:\"⇤\",alignCenter:\"↔\",alignRight:\"⇥\",unorderedList:\"•\",orderedList:\"1.\",fontFamily:\"fontFamily\",fontSize:\"fontSize\",fontColor:\"A\",subscript:\"X2\",superscript:\"X2\",justify:\"⇄\",insert_table:\"⊢\",insert_layout:\"❐\",insert_math:\"Σ\",heading:\"H\",image:\"📷\",colors:\"🎨\"},h={bold:\"Bold (Ctrl+B)\",italic:\"Italic (Ctrl+I)\",underline:\"Underline (Ctrl+U)\",strikethrough:\"Strikethrough\",hyperlink:\"Insert Link (Ctrl+H)\",alignLeft:\"Align Left (Ctrl+L)\",alignCenter:\"Align Center (Ctrl+E)\",alignRight:\"Align Right (Ctrl+R)\",unorderedList:\"Bullet List\",orderedList:\"Numbered List\",fontColor:\"Text Color\",bgColor:\"Highlight Color\",image:\"Insert Image\",emoji:\"Emoji\",getHtmlContent:\"Get HTML\",loadHtmlContent:\"Load HTML\",insert_table:\"Insert table\",insert_math:\"Insert Equation\",textToSpeech:\"Text To Sppech\"},p=[{feature:\"alignLeft\",id:\"alignLeft\",icon:f.left_align},{feature:\"alignCenter\",id:\"alignCenter\",icon:f.center_align},{feature:\"alignRight\",id:\"alignRight\",icon:f.right_align},{feature:\"unorderedList\",id:\"unorderedList\",icon:f.bullet_list},{feature:\"orderedList\",id:\"orderedList\",icon:f.numbered_list},{feature:\"hyperlink\",id:\"hyperlink\",icon:f.hyperlink},{feature:\"emoji\",id:\"emoji\",icon:f.emoji},{feature:\"strikethrough\",id:\"strikethrough\",icon:f.strikethrough},{feature:\"insert_table\",id:\"insert_table\",icon:f.insert_table},{feature:\"insert_math\",id:\"insert_math\",icon:f.insert_math},{feature:\"subscript\",id:\"subscript\",icon:f.subscript},{feature:\"superscript\",id:\"superscript\",icon:f.superscript},{feature:\"textToSpeech\",id:\"textToSpeech\",icon:f.speaker_on}],m=(t,e)=>{const n=document.createElement(\"select\");return n.dataset.action=t,n.id=t,e.forEach(t=>{const e=document.createElement(\"option\");e.value=t,e.textContent=t,n.appendChild(e)}),n},g=document.createElement(\"div\");g.id=i,g.className=u.POPUP_TOOLBAR_CLASSNAME,g.style.display=\"none\",a.appendChild(g),e.popupFeatures&&e.popupFeatures.forEach((t,e)=>{e>0&&\"hyperlink\"===t&&g.appendChild(y());const n=p.find(e=>e.feature===t)||{icon:c[t]||t},s=document.createElement(\"button\");s.dataset.action=t,s.innerHTML=n.icon,s.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),g.appendChild(s)});let C=null;e.features.forEach((t,n)=>{const s=function(t){for(const[e,n]of Object.entries(b))if(n.includes(t))return e;return null}(t);if(n>0&&s&&C&&s!==C&&r.appendChild(y()),C=s,\"fontFamily\"===t){const t=m(u.FONT_FAMILY_SELECT_ID,o);r.appendChild(t)}else if(\"fontSize\"===t){const t=m(u.FONT_SIZE_SELECT_ID,l);r.appendChild(t)}else if(\"fontColor\"===t){if(document.getElementById(u.FONT_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.FONT_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.FONT_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.fontColor,e.innerHTML='A',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.FONT_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #d1d1d1\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.type=\"color\",s.id=u.FONT_COLOR_PICKER_ID,s.setAttribute(\"data-action\",\"fontColor\"),s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #d1d1d1\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#000000\",n.appendChild(s);const i=document.createElement(\"button\");i.id=u.FONT_COLOR_RESET_ID,i.type=\"button\",i.textContent=\"Reset\",i.style.display=\"block\",i.style.width=\"100%\",i.style.padding=\"6px 12px\",i.style.fontSize=\"12px\",i.style.border=\"1px solid #000000\",i.style.borderRadius=\"4px\",i.style.backgroundColor=\"#f8f8f8\",i.style.cursor=\"pointer\",i.style.transition=\"background-color 0.2s\",i.onmouseenter=()=>i.style.backgroundColor=\"#e8e8e8\",i.onmouseleave=()=>i.style.backgroundColor=\"#f8f8f8\",n.appendChild(i),t.appendChild(n),r.appendChild(t)}else if(\"bgColor\"===t){if(document.getElementById(u.BG_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.BG_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.BG_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.bgColor,e.innerHTML='B',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.BG_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #000000\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.setAttribute(\"data-action\",\"bgColor\"),s.type=\"color\",s.id=u.BG_COLOR_PICKER_ID,s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #000000ff\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#ffffff\",n.appendChild(s);const i=document.createElement(\"button\");i.id=u.BG_COLOR_RESET_ID,i.type=\"button\",i.textContent=\"Reset\",i.style.display=\"block\",i.style.width=\"100%\",i.style.padding=\"6px 12px\",i.style.fontSize=\"12px\",i.style.border=\"1px solid #d1d1d1\",i.style.borderRadius=\"4px\",i.style.backgroundColor=\"#f8f8f8\",i.style.cursor=\"pointer\",i.style.transition=\"background-color 0.2s\",i.onmouseenter=()=>i.style.backgroundColor=\"#e8e8e8\",i.onmouseleave=()=>i.style.backgroundColor=\"#f8f8f8\",n.appendChild(i),t.appendChild(n),r.appendChild(t)}else if(\"getHtmlContent\"===t){const t=document.createElement(\"button\");t.id=u.GET_HTML_BUTTON_ID,t.type=\"button\",t.textContent=\"Get HTML\",t.dataset.tooltip=h.getHtmlContent,r.appendChild(t)}else if(\"loadHtmlContent\"===t){const t=document.createElement(\"select\");t.id=u.LOAD_HTML_BUTTON_ID,t.dataset.action=\"loadHtmlContent\",t.dataset.tooltip=h.loadHtmlContent,t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const n=document.createElement(\"option\");n.value=\"\",n.textContent=\"Templates...\",n.disabled=!0,n.selected=!0,t.appendChild(n);[...[{name:\"Default Test\",html:u.TEST_HTML_CODE},{name:\"Blog Post\",html:u.TEST_BLOG_POST_HTML_CODE},{name:\"Newsletter\",html:u.TEST_NEWSLATER_HTML_CODE},{name:\"Resume\",html:u.TEST_RESUME_HTML_CODE},{name:\"Email\",html:u.TEST_EMAIL_HTML_CODE},{name:\"Meeting Notes\",html:u.TEST_MEETING_HTML_CODE}],...e.templates||[]].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=n.toString(),s.dataset.html=e.html,s.textContent=e.name,t.appendChild(s)}),r.appendChild(t)}else if(\"heading\"===t){const t=document.createElement(\"select\");t.id=u.HEADING_SELECT_ID,t.dataset.action=\"heading\",t.dataset.tooltip=h.heading||\"Heading\",t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const e=document.createElement(\"option\");e.value=\"\",e.textContent=\"Normal\",t.appendChild(e),[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=e.toLowerCase(),s.textContent=`Heading ${n+1}`,t.appendChild(s)}),r.appendChild(t)}else if(p.map(t=>t.feature).includes(t)){const e=p.find(e=>e.feature===t),n=document.createElement(\"button\");n.id=t,n.dataset.action=t,n.innerHTML=(null==e?void 0:e.icon)||\"\",n.dataset.tooltip=h[t]||t,r.appendChild(n)}else{const e=document.createElement(\"button\");e.dataset.action=t,e.innerHTML=c[t]||t,e.id=t,e.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),r.appendChild(e)}});const k=document.createElement(\"div\");k.id=u.HYPERLINK_CONTAINER_ID,k.style.display=\"none\";const v=document.createElement(\"input\");v.type=\"text\",v.id=u.HYPERLINK_INPUT_ID,v.placeholder=u.HYPERLINK_PLACEHOLDER;const x=document.createElement(\"button\");x.id=u.HYPERLINK_APPLY_BTN_ID,x.textContent=\"Link\";const I=document.createElement(\"button\");I.id=u.HYPERLINK_CANCEL_BTN_ID,I.textContent=\"Unlink\",k.appendChild(v),k.appendChild(x),k.appendChild(I),r.appendChild(k);const E=document.createElement(\"div\");E.id=u.VIEW_HYPERLINK_CONTAINER_ID,E.style.display=\"none\";const w=document.createElement(\"span\");w.id=u.VIEW_HYPERLINK_LABEL_ID,w.innerHTML=\"Visit URL : \";const _=document.createElement(\"a\");return _.id=u.VIEW_HYPERLINK_ANCHOR_ID,_.href=\"\",_.target=\"_blank\",E.appendChild(w),E.appendChild(_),r.appendChild(E),{mainEditorId:n,toolbarId:s,popupToolbarId:i}}class k{constructor(t){this.htmlString=t,this.doc=(new DOMParser).parseFromString(t,\"text/html\")}parse(){const t=this.doc.body.children;let e=[];return Array.from(t).forEach((t,n)=>{const s=this.parseElement(t);console.log(t,\"element parse\",n,s),e.push(s)}),console.log(e,\"element--jsondata\"),e}parseElement(t){const e=t.getAttribute(\"data-id\")||`data-id-${Date.now()}-${Math.floor(1e3*Math.random())}`,n=t.className||\"paragraph-block\",s=t.style.textAlign||\"left\";let i=null,o=null;\"UL\"===t.tagName?i=\"ul\":\"OL\"===t.tagName&&(i=\"ol\",o=parseInt(t.getAttribute(\"start\")||\"1\",10));let l=[];i?this.parseListItems(t,l):this.parseParagraphText(t,l);const a=t.tagName.toLowerCase(),r=a.match(/^h[1-6]$/)?a:null;return Object.assign(Object.assign(Object.assign(Object.assign({dataId:e,class:n,alignment:s,pieces:l},i?{listType:i}:{}),null!==o?{listStart:o}:{}),{}),r?{heading:r}:{})}parseListItems(t,e){t.querySelectorAll(\"li\").forEach(t=>{const s=this.extractTextAttributes(t);s&&e.push(new n(s.text,s.attributes))})}parseParagraphText(t,e){const s=t.querySelectorAll(\"span\"),i=new Map;s.forEach(t=>{const e=this.extractTextAttributes(t);if(console.log(e,\"piece parseParagraphText span\",t.textContent,t.style.color),e){const t=i.get(e.text);t?(t.attributes.bold=t.attributes.bold||e.attributes.bold,t.attributes.italic=t.attributes.italic||e.attributes.italic,t.attributes.underline=t.attributes.underline||e.attributes.underline,t.attributes.fontFamily=e.attributes.fontFamily||t.attributes.fontFamily,t.attributes.fontSize=e.attributes.fontSize||t.attributes.fontSize,t.attributes.fontColor=e.attributes.fontColor||t.attributes.fontColor,t.attributes.bgColor=e.attributes.bgColor||t.attributes.bgColor):i.set(e.text,Object.assign({},e))}}),i.forEach(t=>{e.push(new n(t.text,t.attributes))}),console.log(e,\"pieces--parseParagraphText (merged)\")}extractTextAttributes(t){var e;const n=t.textContent||\"\";return n?(console.log(\"extractTextAttributes node\",t,t.style.color),{text:n,attributes:{bold:null!==t.querySelector(\"b, strong\"),italic:null!==t.querySelector(\"i, em\"),underline:null!==t.querySelector(\"u\"),undo:!1,redo:!1,fontFamily:t.style.fontFamily||\"Arial\",fontSize:t.style.fontSize||\"12px\",hyperlink:!!t.querySelector(\"a\")&&(null===(e=t.querySelector(\"a\"))||void 0===e?void 0:e.getAttribute(\"href\")),fontColor:t.style.color,bgColor:t.style.backgroundColor}}):null}rgbToHex(t,e=!1){const n=t.match(/\\d+/g);if(!n||n.length<3)return null;const s=n.map(t=>{const e=parseInt(t);return e<0||e>255?\"00\":e.toString(16).padStart(2,\"0\")}).join(\"\");return e||\"000000\"!==s?`#${s}`:null}}class v{constructor(t,e){this.editor=t,this.document=e,this.isImageHighlighted=!1,this.highLightedImageDataId=\"\",this.currentCursorLocation=0,this.isCrossIconVisible=!1}setEditorView(t){this.editorView=t}insertImage(){const t=document.createElement(\"input\");t.type=\"file\",t.accept=\"image/*\",t.click(),t.onchange=()=>{const e=t.files?t.files[0]:null;if(e){const t=new FileReader;t.onload=t=>{var e;const n=null===(e=t.target)||void 0===e?void 0:e.result;this.insertImageAtCursor(n)},t.readAsDataURL(e)}}}insertImageAtCursor(t){if(!t)return;const[e,n]=l(this.editorView);n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId),this.insertImageAtPosition(t,e,this.document.selectedBlockId)}setCursorPostion(t,e){if(\"number\"!=typeof t||!e)return;const n=document.querySelector(`[data-id=\"${e}\"]`);n&&(\"function\"==typeof n.focus&&n.focus(),setTimeout(()=>{const e=document.createRange(),s=window.getSelection();if(n.firstChild)e.setStart(n.firstChild,t);else{const t=document.createTextNode(\"\");n.appendChild(t),e.setStart(t,0)}e.collapse(!0),null==s||s.removeAllRanges(),null==s||s.addRange(e)},0))}insertImageAtPosition(t,e,s){if(!t||\"number\"!=typeof e||!this.editorView)return;console.log(t,e,s,\"vicky insertImageAtPosition\",this.document.blocks);const i=`data-id-${Date.now()}-${1e3*Math.random()}`,o=`data-id-${Date.now()}-${1e3*Math.random()}`,l=`data-id-${Date.now()}-${1e3*Math.random()}`,a={dataId:i,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"image\",image:t},r={dataId:o,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"text\"};let d=this.document.selectedBlockId;const c=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);let h=[];const{remainingText:p,piece:m}=function(t,e){const n=window.getSelection();if(!n||0===n.rangeCount)return{remainingText:\"\",piece:null};const s=n.getRangeAt(0).startContainer;let i=\"\";const o=e.blocks.filter(e=>{if(e.dataId===t)return e});if(!o[0]||!o[0].pieces)return{remainingText:\"\",piece:null};const l=document.querySelector(`[data-id=\"${t}\"]`),a=e.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let r=[],d=0;if(o[0].pieces.forEach((t,e)=>{i+=t.text,(null==a?void 0:a.innerText)===t.text&&(d=e,r.push(t))}),o[0].pieces.length>1&&o[0].pieces.forEach((t,e)=>{d0){const t=p.split(\" \");let e=[];\"\"!==t[0]||void 0!==t[1]?1===m.length?e=[new n(g,m[0].attributes)]:(e.push(new n(\" \"+t[0]+\" \",m[0].attributes)),m.length>=2&&m.forEach((t,n)=>{0!==n&&e.push(t)})):e=[new n(\" \")],console.log(this.document.selectedBlockId,\"uniqueId3 extractTextFromDataId-vicky\",l),f=function(t,e,n){const s=t.findIndex(t=>t.dataId===e);return-1===s?(console.error(`Block with dataId \"${e}\" not found.`),t):[...t.slice(0,s+1),n,...t.slice(s+1)]}(this.document.blocks,this.document.selectedBlockId||\"\",{dataId:l,class:u.PARAGRAPH_BLOCK_CLASS,pieces:e,type:\"text\"})}this.document.blocks=f,this.document.deleteRange(this.currentCursorLocation,this.currentCursorLocation+p.length,this.document.selectedBlockId,this.document.currentOffset),this.document.blocks.length>c+1?this.document.blocks.forEach((t,e)=>{h.push(t),e===c?h.push(a):d===this.document.selectedBlockId&&(d=t.dataId)}):(h=[...this.document.blocks,a,r],d=r.dataId),this.document.blocks=h,this.editorView.render(),this.document.selectedBlockId=d;const b=document.querySelector(`[data-id=\"${d}\"]`);b.focus(),setTimeout(()=>{const t=document.createRange(),e=window.getSelection();if(b.firstChild)t.setStart(b.firstChild,1);else{const e=document.createTextNode(\"\");b.appendChild(e),t.setStart(e,0)}t.collapse(!0),null==e||e.removeAllRanges(),null==e||e.addRange(t)},0)}createImageFragment(t,e){if(!t||!e)return document.createDocumentFragment();const n=document.createDocumentFragment(),s=document.createElement(\"img\");s.src=t,s.style.maxWidth=\"30%\",s.setAttribute(\"contenteditable\",\"false\"),n.appendChild(s);const i=document.createElement(\"span\");return i.setAttribute(\"contenteditable\",\"false\"),i.appendChild(n),s.addEventListener(\"click\",()=>this.addStyleToImage(e)),i}addStyleToImage(t){if(t&&!this.isCrossIconVisible){const e=document.querySelector(`[data-id=\"${t}\"]`),n=null==e?void 0:e.querySelector(\"span\");n&&(n.style.position=\"relative\");const s=null==e?void 0:e.querySelector(\"img\");s&&(s.style.border=\"2px solid blue\");const i=document.createElement(\"div\");i.className=u.IMAGE_CROSS_CLASS,i.innerHTML=\"x\",Object.assign(i.style,{position:\"absolute\",top:\"0\",left:\"50%\",transform:\"translate(-50%, 0)\",background:\"#fff\",borderRadius:\"50%\",width:\"30px\",height:\"30px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",border:\"3px solid blue\",zIndex:\"999\"}),i.addEventListener(\"mouseover\",()=>i.style.border=\"3px solid black\"),i.addEventListener(\"mouseout\",()=>i.style.border=\"3px solid blue\"),i.addEventListener(\"click\",t=>{t.stopPropagation(),this.deleteImage()}),null==n||n.appendChild(i),this.isImageHighlighted=!0,this.highLightedImageDataId=t,this.isCrossIconVisible=!0}}clearImageStyling(){if(!this.highLightedImageDataId)return;const t=document.querySelector(`[data-id=\"${this.highLightedImageDataId}\"]`);if(t){const e=t.querySelector(\"span\");null==e||e.removeAttribute(\"style\");const n=null==e?void 0:e.querySelector(\"img\");n&&n.removeAttribute(\"style\");const s=null==e?void 0:e.querySelector(`.${u.IMAGE_CROSS_CLASS}`);null==s||s.remove(),this.highLightedImageDataId=\"\"}this.isCrossIconVisible=!1}deleteImage(){this.highLightedImageDataId&&(this.document.blocks=this.document.blocks.filter(t=>t.dataId!==this.highLightedImageDataId),this.highLightedImageDataId=\"\",this.isImageHighlighted=!1,this.clearImageStyling(),this.document.emit(\"documentChanged\",this))}}class x{constructor(t,e){this.snapshotUndoStack=[],this.snapshotRedoStack=[],this.maxSnapshots=5e3,this.document=t,this.editorView=e}createSnapshot(){const[t,e]=l(this.editorView);return{blocks:JSON.parse(JSON.stringify(this.document.blocks)),dataIds:[...this.document.dataIds],selectedBlockId:this.document.selectedBlockId,currentOffset:this.document.currentOffset,selection:this.getCurrentSelection(),cursorPosition:t}}getCurrentSelection(){const t=i(this.document.editorView.container);return t?{start:t.start,end:t.end}:{start:0,end:0}}saveUndoSnapshot(){const t=this.createSnapshot();console.log(\"Saving snapshot:\",t.cursorPosition,\"Stack length:\",this.snapshotUndoStack.length),this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift(),this.snapshotRedoStack=[]}restoreSnapshot(t){this.document.blocks=t.blocks,this.document.dataIds=t.dataIds,this.document._selectedBlockId=t.selectedBlockId,this.document.currentOffset=t.currentOffset;for(let t of this.document.blocks)t.pieces&&Array.isArray(t.pieces)&&(t.pieces=t.pieces.map(t=>new n(t.text,t.attributes)));this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{this.document.setCursorPosition(t.cursorPosition||0)},0)}undo(){if(console.log(\"UNDO - Undo stack length:\",this.snapshotUndoStack.length),console.log(\"UNDO - Redo stack length:\",this.snapshotRedoStack.length),0===this.snapshotUndoStack.length)return;const t=this.createSnapshot();this.snapshotRedoStack.push(t),this.snapshotRedoStack.length>this.maxSnapshots&&this.snapshotRedoStack.shift();const e=this.snapshotUndoStack.pop();e&&(console.log(\"UNDO - Restoring cursor position:\",e.cursorPosition),this.restoreSnapshot(e))}redo(){if(0===this.snapshotRedoStack.length)return;const t=this.createSnapshot();this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift();const e=this.snapshotRedoStack.pop();e&&this.restoreSnapshot(e)}}class I extends e{constructor(t){super(),this.container=t,this.setupButtons()}setupButtons(){this.container.addEventListener(\"mousedown\",t=>{t.preventDefault()}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"popupAction\",t)}})}show(t){const e=t.getRangeAt(0).getBoundingClientRect();if(0===e.width&&0===e.height)return void this.hide();this.container.style.display=\"flex\";const n=this.container.offsetWidth,s=this.container.offsetHeight;let i=e.top+window.scrollY-s-8,o=e.left+window.scrollX+e.width/2-n/2;i{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),e.classList.toggle(\"active\",s)})}}class E{constructor(){this.linkElement=null,this.createPopup()}setCallbacks(t,e){this.onOpenClick=t,this.onUnlinkClick=e}createPopup(){this.popup=document.createElement(\"div\"),this.popup.className=\"link-popup\",this.popup.style.cssText=\"\\n position: absolute;\\n background: #000;\\n border-radius: 4px;\\n padding: 2px;\\n box-shadow: 0 1px 4px rgba(0,0,0,0.5);\\n z-index: 1000;\\n \",this.popup.style.display=\"none\";const t=this.createButton(\"Open\",\"🔗\"),e=this.createButton(\"Unlink\",\"✕\");t.addEventListener(\"click\",()=>this.handleOpenClick()),e.addEventListener(\"click\",()=>this.handleUnlinkClick()),this.popup.appendChild(t),this.popup.appendChild(e),document.body.appendChild(this.popup)}createButton(t,e){const n=document.createElement(\"button\");return n.innerHTML=`${e}`,n.title=t,n.style.cssText=\"\\n background: transparent;\\n color: white;\\n border: none;\\n padding: 4px;\\n margin: 0 1px;\\n border-radius: 2px;\\n cursor: pointer;\\n font-size: 16px;\\n transition: background 0.1s;\\n width: 24px;\\n height: 24px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>{n.style.background=\"#333\"}),n.addEventListener(\"mouseleave\",()=>{n.style.background=\"transparent\"}),n}handleOpenClick(){this.linkElement&&this.onOpenClick&&this.onOpenClick(this.linkElement.href)}handleUnlinkClick(){this.onUnlinkClick&&this.linkElement&&this.onUnlinkClick(this.linkElement)}show(t,e,n){this.linkElement=t;const s=t.getBoundingClientRect();this.popup.style.left=`${s.left+window.scrollX}px`,this.popup.style.top=`${s.bottom+window.scrollY+5}px`,this.popup.style.display=\"flex\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",requestAnimationFrame(()=>{this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"1\",this.popup.style.transform=\"translateY(0)\"})}hide(){\"none\"!==this.popup.style.display&&(this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",setTimeout(()=>{this.popup.style.display=\"none\",this.popup.style.transition=\"\"},100))}isPopup(t){return this.popup.contains(t)}isVisible(){return\"none\"!==this.popup.style.display}}class w{constructor(t,e,n,s){this.isRecording=!1,this.silenceTimer=null,this.document=t,this.editorView=e,this.onStateChange=n,this.insertText=s;const i=window.SpeechRecognition||window.webkitSpeechRecognition;i?(this.recognition=new i,this.recognition.continuous=!0,this.recognition.interimResults=!1,this.recognition.onresult=t=>{const e=t.results[t.results.length-1];if(e.isFinal){const t=e[0].transcript+\" \";this.insertText(t)}},this.recognition.onerror=t=>{console.error(\"Speech recognition error:\",t.error),\"no-speech\"!==t.error&&this.stopRecording()},this.recognition.onend=()=>{this.stopRecording()}):console.warn(\"Speech Recognition API not supported in this browser.\")}toggleRecording(){this.isRecording?this.stopRecording():this.startRecording()}startRecording(){if(this.recognition)try{this.recognition.start(),this.isRecording=!0,this.onStateChange(!0)}catch(t){console.error(\"Failed to start speech recognition:\",t)}}stopRecording(){if(this.recognition&&this.isRecording){try{this.recognition.stop()}catch(t){console.warn(\"Some problem occur during the stop recording . . . \",t)}this.isRecording=!1,this.onStateChange(!1),this.silenceTimer&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}}}class _{constructor(t,e){this.modal=null,this.activeTable=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openTableModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"table_modal\";const e=document.createElement(\"div\");e.className=\"main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Table\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Table\";const i=document.createElement(\"button\");i.className=\"main_modal_close\",i.setAttribute(\"aria-label\",\"Close\"),i.innerHTML=f.close_icon,i.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(i);const o=document.createElement(\"div\");o.className=\"main_modal_body\";const l=document.createElement(\"div\");l.className=\"main_modal_inputs\";const a=document.createElement(\"div\");a.className=\"all_input\";const r=document.createElement(\"label\");r.textContent=\"Rows\",r.className=\"input_label\",r.setAttribute(\"for\",\"modal_input_row\");const d=document.createElement(\"input\");d.type=\"number\",d.id=\"modal_input_row\",d.className=\"modal_inputs\",d.placeholder=\"Enter the row number 1 to 20\",d.min=\"1\",d.max=\"20\",d.value=\"3\",a.appendChild(r),a.appendChild(d);const c=document.createElement(\"div\");c.className=\"all_input\";const h=document.createElement(\"label\");h.textContent=\"Columns\",h.className=\"input_label\",h.setAttribute(\"for\",\"modal_input_col\");const u=document.createElement(\"input\");u.type=\"number\",u.id=\"modal_input_col\",u.className=\"modal_inputs\",u.placeholder=\"Enter the coloumn number 1 to 20\",u.min=\"1\",u.max=\"20\",u.value=\"3\",c.appendChild(h),c.appendChild(u),l.appendChild(a),l.appendChild(c);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Insert Table\",g.type=\"button\",g.onclick=()=>{const t=Math.max(1,Math.min(20,parseInt(d.value)||3)),e=Math.max(1,Math.min(20,parseInt(u.value)||3));this.insertTable(t,e),this.closeModal()},p.appendChild(m),p.appendChild(g),o.appendChild(l),e.appendChild(n),e.appendChild(o),e.appendChild(p),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertTable(t,e){const s=`data-id-${Date.now()}`,i=`data-id-${Date.now()+1}`,o=document.createElement(\"div\");o.className=\"table_wrapper\",o.setAttribute(\"data-type\",\"tbl\"),o.setAttribute(\"data-id\",s),o.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),o.appendChild(l);const r=document.createElement(\"table\");r.className=\"tbl\";const d=document.createElement(\"thead\"),c=document.createElement(\"tr\");for(let t=0;tt.dataId===this.document.selectedBlockId);-1!==t&&(u=t+1)}const p={dataId:s,type:\"table\",element:o},m={dataId:i,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(u,0,p,m),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=o.querySelector(\".tblCell\");t&&(t.focus(),this.setActiveTable(o.querySelector(\"table\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\"table\");e&&this.setActiveTable(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\"table\"))||void 0===n?void 0:n.querySelectorAll(\".tblCell\"))||[]),i=e.indexOf(t);if(s.shiftKey)i>0&&(e[i-1].focus(),this.selectAllInCell(e[i-1]));else if(i{e!==t&&e.classList.remove(\"tbl_active\")}),t.classList.add(\"tbl_active\"),this.activeTable=t}clearTableActive(){this.activeTable&&(this.activeTable.classList.remove(\"tbl_active\"),this.activeTable=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".table_wrapper\"),s=null!==e.closest(\"#table_modal\");n||s||this.clearTableActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".table_wrapper\")||this.clearTableActive()},!0)}}const T=[{label:\"Smileys & People\",items:[{char:\"😀\",name:\"grinning face\",shortcode:\":grinning:\"},{char:\"😃\",name:\"big eyes smile\",shortcode:\":smiley:\"},{char:\"😄\",name:\"smiling eyes grin\",shortcode:\":smile:\"},{char:\"😁\",name:\"beaming grin\",shortcode:\":grin:\"},{char:\"😆\",name:\"squinting laugh\",shortcode:\":laughing:\"},{char:\"😅\",name:\"sweat smile\",shortcode:\":sweat_smile:\"},{char:\"🤣\",name:\"rolling floor laughing\",shortcode:\":rofl:\"},{char:\"😂\",name:\"tears of joy\",shortcode:\":joy:\"},{char:\"🙂\",name:\"slightly smiling\",shortcode:\":slightly_smiling_face:\"},{char:\"😊\",name:\"smiling eyes blush\",shortcode:\":blush:\"}]}],L=\"recent_emojies\";class A{constructor(){this.isOpen=!1,this.popup=this.buildPopup(),this.gridArea=this.popup.querySelector(\".emoji_grid\"),this.searchInput=this.popup.querySelector(\".emoji_serch\"),document.body.appendChild(this.popup),document.addEventListener(\"mousedown\",t=>{if(this.isOpen&&!this.popup.contains(t.target)){t.target.closest('[data-action=\"emoji\"]')||this.close()}})}onSelect(t){this.onSelectCallback=t}open(t){const e=t.getBoundingClientRect();let n=e.left+window.scrollX;n+320>window.innerWidth-8&&(n=window.innerWidth-320-8);const s=e.bottom+window.scrollY+4;this.popup.style.left=`${n}px`,this.popup.style.top=`${s}px`,this.popup.style.display=\"flex\",this.isOpen=!0,this.searchInput.value=\"\",this.renderGrid(\"\")}close(){this.popup.style.display=\"none\",this.isOpen=!1}getIsOpen(){return this.isOpen}buildPopup(){const t=document.createElement(\"div\");t.style.cssText=\"\\n position: absolute;\\n display: none;\\n flex-direction: column;\\n width: 320px;\\n max-height: 380px;\\n background: #ffffff;\\n border: 1px solid #dddddd;\\n border-radius: 10px;\\n box-shadow: 0 6px 24px rgba(0,0,0,0.14);\\n z-index: 9999;\\n overflow: hidden;\\n font-family: system-ui, -apple-system, sans-serif;\\n \";const e=document.createElement(\"div\");e.style.cssText=\"\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 10px 12px;\\n border-bottom: 1px solid #f0f0f0;\\n background: #fafafa;\\n \";const n=document.createElement(\"input\");n.type=\"text\",n.placeholder=\"🔍 Search emojis or :shortcode:\",n.className=\"emoji_serch\",n.style.cssText=\"\\n flex: 1;\\n padding: 6px 10px;\\n border: 1px solid #ccc;\\n border-radius: 6px;\\n font-size: 13px;\\n outline: none;\\n background: #fff;\\n \",n.addEventListener(\"input\",()=>this.renderGrid(n.value.trim())),e.appendChild(n);const s=document.createElement(\"div\");return s.className=\"emoji_grid\",s.style.cssText=\"\\n flex: 1;\\n overflow-y: auto;\\n padding: 10px 12px 12px;\\n \",t.appendChild(e),t.appendChild(s),t}getRecentEmojis(){try{const t=localStorage.getItem(L);return t?JSON.parse(t):[]}catch(t){return[]}}saveRecentEmoji(t){const e=this.getRecentEmojis().filter(e=>e.char!==t.char);e.unshift(t),e.length>24&&(e.length=24);try{localStorage.setItem(L,JSON.stringify(e))}catch(t){console.error(\"Problem occur in saving emojies\",t)}}resolveChar(t){return t.char}renderGrid(t){this.gridArea.innerHTML=\"\";const e=t.toLowerCase().replace(/^:/,\"\").replace(/:$/,\"\"),n=(t,e)=>{if(!e.length)return;const n=document.createElement(\"div\");n.style.marginBottom=\"12px\";const s=document.createElement(\"div\");s.textContent=t,s.style.cssText=\"\\n font-size: 11px;\\n font-weight: 600;\\n text-transform: uppercase;\\n letter-spacing: 0.5px;\\n color: #999;\\n margin-bottom: 6px;\\n \",n.appendChild(s);const i=document.createElement(\"div\");i.style.cssText=\"\\n display: grid;\\n grid-template-columns: repeat(8, 1fr);\\n gap: 2px;\\n \",e.forEach(t=>{const e=this.resolveChar(t),n=document.createElement(\"button\");n.textContent=e,n.title=`${t.name} ${t.shortcode}`,n.style.cssText=\"\\n font-size: 20px;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n border-radius: 5px;\\n padding: 4px;\\n line-height: 1.2;\\n transition: background 0.1s;\\n aspect-ratio: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>n.style.background=\"#f0f0f0\"),n.addEventListener(\"mouseleave\",()=>n.style.background=\"transparent\"),n.addEventListener(\"mousedown\",n=>{var s;n.preventDefault(),this.saveRecentEmoji(t),null===(s=this.onSelectCallback)||void 0===s||s.call(this,e)}),i.appendChild(n)}),n.appendChild(i),this.gridArea.appendChild(n)};if(e){const t=[];T.forEach(n=>{n.items.forEach(n=>{(n.name.includes(e)||n.shortcode.includes(e))&&t.push(n)})}),n(`Results for \"${e}\"`,t)}else{const t=this.getRecentEmojis();n(\"Recently Used\",t),T.forEach(t=>n(t.label,t.items))}if(!this.gridArea.querySelector(\"button\")){const t=document.createElement(\"div\");t.textContent=\"No emojis found\",t.style.cssText=\"text-align: center; color: #aaa; padding: 24px 0; font-size: 13px;\",this.gridArea.appendChild(t)}}}class S{constructor(){this.currentLanguage=\"\",this.onSaveCallback=null,this.onCloseCallback=null,this.container=document.createElement(\"div\"),this.container.className=\"code_editor_modal\",this.container.style.display=\"none\";const t=document.createElement(\"div\");t.className=\"code_editor_modal_content\";const e=document.createElement(\"div\");e.className=\"code_editor_modal_header\";const n=document.createElement(\"span\");n.className=\"code_editor_modal_title\";const s=document.createElement(\"div\");s.className=\"code_editor_modal_actions\",this.copyBtn=document.createElement(\"button\"),this.copyBtn.className=\"copy_editor_btn\",this.copyBtn.innerText=\"Copy\",this.copyBtn.onclick=()=>this.handleCopy(),this.saveBtn=document.createElement(\"button\"),this.saveBtn.className=\"copy_editor_btn copy_editor_btn--primary\",this.saveBtn.innerText=\"Save\",this.saveBtn.onclick=()=>this.handleSave(),this.cancelBtn=document.createElement(\"button\"),this.cancelBtn.className=\"copy_editor_btn copy_editor_btn--cancel\",this.cancelBtn.innerText=\"Cancel\",this.cancelBtn.onclick=()=>this.handleClose(),s.appendChild(this.copyBtn),s.appendChild(this.saveBtn),s.appendChild(this.cancelBtn),e.appendChild(n),e.appendChild(s);const i=document.createElement(\"div\");i.className=\"editor_moal_wrapper\",this.lineNumbers=document.createElement(\"div\"),this.lineNumbers.className=\"editor_moal_line_number\",this.pre=document.createElement(\"pre\"),this.pre.className=\"editor_modal_pre_block\",this.pre.setAttribute(\"aria-hidden\",\"true\"),this.codeHighlight=document.createElement(\"code\"),this.codeHighlight.className=\"modal_editor_highlight\",this.pre.appendChild(this.codeHighlight),this.textArea=document.createElement(\"textarea\"),this.textArea.className=\"modal_editor_text_area\",this.textArea.spellcheck=!1,i.appendChild(this.lineNumbers),i.appendChild(this.pre),i.appendChild(this.textArea),t.appendChild(e),t.appendChild(i),this.container.appendChild(t),document.body.appendChild(this.container),this.attachEventListeners()}attachEventListeners(){this.textArea.addEventListener(\"input\",()=>{this.syncHighlight()}),this.textArea.addEventListener(\"scroll\",()=>{this.pre.scrollTop=this.textArea.scrollTop,this.pre.scrollLeft=this.textArea.scrollLeft,this.lineNumbers.scrollTop=this.textArea.scrollTop}),this.textArea.addEventListener(\"keydown\",t=>{if(\"Tab\"===t.key){t.preventDefault();const e=this.textArea.selectionStart,n=this.textArea.selectionEnd;this.textArea.value=this.textArea.value.substring(0,e)+\" \"+this.textArea.value.substring(n),this.textArea.selectionStart=this.textArea.selectionEnd=e+2,this.syncHighlight()}}),this.container.addEventListener(\"click\",t=>{t.target===this.container&&this.handleClose()})}syncHighlight(){const t=this.textArea.value.replace(/&/g,\"&\").replace(//g,\">\");this.codeHighlight.innerHTML=t+\"\\n\"}handleCopy(){navigator.clipboard.writeText(this.textArea.value).then(()=>{const t=this.copyBtn.innerText;this.copyBtn.innerText=\"Copied!\",setTimeout(()=>this.copyBtn.innerText=t,2e3)})}handleSave(){this.onSaveCallback&&this.onSaveCallback(this.textArea.value),this.close()}handleClose(){this.onCloseCallback&&this.onCloseCallback(),this.close()}open(t,e,n,s){this.currentLanguage=e,this.onSaveCallback=n,this.onCloseCallback=s;this.container.querySelector(\".code_editor_modal_title\").innerText=e||\"text\",this.textArea.value=t,this.syncHighlight(),this.container.style.display=\"flex\",setTimeout(()=>this.textArea.focus(),50)}close(){this.container.style.display=\"none\",this.textArea.value=\"\",this.currentLanguage=\"\"}}class R{constructor(t,e){this.modal=null,this.activeLayout=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openLayoutModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"layout_modal\";const e=document.createElement(\"div\");e.className=\"main_modal layout_main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Layout\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Layout\";const i=document.createElement(\"button\");i.className=\"main_modal_close\",i.setAttribute(\"aria-label\",\"Close\"),i.innerHTML=f.close_icon,i.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(i);const o=document.createElement(\"div\");o.className=\"main_modal_body\";const l=document.createElement(\"label\");l.textContent=\"Preset Splits\",l.className=\"input_label\",l.style.display=\"block\",l.style.marginBottom=\"8px\";const a=document.createElement(\"div\");a.style.display=\"flex\",a.style.flexWrap=\"wrap\",a.style.gap=\"8px\",a.style.marginBottom=\"16px\";[{label:\"Single\",cols:1,widths:[100]},{label:\"50 - 50\",cols:2,widths:[50,50]},{label:\"60 - 40\",cols:2,widths:[60,40]},{label:\"40 - 60\",cols:2,widths:[40,60]},{label:\"33 - 33 - 33\",cols:3,widths:[33.33,33.33,33.33]},{label:\"25 - 50 - 25\",cols:3,widths:[25,50,25]}].forEach(t=>{const e=document.createElement(\"button\");e.className=\"modal_close_button modal_close_button_secondary\",e.style.padding=\"4px 8px\",e.style.fontSize=\"12px\",e.textContent=t.label,e.onclick=()=>{this.insertLayout(t.cols,t.widths),this.closeModal()},a.appendChild(e)});const r=document.createElement(\"label\");r.textContent=\"Or Custom Splits (comma separated %)\",r.className=\"input_label\",r.style.display=\"block\",r.style.marginBottom=\"8px\";const d=document.createElement(\"input\");d.type=\"text\",d.className=\"modal_inputs\",d.placeholder=\"e.g. 20, 60, 20\",d.style.width=\"100%\",o.appendChild(l),o.appendChild(a),o.appendChild(r),o.appendChild(d);const c=document.createElement(\"div\");c.className=\"main_modal_footer\";const h=document.createElement(\"button\");h.className=\"modal_close_button modal_close_button_secondary\",h.textContent=\"Cancel\",h.type=\"button\",h.onclick=()=>this.closeModal();const u=document.createElement(\"button\");u.className=\"modal_close_button modal_close_button_primary\",u.textContent=\"Insert Custom\",u.type=\"button\",u.onclick=()=>{const t=d.value.trim();if(t){const e=t.split(\",\").map(t=>parseFloat(t.trim())).filter(t=>!isNaN(t));if(e.length>0){const t=e.reduce((t,e)=>t+e,0),n=e.map(e=>e/t*100);this.insertLayout(n.length,n)}else this.insertLayout(2,[50,50])}else this.insertLayout(2,[50,50]);this.closeModal()},c.appendChild(h),c.appendChild(u),e.appendChild(n),e.appendChild(o),e.appendChild(c),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertLayout(t,e){const s=`data-id-${Date.now()}`,i=`data-id-${Date.now()+1}`,o=document.createElement(\"div\");o.className=\"layout_wrapper\",o.setAttribute(\"data-type\",\"layout\"),o.setAttribute(\"data-id\",s),o.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),o.appendChild(l);const r=document.createElement(\"div\");r.className=\"layout_container\",r.style.display=\"flex\",r.style.width=\"100%\",r.style.gap=\"10px\";for(let n=0;nt.dataId===this.document.selectedBlockId);-1!==t&&(d=t+1)}const c={dataId:s,type:\"layout\",element:o},h={dataId:i,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(d,0,c,h),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=o.querySelector(\".layout_column\");t&&(t.focus(),this.setActiveLayout(o.querySelector(\".layout_container\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\".layout_container\");e&&this.setActiveLayout(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\".layout_container\"))||void 0===n?void 0:n.querySelectorAll(\".layout_column\"))||[]),i=e.indexOf(t);if(s.shiftKey)i>0&&(e[i-1].focus(),this.selectAllInCell(e[i-1]));else if(i{e!==t&&e.classList.remove(\"layout_active\")}),t.classList.add(\"layout_active\"),this.activeLayout=t}clearLayoutActive(){this.activeLayout&&(this.activeLayout.classList.remove(\"layout_active\"),this.activeLayout=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".layout_wrapper\"),s=null!==e.closest(\"#layout_modal\");n||s||this.clearLayoutActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".layout_wrapper\")||this.clearLayoutActive()},!0)}}class B{constructor(t,e){this.modal=null,this.isKatexLoaded=!1,this.editingBlockId=null,this.editor=t,this.document=e,this.loadKatex()}loadKatex(){if(\"undefined\"!=typeof katex)return void(this.isKatexLoaded=!0);if(document.getElementById(\"katex-js\"))return;const t=document.createElement(\"link\");t.rel=\"stylesheet\",t.href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\",document.head.appendChild(t);const e=document.createElement(\"script\");e.id=\"katex-js\",e.src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\",e.onload=()=>{this.isKatexLoaded=!0},document.head.appendChild(e)}openMathModal(t=\"\",e=null){if(!this.isKatexLoaded)return void alert(\"Math rendering engine is still loading. Please try again in a moment.\");this.editingBlockId=e,this.modal&&(this.modal.remove(),this.modal=null);const n=document.createElement(\"div\");n.className=\"table_modal\",n.id=\"math_modal\";const s=document.createElement(\"div\");s.className=\"main_modal\",s.setAttribute(\"role\",\"dialog\"),s.setAttribute(\"aria-modal\",\"true\"),s.setAttribute(\"aria-label\",\"Insert Equation\"),s.style.width=\"400px\",s.style.height=\"390px\",s.style.maxHeight=\"90vh\",s.style.position=\"fixed\",s.style.top=\"90px\",s.style.right=\"-90px\",s.style.margin=\"0\";const i=document.createElement(\"div\");i.className=\"main_modal_header\";const o=document.createElement(\"h3\");o.className=\"main_modal_title\",o.textContent=this.editingBlockId?\"Edit Equation\":\"Insert Equation\";const l=document.createElement(\"button\");l.className=\"main_modal_close\",l.setAttribute(\"aria-label\",\"Close\"),l.innerHTML=f.close_icon,l.onclick=()=>this.closeModal(),i.appendChild(o),i.appendChild(l);const a=document.createElement(\"div\");a.className=\"main_modal_body\";const r=document.createElement(\"label\");r.textContent=\"LaTeX Input:\",r.className=\"input_label\",r.style.display=\"block\",r.style.marginBottom=\"8px\";const d=document.createElement(\"textarea\");d.className=\"modal_inputs\",d.style.width=\"100%\",d.style.height=\"80px\",d.style.resize=\"vertical\",d.placeholder=\"e.g. c = \\\\pm\\\\sqrt{a^2 + b^2}\",d.value=t;const c=document.createElement(\"label\");c.textContent=\"Preview:\",c.className=\"input_label\",c.style.display=\"block\",c.style.marginTop=\"16px\",c.style.marginBottom=\"8px\";const h=document.createElement(\"div\");h.style.padding=\"10px\",h.style.border=\"1px solid #ccc\",h.style.borderRadius=\"4px\",h.style.minHeight=\"50px\",h.style.display=\"flex\",h.style.alignItems=\"center\",h.style.justifyContent=\"center\",h.style.overflowX=\"auto\";const u=()=>{try{katex.render(d.value||\"Preview\",h,{throwOnError:!1})}catch(t){console.error(\"error\",t),h.textContent=\"Invalid LaTeX\"}};d.addEventListener(\"input\",u),a.appendChild(r),a.appendChild(d),a.appendChild(c),a.appendChild(h);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Apply Equation\",g.type=\"button\",g.onclick=()=>{d.value.trim()&&this.insertEquation(d.value.trim()),this.closeModal()},p.appendChild(m),p.appendChild(g),s.appendChild(i),s.appendChild(a),s.appendChild(p),n.appendChild(s),n.addEventListener(\"click\",t=>{t.target===n&&this.closeModal()}),document.body.appendChild(n),this.modal=n,requestAnimationFrame(()=>{n.classList.add(\"table_modal_visible\"),d.focus(),u()})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null,this.editingBlockId=null},200))}insertEquation(t){const e=katex.renderToString(t,{output:\"mathml\"});if(this.editingBlockId){const n=this.document.blocks.find(t=>t.dataId===this.editingBlockId);if(n&&n.element){const s=n.element.querySelector(\".math_node\");s&&(s.innerHTML=e,s.dataset.latex=t)}return void this.document.emit(\"documentChanged\",this.document)}const s=`data-id-${Date.now()}`,i=document.createElement(\"div\");i.setAttribute(\"data-id\",s),i.setAttribute(\"contenteditable\",\"false\"),i.style.display=\"inline-flex\",i.style.alignItems=\"center\",i.style.gap=\"6px\",i.style.margin=\"4px\",i.style.cursor=\"pointer\",i.style.position=\"relative\";const o=document.createElement(\"button\");o.className=\"table_delete_button\",o.innerHTML=f.close_icon,o.style.cursor=\"pointer\",o.style.opacity=\"0\",o.style.transition=\"opacity 0.2s\",i.onmouseenter=()=>{o.style.opacity=\"1\"},i.onmouseleave=()=>{o.style.opacity=\"0\"},o.onclick=t=>{t.stopPropagation();const e=this.document.blocks.findIndex(t=>t.dataId===s);-1!==e&&(this.document.blocks.splice(e,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))};const l=document.createElement(\"span\");l.className=\"math_node\",l.dataset.latex=t,l.innerHTML=e,i.onclick=e=>{e.stopPropagation(),this.openMathModal(t,s)},i.appendChild(l),i.appendChild(o);let a=this.document.blocks.length;if(this.document.selectedBlockId){const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);-1!==t&&(a=t+1)}const r={dataId:s,type:\"math\",element:i},d={dataId:`data-id-${Date.now()+1}`,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(a,0,r,d),this.document.selectedBlockId=d.dataId,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document)}}class O{constructor(t){this.isSpeaking=!1,this.synth=window.speechSynthesis,this.onStateChange=t}getHindiVoice(){return this.synth.getVoices().find(t=>\"Google हिन्दी\"===t.name||\"hi-IN\"===t.lang)||null}speak(t){if(!t||\"\"===t.trim())return;this.synth.speaking&&this.synth.cancel();const e=new SpeechSynthesisUtterance(t),n=this.getHindiVoice();n&&(e.voice=n,e.lang=\"hi-IN\"),e.onstart=()=>{this.isSpeaking=!0,this.onStateChange(!0)},e.onend=()=>{this.isSpeaking=!1,this.onStateChange(!1)},e.onerror=()=>{this.isSpeaking=!1,this.onStateChange(!1)},this.synth.speak(e)}stop(){this.synth.speaking&&(this.synth.cancel(),this.isSpeaking=!1,this.onStateChange(!1))}toggle(t){this.isSpeaking?this.stop():this.speak(t)}}class N extends e{constructor(t,e){var i,o,l,d,g,b,y,T,L,N,H,M,P,D;super(),this.savedSelection=null,this.debounceTimer=null;const{mainEditorId:z,toolbarId:V,popupToolbarId:F}=C(t,e);this.editorContainer=document.getElementById(z)||null,this.toolbarContainer=document.getElementById(V)||null;const j=document.getElementById(F)||null;if(!this.editorContainer||!this.toolbarContainer||!j)throw new Error(\"Editor element not found or incorrect element type.\");this.document=new s,this.editorView=new c(this.editorContainer,this.document),this.toolbarView=new h(this.toolbarContainer),this.popupToolbarView=new I(j),this.linkPopupView=new E,this.hyperlinkHandler=new p(this.editorContainer,this.editorView,this.document),this.imageHandler=new v(this.editorContainer,this.document),this.undoRedoManager=new x(this.document,this.editorView),this.editorView.setImageHandler(this.imageHandler),this.imageHandler.setEditorView(this.editorView),this.document.setEditorView(this.editorView),this.document.setUndoRedoManager(this.undoRedoManager),this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager),this.linkPopupView.setCallbacks(t=>this.openLink(t),t=>this.unlinkText(t)),this.insertTableHandler=new _(this.editorView.container,this.document),this.insertLayoutHandler=new R(this.editorView.container,this.document),this.insertMathHandler=new B(this.editorView.container,this.document),this.textToSpeechHandler=new O(t=>{const e=document.getElementById(\"textToSpeech\");e&&(e.innerHTML=t?f.speaker_off:f.speaker_on,e.dataset.tooltip=t?\"stop Reading\":\"start Reading\")}),this.speechToTextHandler=new w(this.document,this.editorView,t=>{const e=document.getElementById(\"speechToText\");e&&(e.innerHTML=t?f.stop_microphone:f.start_microphone,e.dataset.tooltip=t?\"stop\":\"start\")},t=>{const[e,n]=this.getSelectionRange();n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId,this.document.currentOffset);let s=e;this.document.insertAt(t,Object.assign({},this.currentAttributes),s,this.document.selectedBlockId,0,\"\",\"batch\"),s+=t.length,this.setCursorPosition(s)});const U=document.getElementById(\"speechToText\");U&&(U.innerHTML=\"\",U.insertAdjacentHTML(\"afterbegin\",f.start_microphone),U.dataset.tooltip=\"start\");const q=document.getElementById(\"textToSpeech\");q&&(q.innerHTML=\"\",q.insertAdjacentHTML(\"afterbegin\",f.speaker_on),q.dataset.tooltip=\"start Reading\"),this.emojiPickerView=new A,this.codeEditorModal=new S,this.emojiPickerView.onSelect(t=>{var e,n,s,i;const o=null!==(n=null===(e=this.savedSelection)||void 0===e?void 0:e.start)&&void 0!==n?n:0,l=null!==(i=null===(s=this.savedSelection)||void 0===s?void 0:s.end)&&void 0!==i?i:o;l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset,!1),this.document.insertAt(t,Object.assign({},this.currentAttributes),o,this.document.selectedBlockId,0,\"\",\"batch\");const a=o+t.length;this.savedSelection={start:a,end:a},this.setCursorPosition(a)}),this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,undo:!1,redo:!1,hyperlink:!1},this.manualOverride=!1,this.lastPiece=null,this.toolbarView.on(\"toolbarAction\",(t,e=[])=>this.handleToolbarAction(t,e)),this.popupToolbarView.on(\"popupAction\",t=>this.handleToolbarAction(t)),this.document.on(\"documentChanged\",()=>{if(0===this.document.blocks.length||1===this.document.blocks.length&&this.document.blocks[0].pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)){const t=document.getElementById(\"loadHtmlButton\");t&&(t.selectedIndex=0)}this.editorView.render()}),this.document.on(\"documentChanged\",()=>{var t;const e=this.document.getHtmlContent();this.emit(\"contentChange\",{html:e,text:(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"})}),this.editorContainer.addEventListener(\"dblclick\",t=>{const e=t.target.closest(\".code_block_wrapper\");if(e){t.preventDefault();const n=e.getAttribute(\"data-id\");if(!n)return;const s=this.document.blocks.find(t=>t.dataId===n);s&&\"code\"===s.type&&this.codeEditorModal.open(s.code||\"\",s.language||\"text\",t=>{s.code=t,this.document.emit(\"documentChanged\",this.document)},()=>{var t;null===(t=this.editorContainer)||void 0===t||t.focus()})}}),this.editorContainer.addEventListener(\"keydown\",t=>{this.syncCurrentAttributesWithCursor(),this.handleKeydown(t)}),this.editorContainer.addEventListener(\"keyup\",()=>this.syncCurrentAttributesWithCursor()),this.editorContainer.addEventListener(\"blur\",()=>{this.hyperlinkHandler.hideHyperlinkViewButton()}),document.addEventListener(\"mouseup\",()=>{this.syncCurrentAttributesWithCursor();const t=this.document.getAllSelectedDataIds();console.log(t,\"dataId lntgerr\")}),document.addEventListener(\"selectionchange\",()=>{const t=window.getSelection();t&&!t.isCollapsed||(this.document.dataIds=[],this.document.selectAll=!1)}),null===(i=document.getElementById(\"fontColor\"))||void 0===i||i.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorWrapper\"),n=document.getElementById(\"fontColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(o=document.getElementById(\"fontColorPicker\"))||void 0===o||o.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),i=document.getElementById(\"fontColorIndicator\");i&&(i.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.applyFontColor(i,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyFontColor(n,s,e)},300))}),null===(l=document.getElementById(\"colorResetFont\"))||void 0===l||l.addEventListener(\"click\",()=>{const t=document.getElementById(\"fontColorPicker\"),e=document.getElementById(\"fontColorIndicator\");t&&(t.value=\"#000000\",e&&(e.style.backgroundColor=\"#000000\"),t.dispatchEvent(new Event(\"input\")))}),document.addEventListener(\"click\",t=>{var e;const n=t.target,s=document.getElementById(\"colorWrapper\"),i=document.getElementById(\"colorBgWrapper\"),o=document.getElementById(\"fontColor\"),l=document.getElementById(\"bgColor\");!s||n.closest(\"#colorWrapper\")||n===o||(null==o?void 0:o.contains(n))||(s.style.display=\"none\"),!i||n.closest(\"#colorBgWrapper\")||n===l||(null==l?void 0:l.contains(n))||(i.style.display=\"none\"),(null===(e=this.editorContainer)||void 0===e?void 0:e.contains(n))||n.closest(\".hyperlink-popup\")||this.hyperlinkHandler.hideHyperlinkViewButton()}),null===(d=document.getElementById(\"bgColor\"))||void 0===d||d.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorBgWrapper\"),n=document.getElementById(\"bgColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(g=document.getElementById(\"bgColorPicker\"))||void 0===g||g.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),i=document.getElementById(\"bgColorIndicator\");i&&(i.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.applyBgColor(i,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyBgColor(n,s,e)},300))}),null===(b=document.getElementById(\"colorResetBG\"))||void 0===b||b.addEventListener(\"click\",()=>{const t=document.getElementById(\"bgColorPicker\"),e=document.getElementById(\"bgColorIndicator\");t&&(t.value=\"#ffffff\",e&&(e.style.backgroundColor=\"#ffffff\"),t.dispatchEvent(new Event(\"input\")))}),null===(y=document.getElementById(\"getHtmlButton\"))||void 0===y||y.addEventListener(\"click\",t=>{const e=this.document.getHtmlContent(!0);console.log(\"Editor HTML Content:\",e),this.htmlToJsonParser=new k(e);const n=this.htmlToJsonParser.parse();console.log(\"htmltoJson\",JSON.stringify(n,null,2),n),this.showAcknowledgement(\"HTML copied to clipboard\",2e3)}),null===(T=document.getElementById(\"loadHtmlButton\"))||void 0===T||T.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target,n=e.options[e.selectedIndex].dataset.html||u.TEST_HTML_CODE;this.htmlToJsonParser=new k(n),console.log(this.htmlToJsonParser,\"this.htmlToJsonParser\");const s=this.htmlToJsonParser.parse();this.document.blocks=s,s.length>0&&(this.document.dataIds[0]=s[0].dataId,this.document.selectedBlockId=s[0].dataId),this.document.emit(\"documentChanged\",this);const[i]=this.getSelectionRange();this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let n=i-e;t.fontSize&&this.document.setFontSize(n,e,t.fontSize)}}),console.log(\"blocks\",this.document.blocks,this.document.dataIds,this.document.currentOffset),console.log(\"htmltoJson\",JSON.stringify(s,null,2),s)}),null===(L=document.getElementById(\"fontFamily\"))||void 0===L||L.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.setFontFamily(i,s,e)}}):this.document.setFontFamily(n,s,e)}),null===(N=document.getElementById(\"fontSize\"))||void 0===N||N.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let i=n-s;this.document.setFontSize(i,s,e)}}):this.document.setFontSize(n,s,e)}),null===(H=document.getElementById(\"heading\"))||void 0===H||H.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value||null;if(this.document.dataIds.length>1)this.document.toggleHeadingForMultipleBlocks(this.document.dataIds,e);else{const t=this.document.selectedBlockId||this.document.dataIds[0];t&&this.document.toggleHeading(t,e)}}),null===(M=document.getElementById(\"alignLeft\"))||void 0===M||M.addEventListener(\"click\",()=>{console.log(\"alignment alignLeft\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"left\",t))}),null===(P=document.getElementById(\"alignCenter\"))||void 0===P||P.addEventListener(\"click\",()=>{console.log(\"alignment alignCenter\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"center\",t))}),null===(D=document.getElementById(\"alignRight\"))||void 0===D||D.addEventListener(\"click\",()=>{console.log(\"alignment alignRight\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"right\",t))}),this.editorContainer.addEventListener(\"keydown\",t=>{if((t.ctrlKey||t.metaKey)&&!t.altKey){const e=t.key.toLowerCase();if([\"b\",\"i\",\"u\",\"h\"].includes(e)){t.preventDefault();let n=\"b\";switch(e){case\"b\":n=\"bold\";break;case\"i\":n=\"italic\";break;case\"u\":n=\"underline\";break;case\"h\":n=\"hyperlink\"}this.handleToolbarAction(n)}if(\"z\"===e?(t.preventDefault(),this.undoRedoManager.undo()):\"y\"===e&&(t.preventDefault(),this.undoRedoManager.redo()),\"a\"===e){const t=this.document.handleCtrlASelection();this.document.selectAll=!0,console.log(\"Selected text is inside element with data-id:\",t)}\"l\"===t.key?(t.preventDefault(),this.document.setAlignment(\"left\",this.document.selectedBlockId)):\"e\"===t.key?(t.preventDefault(),this.document.setAlignment(\"center\",this.document.selectedBlockId)):\"r\"===t.key&&(t.preventDefault(),this.document.setAlignment(\"right\",this.document.selectedBlockId))}}),document.addEventListener(\"selectionchange\",this.handleSelectionChange.bind(this)),this.editorContainer.addEventListener(\"click\",t=>{const e=t.target;if(\"A\"===e.tagName||e.closest(\"a\")){t.preventDefault(),t.stopPropagation();const n=\"A\"===e.tagName?e:e.closest(\"a\");this.showLinkPopup(n,t.clientX,t.clientY)}else this.hideLinkPopup()}),document.addEventListener(\"click\",t=>{this.linkPopupView.isPopup(t.target)||this.hideLinkPopup()}),this.document.emit(\"documentChanged\",this.document),this.editorContainer.addEventListener(\"paste\",t=>{var e,s;this.undoRedoManager.saveUndoSnapshot(),t.preventDefault();const i=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"text/html\"),[o,l]=this.getSelectionRange();l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset);let d=[];if(i)d=m(i);else{const e=function(t){const e=[];let n,s=0;for(;null!==(n=a.exec(t));){const i=n.index;let o=n[0],l=\"\";const a=o.match(/[.,!?;:)\\]\\}\"']+$/);if(a&&(l=a[0],o=o.slice(0,-l.length)),r(t,i))continue;i>s&&e.push({text:t.substring(s,i),isUrl:!1});let d=o;d.startsWith(\"http\")||(d=\"https://\"+d),e.push({text:o,isUrl:!0,url:d}),l&&e.push({text:l,isUrl:!1}),s=i+n[0].length}return st.isUrl&&t.url?new n(t.text,Object.assign(Object.assign({},this.currentAttributes),{hyperlink:t.url})):new n(t.text,Object.assign({},this.currentAttributes)))}let c=o;for(const t of d)this.document.insertAt(t.text,Object.assign({},t.attributes),c,this.document.selectedBlockId,0,\"\",\"batch\"),c+=t.text.length;this.setCursorPosition(c)}),this.editorContainer.addEventListener(\"dragover\",t=>{t.preventDefault()}),this.editorContainer.addEventListener(\"drop\",t=>{var e,s;t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const i=null===(e=t.dataTransfer)||void 0===e?void 0:e.getData(\"text/html\"),[o,l]=this.getSelectionRange();l>o&&this.document.deleteRange(o,l,this.document.selectedBlockId,this.document.currentOffset);let a=[];if(i)a=m(i);else{const e=(null===(s=t.dataTransfer)||void 0===s?void 0:s.getData(\"text/plain\"))||\"\";a=[new n(e,Object.assign({},this.currentAttributes))]}let r=o;for(const t of a)this.document.insertAt(t.text,Object.assign({},t.attributes),r,this.document.selectedBlockId,0,\"\",\"batch\"),r+=t.text.length;this.setCursorPosition(r)})}getSelectionRange(){const t=i(this.editorView.container);return t?[t.start,t.end]:[0,0]}applyFontColor(t){const e=window.getSelection();if(!e||0===e.rangeCount)return;e.getRangeAt(0).toString()}handleToolbarAction(t,e=[]){const[n,s]=this.getSelectionRange();switch(t){case\"orderedList\":if(this.document.dataIds.length>1)this.document.toggleOrderedListForMultipleBlocks(this.document.dataIds);else{const t=this.document.selectedBlockId||this.document.dataIds[0];this.document.toggleOrderedList(t)}this.document.updateOrderedListNumbers();break;case\"unorderedList\":this.document.dataIds.forEach(t=>{this.document.toggleUnorderedList(t)});break;case\"image\":this.imageHandler.insertImage();break;case\"speechToText\":this.speechToTextHandler.toggleRecording();break;case\"insert_table\":this.insertTableHandler.openTableModal();break;case\"insert_layout\":this.insertLayoutHandler.openLayoutModal();break;case\"insert_math\":this.insertMathHandler.openMathModal();break;case\"emoji\":this.savedSelection=i(this.editorView.container);const e=document.querySelector('[data-action=\"emoji\"]');e.addEventListener(\"mousedown\",t=>{t.preventDefault()}),e&&this.emojiPickerView.open(e);break;case\"textToSpeech\":const o=this.getTextForSpeech();if(!o)return void console.warn(\"Nothing to read\");this.textToSpeechHandler.toggle(o);break;default:if(n1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleBoldRange(s,e)}}):this.document.toggleBoldRange(n,s);break;case\"italic\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleItalicRange(s,e)}}):this.document.toggleItalicRange(n,s);break;case\"underline\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleUnderlineRange(s,e)}}):this.document.toggleUnderlineRange(n,s);break;case\"strikethrough\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleStrikethroughRange(s,e)}}):this.document.toggleStrikethroughRange(n,s);break;case\"subscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSubscriptRange(s,e)}}):this.document.toggleSubscriptRange(n,s);break;case\"superscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSuperscriptRange(s,e)}}):this.document.toggleSuperscriptRange(n,s);break;case\"hyperlink\":this.hyperlinkHandler.hanldeHyperlinkClick(n,s,this.document.currentOffset,this.document.selectedBlockId,this.document.blocks)}else this.currentAttributes[t]=!this.currentAttributes[t],this.manualOverride=!0}this.toolbarView.updateActiveStates(this.currentAttributes)}handleSelectionChange(){var t,e,n;const s=window.getSelection();if(!s||0===s.rangeCount||!(null===(t=this.editorContainer)||void 0===t?void 0:t.contains(s.anchorNode)))return this.hyperlinkHandler.hideHyperlinkViewButton(),void this.popupToolbarView.hide();const i=(null===(e=s.anchorNode)||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE?s.anchorNode.parentElement:s.anchorNode;if(null==i?void 0:i.closest(\".tblCell\"))return void this.popupToolbarView.hide();const o=document.getElementById(\"textToSpeech\");s&&!s.isCollapsed&&s.toString().trim()?null==o||o.classList.remove(\"hidden\"):null==o||o.classList.add(\"hidden\");const[l]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=l,s.isCollapsed?(this.document.dataIds=[],this.document.selectAll=!1,this.popupToolbarView.hide()):(this.document.getAllSelectedDataIds(),this.document.dataIds.length===this.document.blocks.length&&this.document.blocks.length>0&&(this.document.selectAll=!0),this.popupToolbarView.show(s)),!s||0===s.rangeCount)return;s&&!0===s.isCollapsed&&(this.document.dataIds=[],this.document.selectAll=!1);const a=s.getRangeAt(0),r=(null===(n=a.startContainer.parentElement)||void 0===n?void 0:n.closest(\"[data-id]\"))||a.startContainer;if(r instanceof HTMLElement){const t=r.getAttribute(\"data-id\")||(a.startContainer instanceof HTMLElement?a.startContainer.getAttribute(\"data-id\"):null);if(t){const e=this.document.blocks.find(e=>e.dataId===t);e&&\"table\"!==e.type&&(this.document.selectedBlockId=t)}}this.syncCurrentAttributesWithCursor()}handleKeydown(t){var e,s;const[i,o]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=i,(\"Enter\"===t.key||\" \"===t.key)&&this.document.selectedBlockId){const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1!==e){const s=this.document.blocks[e];if(\"text\"===s.type&&Array.isArray(s.pieces)){const i=s.pieces.map(t=>t.text).join(\"\").replace(/\\u200B/g,\"\").trim().match(/^```([a-zA-Z0-9_\\-\\+]*)$/);if(i){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot(),s.type=\"code\",s.language=i[1]||\"text\",s.code=\"\",s.pieces=[],s.class=\"code_block_wrapper\";const o=`data-id-${Date.now()}`;return this.document.blocks.splice(e+1,0,{dataId:o,class:\"paragraph-block\",pieces:[new n(\"​\",{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1})],type:\"text\"}),this.document.selectedBlockId=o,this.document.emit(\"documentChanged\",this.document),void setTimeout(()=>{this.setCursorPosition(this.document.currentOffset+1,o)},0)}}}}if(\"Enter\"===t.key){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const s=`data-id-${Date.now()}`,l=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId),a=this.document.blocks[l],r=(null===(e=null==a?void 0:a.pieces)||void 0===e?void 0:e.length)>0?a.pieces[a.pieces.length-1]:null,d=r?Object.assign({},r.attributes):{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1};if(a&&\"image\"===a.type)this.document.blocks.splice(l+1,0,{dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",d)],type:\"text\"}),this.document.emit(\"documentChanged\",this),this.imageHandler.setCursorPostion(1,s);else if(!a||\"ol\"!==a.listType&&\"ul\"!==a.listType&&\"li\"!==a.listType){const t=this.getCurrentCursorBlock(),e=null==t?void 0:t.toString();if(e&&a&&\"text\"===a.type){const t=i-this.document.currentOffset,o=[],l=[];let r=0;for(const e of a.pieces){const s=r+e.text.length;if(s<=t)o.push(e.clone());else if(r>=t)l.push(e.clone());else{const s=t-r,i=e.text.slice(0,s),a=e.text.slice(s);i&&o.push(new n(i,Object.assign({},e.attributes))),a&&l.push(new n(a,Object.assign({},e.attributes)))}r=s}a.pieces=o.length>0?o:[new n(\"​\",d)];const c=l.length>0?l:[new n(\"​\",d)],h=this.addBlockAfter(this.document.blocks,e,{dataId:s,class:\"paragraph-block\",pieces:c,type:\"text\"});this.document.blocks=h}else this.document.blocks.push({dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",d)],type:\"text\"})}else{let t=[new n(\"​\",d)];const e=i-this.document.currentOffset;if(\"text\"===a.type&&a.pieces){const s=[],i=[];let o=0;for(const t of a.pieces){const l=o+t.text.length;if(l<=e)s.push(t.clone());else if(o>=e)i.push(t.clone());else{const l=e-o,a=t.text.slice(0,l),r=t.text.slice(l);a&&s.push(new n(a,Object.assign({},t.attributes))),r&&i.push(new n(r,Object.assign({},t.attributes)))}o=l}a.pieces=s.length>0?s:[new n(\"​\",d)],t=i.length>0?i:[new n(\"​\",d)]}let o={dataId:s,class:\"paragraph-block\",pieces:t,type:\"text\"},r=\"\";if(\"ol\"===a.listType?(o.listType=\"li\",o.listStart=a.listStart+1,o.parentId=a.dataId,r=a.dataId):\"li\"===a.listType?(o.listType=\"li\",o.listStart=a.listStart+1,o.parentId=a.parentId,r=a.parentId):\"ul\"===a.listType&&(o.listType=\"ul\",o.parentId=a.parentId||a.dataId),this.document.blocks.splice(l+1,0,o),\"ol\"===a.listType||\"li\"===a.listType)for(let t=l+2;tt.dataId===this.imageHandler.highLightedImageDataId);return this.imageHandler.deleteImage(),void this.imageHandler.setCursorPostion(1,this.document.blocks[t-1].dataId)}const e=window.getSelection();console.log(e,\"selection lntgerr\");if((this.document.selectAll||this.document.dataIds.length===this.document.blocks.length&&this.document.dataIds.length>0||this.document.dataIds.length>1)&&!(null===(s=window.getSelection())||void 0===s?void 0:s.isCollapsed)){this.undoRedoManager.saveUndoSnapshot();const t=this.document.dataIds[0],e=this.document.blocks.findIndex(e=>e.dataId===t);this.document.deleteBlocks();let s=null,i=0;if(0===this.document.blocks.length){const t=`data-id-${Date.now()}`;this.document.blocks.push({dataId:t,class:\"paragraph-block\",pieces:[new n(\" \")],type:\"text\"}),s=t,i=0,this.editorView.render()}else if(et+e.text.length,0)}return void this.setCursorPosition(i,s)}if(o>i){this.undoRedoManager.saveUndoSnapshot();const t=Math.min(this.document.currentOffset,i);this.document.deleteRange(i,o,this.document.selectedBlockId,t,!0),this.setCursorPosition(i-1);const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);console.log(e,\"index lntgerr\");if(null===document.querySelector(`[data-id=\"${this.document.selectedBlockId}\"]`)){let t=0;console.log(t,\" listStart lntgerr\");const e=this.document.blocks.map((e,n)=>(void 0===(null==e?void 0:e.listType)&&null===(null==e?void 0:e.listType)||(\"ol\"===(null==e?void 0:e.listType)?(t=1,e.listStart=1):\"li\"===(null==e?void 0:e.listType)&&(t+=1,e.listStart=t)),e));console.log(e,\"blocks lntgerr\"),this.document.emit(\"documentChanged\",this)}}else if(i===o&&i>0){const t=this.editorView.container.textContent||\"\";let e=i-1;if(i>=2){const n=t.charCodeAt(i-1),s=t.charCodeAt(i-2);n>=56320&&n<=57343&&s>=55296&&s<=56319&&(e=i-2)}this.document.deleteRange(e,i,this.document.selectedBlockId,this.document.currentOffset,!0),this.setCursorPosition(e)}}else if(1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey){if(\"Delete\"===t.key){if(t.preventDefault(),i===o){if(this.undoRedoManager.saveUndoSnapshot(),o>i){const t=Math.min(this.document.currentOffset,i);this.document.deleteRange(i,o,this.document.selectedBlockId,t),this.setCursorPosition(i)}else if(o>i)return this.undoRedoManager.saveUndoSnapshot(),void this.document.deleteRange(i,o,this.document.selectedBlockId);const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1===t)return;const e=this.document.blocks[t].pieces.reduce((t,e)=>t+e.text.length,0);i-this.document.currentOffseti&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(i,o,this.document.selectedBlockId),this.setCursorPosition(i))}this.hyperlinkHandler.hideHyperlinkViewButton()}}else t.preventDefault(),o>i&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(i,o,this.document.selectedBlockId,this.document.currentOffset,!1)),console.log(\"insertat\",t.key,this.currentAttributes,i,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.document.insertAt(t.key,this.currentAttributes,i,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.setCursorPosition(i+1)}extractTextFromDataId(t){const e=window.getSelection();if(console.log(\"selection::\",e),!e||0===e.rangeCount)return{remainingText:\"\",piece:null};const n=e.getRangeAt(0).startContainer;let s=\"\";console.log(0,\"count lntgerr\");const i=this.document.blocks.filter(e=>{if(e.dataId===t)return e}),o=document.querySelector(`[data-id=\"${t}\"]`),l=this.document.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let a=[],r=0;if(i[0].pieces.forEach((t,e)=>{s+=t.text,(null==l?void 0:l.innerText)===t.text&&(r=e,a.push(t))}),i[0].pieces.length>1&&i[0].pieces.forEach((t,e)=>{rt.dataId===e);if(-1===s)return console.error(`Block with dataId \"${e}\" not found.`),t;return[...t.slice(0,s+1),n,...t.slice(s+1)]}syncCurrentAttributesWithCursor(){var t,e;const n=window.getSelection();if(n&&n.rangeCount>0){const e=(null===(t=n.anchorNode)||void 0===t?void 0:t.nodeType)===Node.TEXT_NODE?n.anchorNode.parentElement:n.anchorNode;if(null==e?void 0:e.closest(\".tblCell\"))return}const[s,i]=this.getSelectionRange();console.log(\"log1\",{start:s,end:i});const o=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(\"image\"===(null===(e=this.document.blocks[o])||void 0===e?void 0:e.type)?this.imageHandler.addStyleToImage(this.document.selectedBlockId||\"\"):this.imageHandler.isImageHighlighted&&this.imageHandler.clearImageStyling(),s===i){const t=this.document.findPieceAtOffset(s,this.document.selectedBlockId);t?(t!==this.lastPiece&&(this.manualOverride=!1,this.lastPiece=t),this.manualOverride||(this.currentAttributes={bold:t.attributes.bold,italic:t.attributes.italic,underline:t.attributes.underline,strikethrough:t.attributes.strikethrough||!1,subscript:t.attributes.subscript||!1,superscript:t.attributes.superscript||!1,hyperlink:t.attributes.hyperlink||!1,fontFamily:t.attributes.fontFamily,fontSize:t.attributes.fontSize,fontColor:t.attributes.fontColor,bgColor:t.attributes.bgColor},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.hyperlinkHandler.hideHyperlinkViewButton()):(this.hyperlinkHandler.hideHyperlinkViewButton(),this.manualOverride||(this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.lastPiece=null)}else{this.hyperlinkHandler.hideHyperlinkViewButton();const t=this.document.isRangeEntirelyAttribute(s,i,\"bold\"),e=this.document.isRangeEntirelyAttribute(s,i,\"italic\"),n=this.document.isRangeEntirelyAttribute(s,i,\"underline\"),o=this.document.isRangeEntirelyAttribute(s,i,\"strikethrough\"),l=this.document.isRangeEntirelyAttribute(s,i,\"subscript\"),a=this.document.isRangeEntirelyAttribute(s,i,\"superscript\");this.currentAttributes={bold:t,italic:e,underline:n,strikethrough:o,subscript:l,superscript:a,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)}const l=document.getElementById(\"heading\");if(l)if(this.document.selectedBlockId){const t=this.document.blocks.find(t=>t.dataId===this.document.selectedBlockId);t&&t.heading?l.value=t.heading:l.value=\"\"}else l.value=\"\"}setCursorPosition(t,e=\"\"){if(\"\"===e)this.editorView.container.focus();else{const t=document.querySelector('[data-id=\"'+e+'\"]');t&&t.focus()}const n=window.getSelection();if(!n)return;const s=document.createRange();let i=0;const o=[this.editorView.container];let l;for(;l=o.pop();)if(3===l.nodeType){const e=l,n=i+e.length;if(t>=i&&t<=n){s.setStart(e,t-i),s.collapse(!0);break}i=n}else if(\"BR\"===l.tagName){if(t===i){s.setStartBefore(l),s.collapse(!0);break}i++}else{const t=l;let e=t.childNodes.length;for(;e--;)o.push(t.childNodes[e])}n.removeAllRanges(),n.addRange(s)}showAcknowledgement(t,e=2e3){const n=document.getElementById(u.TOAST_ID);n&&n.remove();const s=document.createElement(\"div\");s.id=u.TOAST_ID,s.className=\"ti-toast\",s.textContent=t||u.TOAST_DEFAULT_MESSAGE,document.body.appendChild(s),s.offsetHeight,s.classList.add(u.TOAST_SHOW_CLASS),setTimeout(()=>{s.classList.remove(u.TOAST_SHOW_CLASS),setTimeout(()=>s.remove(),200)},e||u.TOAST_DEFAULT_DURATION_MS)}showLinkPopup(t,e,n){this.linkPopupView.show(t,e,n)}hideLinkPopup(){this.linkPopupView.hide()}openLink(t){window.open(t,\"_blank\"),this.hideLinkPopup()}unlinkText(t){this.undoRedoManager.saveUndoSnapshot();const e=t.textContent||\"\",n=(this.editorView.container.textContent||\"\").indexOf(e);-1!==n&&(this.document.formatAttribute(n,n+e.length,\"hyperlink\",!1),this.editorView.render()),this.hideLinkPopup()}getTextForSpeech(){var t,e;const n=window.getSelection();if(n&&!n.isCollapsed){const t=n.toString().trim();if(t)return t}return(null===(e=null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||void 0===e?void 0:e.trim())||\"\"}onContentChange(t){this.on(\"contentChange\",t)}getContent(){return this.document.getHtmlContent()||\"\"}getTextContent(){var t;return(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"}}window.TextIgniter=N,t.TextIgniter=N});\n","import { TextIgniter } from '@mindfiredigital/textigniter';\r\n// import '@mindfiredigital/textigniter/dist/styles/text-igniter.css';\r\n\r\nexport class TextIgniterComponent extends HTMLElement {\r\n private textIgniter!: TextIgniter;\r\n private initialized = false;\r\n private config = {};\r\n private template = `
`;\r\n\r\n constructor() {\r\n super();\r\n if (!this.firstElementChild) {\r\n this.innerHTML = this.template;\r\n }\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['config'];\r\n }\r\n\r\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\r\n if (name === 'config' && newValue !== oldValue) {\r\n try {\r\n console.log(newValue);\r\n const parsedConfig = JSON.parse(newValue);\r\n this.config = parsedConfig;\r\n this.initializeEditor(); // Reinitialize Core when config changes\r\n } catch (e) {\r\n console.error('Failed to parse config: ', e);\r\n }\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n this.initializeEditor();\r\n }\r\n\r\n private initializeEditor() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n\r\n const editorContainer = this.querySelector('#editor-container')?.id;\r\n if (!editorContainer) {\r\n console.error('Editor element not found inside the DOM.');\r\n return;\r\n }\r\n\r\n try {\r\n this.initialized = true;\r\n this.textIgniter = new TextIgniter(\r\n editorContainer as any,\r\n this.config as any\r\n );\r\n\r\n // Subscribe to content changes and dispatch custom event\r\n this.textIgniter.onContentChange(data => {\r\n const event = new CustomEvent('content-change', {\r\n detail: data,\r\n bubbles: true,\r\n composed: true,\r\n });\r\n this.dispatchEvent(event);\r\n });\r\n } catch (error) {\r\n console.error('Failed to initialize TextIgniter:', error);\r\n this.initialized = false;\r\n }\r\n }\r\n}\r\n\r\nif (!customElements.get('text-igniter')) {\r\n customElements.define('text-igniter', TextIgniterComponent);\r\n}\r\n"],"mappings":"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","names":["t","e","n","s","i","o","l","a","r","d","c","h","u","p","m","g","C","k","v","x","I","E","w","_","f","b","y","T","L","N"]} \ No newline at end of file +{"version":3,"sources":["../../core/dist/index.js","../src/component/TextIgniterComponent.ts","#style-inject:#style-inject","../../core/dist/styles/text-igniter.css"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).TextIgniter={})}(this,function(t){\"use strict\";class e{constructor(){this.events={}}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}emit(t,e){this.events[t]&&this.events[t].forEach(t=>t(e))}}class n{constructor(t,e={}){this.text=t;const n=document.getElementById(\"fontFamily\"),s=document.getElementById(\"fontSize\");let o=\"Arial\",i=\"16px\",l=document.getElementById(\"fontColorPicker\"),a=document.getElementById(\"bgColorPicker\");n&&(o=n.value),s&&(i=s.value);const d=e.fontColor||(l?l.value:\"#000000\"),r=e.bgColor||(a?a.value:\"#ffffff\");this.attributes={bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,subscript:e.subscript||!1,superscript:e.superscript||!1,undo:e.undo||!1,redo:e.redo||!1,fontFamily:e.fontFamily||o,fontSize:e.fontSize||i,hyperlink:e.hyperlink||!1,fontColor:d,bgColor:r}}isBold(){return this.attributes.bold}setBold(t){this.attributes.bold=t}isItalic(){return this.attributes.italic}isUndo(){return this.attributes.undo}isRedo(){return this.attributes.redo}setItalic(t){this.attributes.italic=t}isUnderline(){return this.attributes.underline}setUnderline(t){this.attributes.underline=t}isStrikethrough(){return this.attributes.strikethrough||!1}setStrikethrough(t){this.attributes.strikethrough=t}setUndo(t){this.attributes.undo=t}setRedo(t){this.attributes.redo=t}clone(){return new n(this.text,Object.assign({},this.attributes))}hasSameAttributes(t){return this.attributes.bold===t.attributes.bold&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&(this.attributes.strikethrough||!1)===(t.attributes.strikethrough||!1)&&(this.attributes.subscript||!1)===(t.attributes.subscript||!1)&&(this.attributes.superscript||!1)===(t.attributes.superscript||!1)&&this.attributes.undo===t.attributes.undo&&this.attributes.redo===t.attributes.redo&&this.attributes.fontFamily===t.attributes.fontFamily&&this.attributes.fontSize===t.attributes.fontSize&&this.attributes.italic===t.attributes.italic&&this.attributes.underline===t.attributes.underline&&this.attributes.hyperlink===t.attributes.hyperlink&&this.attributes.fontColor===t.attributes.fontColor&&this.attributes.bgColor===t.attributes.bgColor}getHyperlink(){return this.attributes.hyperlink||!1}setHyperlink(t){this.attributes.hyperlink=t}}class s extends e{get selectedBlockId(){return this._selectedBlockId}set selectedBlockId(t){if(this._selectedBlockId!==t){this._selectedBlockId=t;const e=document.querySelector('[id=\"editor\"]'),n=document.querySelector('[data-id=\"'+t+'\"]');if(e&&n){const t=this.getCursorOffset(e),s=this.getCursorOffset(n);this.currentOffset=t-s}else this.currentOffset=0}}constructor(){super(),this.dataIds=[],this.selectAll=!1,this._selectedBlockId=null,this.pieces=[new n(\"\")],this.blocks=[{type:\"text\",dataId:\"data-id-1734604240404\",class:\"paragraph-block\",alignment:\"left\",pieces:[new n(\"​\")]}],this.selectedBlockId=\"data-id-1734604240404\",this.currentOffset=0}setEditorView(t){this.editorView=t}getPlainText(){return this.pieces.map(t=>t.text).join(\"\")}setUndoRedoManager(t){this.undoRedoManager=t}insertAt(t,e,s,o=\"\",i=0,l=\"\",a=\"\",d=!1){d||\"batch\"===a||this.undoRedoManager.saveUndoSnapshot(),console.log(\"inserted,\",{start:s,text:t}),console.log(\"inserted,\",this.blocks);let r=0,c=[],h=!1,u=0;if(\"\"===o||null===o)return;if(u=this.blocks.findIndex(t=>t.dataId===o),-1===u||!this.blocks[u].pieces)return;r=this.currentOffset;for(let o of this.blocks[u].pieces){const i=r+o.text.length;if(!h&&s<=i){const i=s-r;i>0&&c.push(new n(o.text.slice(0,i),Object.assign({},o.attributes))),c.push(new n(t,{bold:e.bold||!1,italic:e.italic||!1,underline:e.underline||!1,strikethrough:e.strikethrough||!1,hyperlink:e.hyperlink||!1})),it.dataId===s),-1===d||!this.blocks[d].pieces)return;a=o;let c=-1;if(i&&t===a&&d>0&&e===t&&(c=d-1>=0&&\"image\"===this.blocks[d-1].type?d-2:d-1,c>=0&&this.blocks[c]))for(let t of this.blocks[c].pieces)l.push(t.clone()),r=!0;for(let s of this.blocks[d].pieces){const o=a+s.text.length,i=a;if(o<=t||i>=e)l.push(s.clone());else{const a=s.text;if(t>i){const e=a.slice(0,t-i);e.length>0&&l.push(new n(e,Object.assign({},s.attributes)))}if(e0&&l.push(new n(t,Object.assign({},s.attributes)))}}a=o}let h=this.mergePieces(l),u=!1;r&&c>=0?(!this.blocks[d]||\"ol\"!==this.blocks[d].listType&&\"li\"!==this.blocks[d].listType||(u=!0),this.blocks[c].pieces=h,this.blocks.splice(d,1)):0===h.length?this.blocks.length>1?(!this.blocks[d]||\"ol\"!==this.blocks[d].listType&&\"li\"!==this.blocks[d].listType||(u=!0),this.blocks.splice(d,1)):(h=[new n(\" \")],this.blocks[d].pieces=h):this.blocks[d].pieces=h,u&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}deleteBlocks(){const t=this.blocks.some(t=>this.dataIds.includes(t.dataId)&&(\"ol\"===t.listType||\"li\"===t.listType));this.blocks=this.blocks.filter(t=>{if(!this.dataIds.includes(t.dataId))return t}),this.dataIds=[],this.selectAll=!1,0===this.blocks.length&&this.blocks.push({dataId:`data-id-${Date.now()}`,class:\"paragraph-block\",type:\"text\",pieces:[new n(\"​\")]}),t&&this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getSelectedTextDataId(){const t=window.getSelection();if(!t||0===t.rangeCount)return null;const e=t.getRangeAt(0).startContainer,n=(e.nodeType===Node.TEXT_NODE?e.parentElement:e).closest(\"[data-id]\");return(null==n?void 0:n.getAttribute(\"data-id\"))||null}getAllSelectedDataIds(){var t;const e=window.getSelection();if(!e||0===e.rangeCount)return[];const n=e.getRangeAt(0),s=[],o=document.createNodeIterator(n.commonAncestorContainer,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let i;for(;i=o.nextNode();)if(n.intersectsNode(i)){const e=i.nodeType===Node.TEXT_NODE?i.parentElement:i,n=null===(t=null==e?void 0:e.closest(\"[data-id]\"))||void 0===t?void 0:t.getAttribute(\"data-id\");n&&!s.includes(n)&&s.push(n)}return this.removeExclusiveEndBlock(n,s),this.dataIds=s,console.log(\"selected id 3\",this.dataIds,s),s}handleCtrlASelection(){const t=[],e=document.getElementById(\"editor\");if(e){e.querySelectorAll(\"[data-id]\").forEach(e=>{const n=e.getAttribute(\"data-id\");n&&!t.includes(n)&&t.push(n)})}return this.dataIds=t,console.log(\"selected id 2\",this.dataIds,t),t}getSelectedDataIds(){const t=window.getSelection();if(!t||0===t.rangeCount)return[];const e=t.getRangeAt(0),n=[],s=e.startContainer,o=e.endContainer,i=this.getDataIdFromNode(s),l=this.getDataIdFromNode(o);return i&&!n.includes(i)&&n.push(i),l&&!n.includes(l)&&n.push(l),this.removeExclusiveEndBlock(e,n),this.dataIds=n,console.log(\"selected id 1\",this.dataIds,n),n}getDataIdFromNode(t){var e;const n=t.nodeType===Node.TEXT_NODE?t.parentElement:t;return(null===(e=null==n?void 0:n.closest(\"[data-id]\"))||void 0===e?void 0:e.getAttribute(\"data-id\"))||null}getCursorOffset(t){const e=window.getSelection();if(!e||0===e.rangeCount||!t)return-1;const n=e.getRangeAt(0);let s=0;const o=t=>{if(t===n.startContainer)return s+=n.startOffset,!0;t.nodeType===Node.TEXT_NODE&&(s+=(t.textContent||\"\").length);for(const e of Array.from(t.childNodes))if(o(e))return!0;return!1};return o(t),s}formatAttribute(t,e,s,o){console.log(\"formatAttribute\",t,e,s,o);let i=[],l=0,a=-1;if(\"\"===this.selectedBlockId||null===this.selectedBlockId)return;if(a=this.blocks.findIndex(t=>t.dataId===this.selectedBlockId),-1===a||!this.blocks[a].pieces)return;l=this.currentOffset;for(let d of this.blocks[a].pieces){const a=l+d.text.length;if(a<=t||l>=e)i.push(d.clone());else{const a=l,r=d.text,c=Math.max(t-a,0),h=Math.min(e-a,r.length);c>0&&i.push(new n(r.slice(0,c),Object.assign({},d.attributes)));const u=new n(r.slice(c,h),Object.assign({},d.attributes));(\"bold\"!==s&&\"italic\"!==s&&\"underline\"!==s&&\"strikethrough\"!==s&&\"subscript\"!==s&&\"superscript\"!=s&&\"undo\"!==s&&\"redo\"!==s&&\"hyperlink\"!==s||\"boolean\"!=typeof o)&&(\"fontFamily\"!==s&&\"fontSize\"!==s&&\"hyperlink\"!==s&&\"fontColor\"!==s&&\"bgColor\"!==s||\"string\"!=typeof o)||(u.attributes[s]=o),i.push(u),he.dataId===t);if(-1===n)return;const s=this.blocks[n];\"ol\"===s.listType||\"li\"===s.listType?(s.listType=null,s.listStart=void 0,s.parentId=void 0):(s.listType=\"ol\",s.listStart=1,s.parentId=s.dataId),this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}getHeadingFontSize(t){switch(t){case\"h1\":return\"32px\";case\"h2\":return\"24px\";case\"h3\":return\"18px\";case\"h4\":default:return\"16px\";case\"h5\":return\"13px\";case\"h6\":return\"11px\"}}toggleHeading(t,e){var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1===s)return;const o=this.blocks[s];o.heading=e;const i=this.getHeadingFontSize(e);if(Array.isArray(o.pieces)){o.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?o.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=o.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:i})}]:o.pieces.forEach(t=>{t.attributes.fontSize=i})}this.emit(\"documentChanged\",this)}toggleHeadingForMultipleBlocks(t,e){t.forEach(t=>{var n;const s=this.blocks.findIndex(e=>e.dataId===t);if(-1!==s){const t=this.blocks[s];t.heading=e;const o=this.getHeadingFontSize(e);if(Array.isArray(t.pieces)){t.pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)&&e?t.pieces=[{text:`Heading ${e.replace(\"h\",\"\")}`,attributes:Object.assign(Object.assign({},null===(n=t.pieces[0])||void 0===n?void 0:n.attributes),{fontSize:o})}]:t.pieces.forEach(t=>{t.attributes.fontSize=o})}}}),this.emit(\"documentChanged\",this)}toggleOrderedListForMultipleBlocks(t){if(0===t.length)return;const e=t.sort((t,e)=>this.blocks.findIndex(e=>e.dataId===t)-this.blocks.findIndex(t=>t.dataId===e));if(e.every(t=>{const e=this.blocks.find(e=>e.dataId===t);return e&&(\"ol\"===e.listType||\"li\"===e.listType)}))e.forEach(t=>{const e=this.blocks.find(e=>e.dataId===t);e&&(e.listType=null,e.listStart=void 0,e.parentId=void 0)});else{const t=e[0];e.forEach((e,n)=>{const s=this.blocks.find(t=>t.dataId===e);s&&(0===n?(s.listType=\"ol\",s.listStart=1,s.parentId=t):(s.listType=\"li\",s.listStart=n+1,s.parentId=t))})}this.updateOrderedListNumbers(),this.emit(\"documentChanged\",this)}toggleUnorderedList(t){const e=this.blocks.findIndex(e=>e.dataId===t);if(-1===e)return;const n=this.blocks[e];n.listType=\"ul\"===n.listType?null:\"ul\",this.emit(\"documentChanged\",this)}updateOrderedListNumbers(){let t=1,e=null;for(let n=0;nt.focus(),0)}else this.editorView.container.focus();const s=window.getSelection();if(!s)return;const o=document.createRange();let i=0;const l=[this.editorView.container];let a;const d=(null===(n=this.editorView.container.textContent)||void 0===n?void 0:n.length)||0;if(!(t<0||t>d)){for(;a=l.pop();)if(3===a.nodeType){const e=a,n=i+e.length;if(t>=i&&t<=n){o.setStart(e,Math.min(t-i,e.length)),o.collapse(!0);break}i=n}else if(\"BR\"===a.tagName){if(t===i){o.setStartBefore(a),o.collapse(!0);break}i++}else{const t=a;let e=t.childNodes.length;for(;e--;)l.push(t.childNodes[e])}s.removeAllRanges(),s.addRange(o)}}toggleBoldRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"bold\");this.formatAttribute(t,e,\"bold\",!s)}toggleItalicRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"italic\");this.formatAttribute(t,e,\"italic\",!s)}toggleUnderlineRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"underline\");this.formatAttribute(t,e,\"underline\",!s)}toggleStrikethroughRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"strikethrough\");this.formatAttribute(t,e,\"strikethrough\",!s)}toggleSubscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"subscript\");s||this.formatAttribute(t,e,\"superscript\",!1),this.formatAttribute(t,e,\"subscript\",!s)}toggleSuperscriptRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"superscript\");s||this.formatAttribute(t,e,\"subscript\",!1),this.formatAttribute(t,e,\"superscript\",!s)}toggleUndoRange(t,e,n=\"\"){const s=this.isRangeEntirelyAttribute(t,e,\"undo\");this.formatAttribute(t,e,\"undo\",!s)}toggleRedoRange(t,e){const n=this.isRangeEntirelyAttribute(t,e,\"redo\");this.formatAttribute(t,e,\"redo\",!n)}applyFontColor(t,e,n,s=\"\"){tt.dataId===this.selectedBlockId);if(-1===i||!this.blocks[i].pieces)return!1;for(let l of this.blocks[i].pieces){const i=s+l.text.length;if(i>t&&st+e.text.length,0);if(s.dataId==e){let e=null;for(let o of s.pieces){const s=n,i=s+o.text.length;if(t>=s&&tt.dataId===e);n&&(n.alignment=t,this.emit(\"documentChanged\",this))}getHtmlContent(t=!1){const e=document.getElementById(\"editor\");if(!e)return void console.error(\"Editor container not found.\");const n=e.innerHTML;return t&&navigator.clipboard.writeText(n).then(()=>{console.log(\"HTML copied to clipboard!\")}).catch(t=>console.error(\"Failed to copy HTML:\",t)),n}getCursorOffsetInParent(t){var e;console.log(\"textPosition -1:vicky\",t);const n=document.querySelector(t);if(!n)return null;const s=window.getSelection();if(!s||0===s.rangeCount)return null;const o=s.getRangeAt(0);if(!n.contains(o.startContainer))return null;let i=0,l=null;const a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let d=null;for(;a.nextNode();){const t=a.currentNode;if(console.log(t,\"textPosition - currentNode: vicky\"),t===o.startContainer){i+=o.startOffset,l=t,d=t.parentElement;break}i+=(null===(e=t.textContent)||void 0===e?void 0:e.length)||0}return console.log({offset:i,childNode:l,innerHTML:d.innerHTML,innerText:d.innerText},\"textPosition - return values: vicky\"),{offset:i,childNode:l,innerHTML:d.innerHTML,innerText:d.innerText}}removeExclusiveEndBlock(t,e){if(e.length<=1)return;const n=t.endContainer,s=t.endOffset;let o=!1;if((n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE)&&(o=0===s),!o)return;const i=this.getDataIdFromNode(n);if(!i)return;if(i!==this.getDataIdFromNode(t.startContainer)&&e.includes(i)){const t=e.lastIndexOf(i);t>-1&&e.splice(t,1)}}}function o(t){const e=window.getSelection();if(!e||0===e.rangeCount)return null;const n=e.getRangeAt(0),s=n.cloneRange();s.selectNodeContents(t),s.setEnd(n.startContainer,n.startOffset);const o=s.toString().length;s.setEnd(n.endContainer,n.endOffset);return{start:o,end:s.toString().length}}function i(t,e){if(!e)return;let n=0;const s=document.createRange();s.setStart(t,0),s.collapse(!0);const o=[t];let i,l=!1,a=!1;for(;!a&&(i=o.pop());)if(3===i.nodeType){const t=i,o=n+t.length;!l&&e.start>=n&&e.start<=o&&(s.setStart(t,e.start-n),l=!0),l&&e.end>=n&&e.end<=o&&(s.setEnd(t,e.end-n),a=!0),n=o}else if(\"BR\"===i.tagName)l||e.start!==n||(s.setStartBefore(i),l=!0),l&&e.end===n&&(s.setEndBefore(i),a=!0),n++;else{const t=i;let e=t.childNodes.length;for(;e--;)o.push(t.childNodes[e])}const d=window.getSelection();d&&(d.removeAllRanges(),d.addRange(s))}function l(t){const e=o(t.container);return e?[e.start,e.end]:[0,0]}const a=/((https?:\\/\\/|www\\.)[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]+|\\b[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:\\/[\\w\\-._~:\\/?#[\\]@!$&'()*+,;=%]*)?)/g;function d(t,e){return e>0&&\"@\"===t[e-1]}function r(t){if(!t)return t;let e=t.trim();const n=e.match(/^https?:\\/\\/[\\w.-]+(?::\\d+)?\\/(https?:\\/\\/.*)$/);return n&&(e=n[1]),/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)?e:e.startsWith(\"//\")?\"https:\"+e:\"https://\"+e}class c{constructor(t,e){this.container=t,this.document=e}setImageHandler(t){this.imageHandler=t}render(){const t=o(this.container);this.container.innerHTML=\"\",this.document.blocks.forEach(t=>{var e;if(\"\"!==t.dataId){let n;if(\"table\"===t.type||\"layout\"===t.type||\"math\"===t.type)return void(t.element&&this.container.appendChild(t.element));if(\"image\"===t.type){if(n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",t.image)if(this.imageHandler&&\"function\"==typeof this.imageHandler.createImageFragment)n.appendChild(this.imageHandler.createImageFragment(t.image,t.dataId));else{const e=document.createElement(\"img\");e.src=t.image,n.appendChild(e)}}else if(\"code\"===t.type){n=document.createElement(\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",\"code_block_wrapper\"),n.setAttribute(\"type\",\"code\"),n.setAttribute(\"data-language\",t.language||\"text\"),n.addEventListener(\"mousedown\",t=>{t.preventDefault()});const e=document.createElement(\"div\");e.className=\"code_block_header\";const s=document.createElement(\"span\");s.className=\"code_block_language\",s.innerText=t.language||\"text\";const o=document.createElement(\"span\");o.className=\"code_block_hint\",o.innerText=\"double-click to edit\";const i=document.createElement(\"button\");i.className=\"code_block_cancel\",i.innerHTML=\"×\",i.title=\"Remove block\",i.addEventListener(\"mousedown\",t=>{t.stopPropagation()}),i.onclick=e=>{e.stopPropagation(),e.preventDefault(),n.remove();const s=this.document.blocks.findIndex(e=>e.dataId===t.dataId);-1!==s&&(this.document.blocks.splice(s,1),this.document.selectedBlockId===t.dataId&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},e.appendChild(s),e.appendChild(o),e.appendChild(i);const l=document.createElement(\"pre\");l.className=\"code_block_content\";const a=document.createElement(\"code\");a.textContent=t.code||\"\",l.appendChild(a),n.appendChild(e),n.appendChild(l)}else if(\"ol\"===t.listType||\"li\"===t.listType?(n=document.createElement(\"ol\"),n.setAttribute(\"start\",(null===(e=null==t?void 0:t.listStart)||void 0===e?void 0:e.toString())||\"1\")):n=\"ul\"===t.listType?document.createElement(\"ul\"):document.createElement(t.heading||\"div\"),n.setAttribute(\"data-id\",t.dataId),n.setAttribute(\"class\",t.class),n.setAttribute(\"type\",t.type),n.style.textAlign=t.alignment||\"left\",Array.isArray(t.pieces))if(\"ol\"===t.listType||\"ul\"===t.listType||\"li\"===t.listType){const e=document.createElement(\"li\");t.pieces.forEach(t=>{e.appendChild(this.renderPiece(t))}),n.appendChild(e)}else t.pieces.forEach(t=>{n.appendChild(this.renderPiece(t))});this.container.appendChild(n)}}),i(this.container,t)}renderPiece(t){const e=t.text.split(\"\\n\");return this.wrapAttributes(e,t.attributes)}wrapAttributes(t,e){const n=document.createDocumentFragment();return t.forEach((s,o)=>{let i=document.createTextNode(s);if(e.strikethrough){const t=document.createElement(\"s\");t.appendChild(i),i=t}if(e.underline){const t=document.createElement(\"u\");t.appendChild(i),i=t}if(e.italic){const t=document.createElement(\"em\");t.appendChild(i),i=t}if(e.bold){const t=document.createElement(\"strong\");t.appendChild(i),i=t}if(e.subscript){const t=document.createElement(\"sub\");t.appendChild(i),i=t}if(e.superscript){const t=document.createElement(\"sup\");t.appendChild(i),i=t}const l=document.getElementById(\"fontFamily\"),a=document.getElementById(\"fontSize\");let d=\"Arial\",c=\"16px\";l&&(d=l.value),a&&(c=a.value);const h=document.createElement(\"span\");if(h.style.fontFamily=e.fontFamily||d,h.style.fontSize=e.fontSize||c,e.fontColor&&\"string\"==typeof e.fontColor&&(h.style.color=e.fontColor),e.bgColor&&\"string\"==typeof e.bgColor&&(h.style.backgroundColor=e.bgColor),e.hyperlink&&\"string\"==typeof e.hyperlink){const t=document.createElement(\"a\");t.href=r(e.hyperlink),t.appendChild(i),i=t}h.appendChild(i),i=h,n.appendChild(i),o{t.addEventListener(\"mousedown\",t=>{t.preventDefault()})}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"toolbarAction\",t)}})}updateActiveStates(t){if(this.container.querySelectorAll(\"button\").forEach(e=>{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),\"undo\"===n&&t.undo&&(s=!0),\"redo\"===n&&t.redo&&(s=!0),e.classList.toggle(\"active\",s)}),this.container.querySelectorAll(\"select\").forEach(e=>{const n=e.getAttribute(\"data-action\");\"fontFamily\"===n&&t.fontFamily&&(e.value=t.fontFamily),\"fontSize\"===n&&t.fontSize&&(e.value=t.fontSize)}),t.fontColor){const e=document.getElementById(\"fontColorPicker\");e&&(e.value=t.fontColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}if(t.bgColor){const e=document.getElementById(\"bgColorPicker\");e&&(e.value=t.bgColor,e.dispatchEvent(new Event(\"input\",{bubbles:!0})))}}}const u={TOOLBAR_CLASSNAME:\"toolbar\",TOOLBAR_ID:\"toolbar\",EDITOR_CLASSNAME:\"editor\",EDITOR_ID:\"editor\",EDITOR_ELEMENT_NT_FOUND:\"Editor element not found or incorrect element type.\",FONT_FAMILY_SELECT_ID:\"fontFamily\",FONT_SIZE_SELECT_ID:\"fontSize\",HEADING_SELECT_ID:\"heading\",FONT_COLOR_WRAPPER_ID:\"fontColorWrapper\",FONT_COLOR_ID:\"fontColor\",FONT_COLOR_PICKER_WRAPPER_ID:\"colorWrapper\",FONT_COLOR_PICKER_ID:\"fontColorPicker\",FONT_COLOR_RESET_ID:\"colorResetFont\",BG_COLOR_WRAPPER_ID:\"bgColorWrapper\",BG_COLOR_ID:\"bgColor\",BG_COLOR_PICKER_WRAPPER_ID:\"colorBgWrapper\",BG_COLOR_RESET_ID:\"colorResetBG\",BG_COLOR_PICKER_ID:\"bgColorPicker\",GET_HTML_BUTTON_ID:\"getHtmlButton\",LOAD_HTML_BUTTON_ID:\"loadHtmlButton\",HYPERLINK_CONTAINER_ID:\"hyperlink-container\",HYPERLINK_INPUT_ID:\"hyperlink-input\",HYPERLINK_PLACEHOLDER:\"Enter a URL...\",HYPERLINK_APPLY_BTN_ID:\"apply-hyperlink\",HYPERLINK_CANCEL_BTN_ID:\"cancel-hyperlink\",VIEW_HYPERLINK_CONTAINER_ID:\"hyperlink-container-view\",VIEW_HYPERLINK_LABEL_ID:\"hyperlink-view-span\",VIEW_HYPERLINK_ANCHOR_ID:\"hyperlink-view-link\",TEMPORARY_SELECTION_HIGHLIGHT_CLASS:\"temporary-selection-highlight\",PARAGRAPH_BLOCK_CLASS:\"paragraph-block\",IMAGE_CROSS_CLASS:\"image-cross\",TEST_HTML_CODE:'
ajsh diujaksdajsh diujaksdajsh
diujaksdasd 98hasiudasdh 98
This is a t this is a test work
This is a test work. this is a test work
da90 uasd y98asiodoiasda90 uasd y98asiodoiasda90 uasd y98asioda
sdjasdjasdja9sudoija9sudoija9sudoija90sdoa90sdoa90sdo
',TEST_BLOG_POST_HTML_CODE:'
Blog Post Title
Start writing your post here...
',TEST_NEWSLATER_HTML_CODE:'
Weekly Newsletter
Hello subscribers,
',TEST_RESUME_HTML_CODE:'
John Doe
Experience
• Role 1
',TEST_EMAIL_HTML_CODE:'
Subject: Important Update
Hi Team,
',TEST_MEETING_HTML_CODE:'
Meeting Minutes
Attendees:
Action Items:
',POPUP_TOOLBAR_CLASSNAME:\"popup-toolbar\",POPUP_TOOLBAR_ID:\"popup-toolbar\",TOAST_ID:\"ti-toast\",TOAST_SHOW_CLASS:\"ti-toast--show\",TOAST_DEFAULT_MESSAGE:\"HTML copied to clipboard\",TOAST_DEFAULT_DURATION_MS:2e3};class p{constructor(t,e,n){this.savedSelection=null,this.clickOutsideHandler=null,this.editorContainer=t,this.editorView=e,this.document=n}setUndoRedoManager(t){this.undoRedoManager=t}hanldeHyperlinkClick(t,e,n,s,o){const i=this.getCommonHyperlinkInRange(t,e,n,s,o);this.showHyperlinkInput(i)}getCommonHyperlinkInRange(t,e,n,s,o){let i=n,l=0;s&&(l=o.findIndex(t=>t.dataId===s));const a=o[l].pieces;let d=null;for(let n of a){const s=i+n.text.length;if(s>t&&i0){const t=c.getRangeAt(0);let o=null;if(t&&\"function\"==typeof t.getBoundingClientRect)o=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);o=n&&n.length?n[0]:null}(!o||Number.isNaN(o.top)&&Number.isNaN(o.left))&&(o=this.editorView.container.getBoundingClientRect());const l=(null===window||void 0===window?void 0:window.scrollY)||0,a=(null===window||void 0===window?void 0:window.scrollX)||0;i.style.top=`${(null!==(n=o.bottom)&&void 0!==n?n:o.top)+l+5}px`,i.style.left=`${(null!==(s=o.left)&&void 0!==s?s:0)+a}px`}l.value=t||\"\",this.savedSelection=o(this.editorView.container),this.highlightSelection(),l.focus(),a.onclick=null,d.onclick=null;const h=this.document.dataIds,u=()=>{const t=r(l.value.trim());t&&this.applyHyperlink(t,h),i.style.display=\"none\"};a.onclick=u,l.onkeydown=t=>{\"Enter\"===t.key&&(t.preventDefault(),u())},d.onclick=()=>{this.removeHyperlink(h),i.style.display=\"none\"}}}highlightSelection(){this.removeHighlightSelection();const t=window.getSelection();if(t&&t.rangeCount>0){const e=t.getRangeAt(0),n=document.createElement(\"span\");n.className=u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS,n.appendChild(e.extractContents()),e.insertNode(n),t.removeAllRanges();const s=document.createRange();s.selectNodeContents(n),t.addRange(s)}}removeHighlightSelection(){var t;const e=null===(t=this.editorContainer)||void 0===t?void 0:t.querySelectorAll(`span.${u.TEMPORARY_SELECTION_HIGHLIGHT_CLASS}`);null==e||e.forEach(t=>{const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)}})}applyHyperlink(t,e){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),i(this.editorView.container,this.savedSelection);const[n,s]=l(this.editorView);if(n1?this.document.blocks.forEach(t=>{if(e.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.formatAttribute(s,e,\"hyperlink\",o)}}):this.document.formatAttribute(n,s,\"hyperlink\",o),this.editorView.render();const i=window.getSelection();i&&i.removeAllRanges(),this.editorView.container.focus()}this.savedSelection=null}removeHyperlink(t){this.undoRedoManager.saveUndoSnapshot(),this.removeHighlightSelection(),i(this.editorView.container,this.savedSelection);const[e,n]=l(this.editorView);e1?this.document.blocks.forEach(n=>{if(t.includes(n.dataId)){this.document.selectedBlockId=n.dataId;let t=0;n.pieces.forEach(e=>{t+=e.text.length});let s=e-t;this.document.formatAttribute(s,t,\"hyperlink\",!1)}}):this.document.formatAttribute(e,n,\"hyperlink\",!1),this.editorView.render(),i(this.editorView.container,this.savedSelection),this.editorView.container.focus()),this.savedSelection=null}addClickOutsideListener(t){this.removeClickOutsideListener(),this.clickOutsideHandler=e=>{t&&!t.contains(e.target)&&this.hideHyperlinkViewButton()},setTimeout(()=>{\"undefined\"!=typeof document&&document.addEventListener(\"click\",this.clickOutsideHandler)},100)}removeClickOutsideListener(){this.clickOutsideHandler&&(document.removeEventListener(\"click\",this.clickOutsideHandler),this.clickOutsideHandler=null)}showHyperlinkViewButton(t){var e,n,s;const o=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID),i=document.getElementById(u.VIEW_HYPERLINK_ANCHOR_ID);if(o&&i){o.style.display=\"block\";const l=window.getSelection();if(l&&l.rangeCount>0){const t=l.getRangeAt(0);let i=null;if(t&&\"function\"==typeof t.getBoundingClientRect)i=t.getBoundingClientRect();else if(t&&\"function\"==typeof t.getClientRects){const n=null===(e=t.getClientRects)||void 0===e?void 0:e.call(t);i=n&&n.length?n[0]:null}i||(i=this.editorView.container.getBoundingClientRect());const a=(null===window||void 0===window?void 0:window.scrollY)||0,d=(null===window||void 0===window?void 0:window.scrollX)||0;i&&(o.style.top=`${(null!==(n=i.bottom)&&void 0!==n?n:i.top)+a+5}px`,o.style.left=`${(null!==(s=i.left)&&void 0!==s?s:0)+d}px`)}t&&(i.innerText=t,i.href=r(t))}this.addClickOutsideListener(o)}hideHyperlinkViewButton(){const t=document.getElementById(u.VIEW_HYPERLINK_CONTAINER_ID);t&&(t.style.display=\"none\"),this.removeClickOutsideListener()}}function m(t){return g((new DOMParser).parseFromString(t,\"text/html\").body,{bold:!1,italic:!1,underline:!1,hyperlink:!1})}function g(t,e){let s=Object.assign({},e);const o=[];if(t instanceof HTMLElement){if(\"A\"===t.tagName){const e=t.getAttribute(\"href\");e&&(s.hyperlink=e)}\"STRONG\"!==t.tagName&&\"B\"!==t.tagName||(s.bold=!0),\"EM\"!==t.tagName&&\"I\"!==t.tagName||(s.italic=!0),\"U\"===t.tagName&&(s.underline=!0),t.childNodes.forEach(t=>{o.push(...g(t,s))})}else if(t instanceof Text){const e=t.nodeValue||\"\";\"\"!==e.trim()&&o.push(new n(e,Object.assign({},s)))}return o}const f={bold:'\\n Bold\\n \\n ',italic:'\\n Italic\\n \\n ',underline:'\\n Underline\\n \\n ',strikethrough:'\\n Strikethrough\\n \\n ',subscript:'\\n \\n ',superscript:'\\n \\n ',left_align:'\\n Left Align\\n \\n ',center_align:'\\n Center Align\\n ',right_align:'\\n Right Align',justify:'\\n Justify\\n ',bullet_list:'\\n Bullet List',numbered_list:'\\n Numbererd List\\n \\n ',insert_table:'\\n \\n \\n \\n \\n \\n \\n \\n ',insert_layout:'\\n Insert Layout\\n \\n ',heading:'\\n Heading\\n \\n ',hyperlink:'\\n Hyperlink\\n \\n \\n ',image:'\\n Insert Image\\n \\n ',stop_microphone:' \\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',start_microphone:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',close_icon:'\\n \\n ',emoji:'\\n Emoji\\n \\n \\n \\n \\n ',insert_math:'\\n \\n ',textToSppech:'\\n \\n \\n \\n \\n Icon_24px_TexttoSpeech_Color\\n \\n \\n \\n \\n \\n \\n \\n ',speaker_on:'\\n \\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n \\n \\n ',speaker_off:'\\n \\x3c!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--\\x3e\\n '},b={dropdowns:[\"fontFamily\",\"fontSize\",\"heading\"],colors:[\"fontColor\",\"bgColor\"],formatting:[\"bold\",\"italic\",\"underline\",\"strikethrough\"],alignment:[\"alignLeft\",\"alignCenter\",\"alignRight\"],lists:[\"unorderedList\",\"orderedList\"],media:[\"hyperlink\",\"image\",\"emoji\",\"insert_math\"],utility:[\"getHtmlContent\",\"loadHtmlContent\"]};function y(){const t=document.createElement(\"div\");return t.className=\"toolbar-separator\",t}function C(t,e){const n=u.EDITOR_ID,s=u.TOOLBAR_ID,o=u.POPUP_TOOLBAR_ID,i=[\"Arial\",\"Times New Roman\",\"Courier New\",\"Verdana\"],l=[\"12px\",\"14px\",\"16px\",\"18px\",\"20px\"],a=document.getElementById(t);if(!a)throw new Error(u.EDITOR_ELEMENT_NT_FOUND);a.classList.add(\"editor-container\");const d=document.createElement(\"div\");d.className=u.TOOLBAR_CLASSNAME,d.id=s,a.appendChild(d),!1===(null==e?void 0:e.showToolbar)&&(d.style.display=\"none\");const r=document.createElement(\"div\");r.id=n,r.className=u.EDITOR_CLASSNAME,r.contentEditable=\"true\",r.spellcheck=!0,r.lang=\"en\",a.appendChild(r);const c={bold:\"B\",italic:\"I\",underline:\"U\",hyperlink:\"🔗\",alignLeft:\"⇤\",alignCenter:\"↔\",alignRight:\"⇥\",unorderedList:\"•\",orderedList:\"1.\",fontFamily:\"fontFamily\",fontSize:\"fontSize\",fontColor:\"A\",subscript:\"X2\",superscript:\"X2\",justify:\"⇄\",insert_table:\"⊢\",insert_layout:\"❐\",insert_math:\"Σ\",heading:\"H\",image:\"📷\",colors:\"🎨\"},h={bold:\"Bold (Ctrl+B)\",italic:\"Italic (Ctrl+I)\",underline:\"Underline (Ctrl+U)\",strikethrough:\"Strikethrough\",hyperlink:\"Insert Link (Ctrl+H)\",alignLeft:\"Align Left (Ctrl+L)\",alignCenter:\"Align Center (Ctrl+E)\",alignRight:\"Align Right (Ctrl+R)\",unorderedList:\"Bullet List\",orderedList:\"Numbered List\",fontColor:\"Text Color\",bgColor:\"Highlight Color\",image:\"Insert Image\",emoji:\"Emoji\",getHtmlContent:\"Get HTML\",loadHtmlContent:\"Load HTML\",insert_table:\"Insert table\",insert_math:\"Insert Equation\",textToSpeech:\"Text To Sppech\"},p=[{feature:\"alignLeft\",id:\"alignLeft\",icon:f.left_align},{feature:\"alignCenter\",id:\"alignCenter\",icon:f.center_align},{feature:\"alignRight\",id:\"alignRight\",icon:f.right_align},{feature:\"unorderedList\",id:\"unorderedList\",icon:f.bullet_list},{feature:\"orderedList\",id:\"orderedList\",icon:f.numbered_list},{feature:\"hyperlink\",id:\"hyperlink\",icon:f.hyperlink},{feature:\"emoji\",id:\"emoji\",icon:f.emoji},{feature:\"strikethrough\",id:\"strikethrough\",icon:f.strikethrough},{feature:\"insert_table\",id:\"insert_table\",icon:f.insert_table},{feature:\"insert_math\",id:\"insert_math\",icon:f.insert_math},{feature:\"subscript\",id:\"subscript\",icon:f.subscript},{feature:\"superscript\",id:\"superscript\",icon:f.superscript},{feature:\"textToSpeech\",id:\"textToSpeech\",icon:f.speaker_on}],m=(t,e)=>{const n=document.createElement(\"select\");return n.dataset.action=t,n.id=t,e.forEach(t=>{const e=document.createElement(\"option\");e.value=t,e.textContent=t,n.appendChild(e)}),n},g=document.createElement(\"div\");g.id=o,g.className=u.POPUP_TOOLBAR_CLASSNAME,g.style.display=\"none\",a.appendChild(g),e.popupFeatures&&e.popupFeatures.forEach((t,e)=>{e>0&&\"hyperlink\"===t&&g.appendChild(y());const n=p.find(e=>e.feature===t)||{icon:c[t]||t},s=document.createElement(\"button\");s.dataset.action=t,s.innerHTML=n.icon,s.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),g.appendChild(s)});let C=null;e.features.forEach((t,n)=>{const s=function(t){for(const[e,n]of Object.entries(b))if(n.includes(t))return e;return null}(t);if(n>0&&s&&C&&s!==C&&d.appendChild(y()),C=s,\"fontFamily\"===t){const t=m(u.FONT_FAMILY_SELECT_ID,i);d.appendChild(t)}else if(\"fontSize\"===t){const t=m(u.FONT_SIZE_SELECT_ID,l);d.appendChild(t)}else if(\"fontColor\"===t){if(document.getElementById(u.FONT_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.FONT_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.FONT_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.fontColor,e.innerHTML='A',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.FONT_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #d1d1d1\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.type=\"color\",s.id=u.FONT_COLOR_PICKER_ID,s.setAttribute(\"data-action\",\"fontColor\"),s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #d1d1d1\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#000000\",n.appendChild(s);const o=document.createElement(\"button\");o.id=u.FONT_COLOR_RESET_ID,o.type=\"button\",o.textContent=\"Reset\",o.style.display=\"block\",o.style.width=\"100%\",o.style.padding=\"6px 12px\",o.style.fontSize=\"12px\",o.style.border=\"1px solid #000000\",o.style.borderRadius=\"4px\",o.style.backgroundColor=\"#f8f8f8\",o.style.cursor=\"pointer\",o.style.transition=\"background-color 0.2s\",o.onmouseenter=()=>o.style.backgroundColor=\"#e8e8e8\",o.onmouseleave=()=>o.style.backgroundColor=\"#f8f8f8\",n.appendChild(o),t.appendChild(n),d.appendChild(t)}else if(\"bgColor\"===t){if(document.getElementById(u.BG_COLOR_WRAPPER_ID))return;const t=document.createElement(\"span\");t.id=u.BG_COLOR_WRAPPER_ID,t.style.display=\"inline-flex\",t.style.alignItems=\"center\",t.style.position=\"relative\",t.style.gap=\"4px\";const e=document.createElement(\"button\");e.id=u.BG_COLOR_ID,e.type=\"button\",e.dataset.tooltip=h.bgColor,e.innerHTML='B',t.appendChild(e);const n=document.createElement(\"div\");n.id=u.BG_COLOR_PICKER_WRAPPER_ID,n.style.display=\"none\",n.style.position=\"absolute\",n.style.top=\"100%\",n.style.left=\"0\",n.style.marginTop=\"4px\",n.style.zIndex=\"1000\",n.style.backgroundColor=\"#ffffff\",n.style.border=\"1px solid #000000\",n.style.borderRadius=\"4px\",n.style.padding=\"8px\",n.style.boxShadow=\"0 2px 8px rgba(0,0,0,0.15)\",n.style.width=\"135px\";const s=document.createElement(\"input\");s.setAttribute(\"data-action\",\"bgColor\"),s.type=\"color\",s.id=u.BG_COLOR_PICKER_ID,s.style.width=\"100%\",s.style.height=\"32px\",s.style.border=\"1px solid #000000ff\",s.style.borderRadius=\"4px\",s.style.cursor=\"pointer\",s.style.marginBottom=\"8px\",s.value=\"#ffffff\",n.appendChild(s);const o=document.createElement(\"button\");o.id=u.BG_COLOR_RESET_ID,o.type=\"button\",o.textContent=\"Reset\",o.style.display=\"block\",o.style.width=\"100%\",o.style.padding=\"6px 12px\",o.style.fontSize=\"12px\",o.style.border=\"1px solid #d1d1d1\",o.style.borderRadius=\"4px\",o.style.backgroundColor=\"#f8f8f8\",o.style.cursor=\"pointer\",o.style.transition=\"background-color 0.2s\",o.onmouseenter=()=>o.style.backgroundColor=\"#e8e8e8\",o.onmouseleave=()=>o.style.backgroundColor=\"#f8f8f8\",n.appendChild(o),t.appendChild(n),d.appendChild(t)}else if(\"getHtmlContent\"===t){const t=document.createElement(\"button\");t.id=u.GET_HTML_BUTTON_ID,t.type=\"button\",t.textContent=\"Get HTML\",t.dataset.tooltip=h.getHtmlContent,d.appendChild(t)}else if(\"loadHtmlContent\"===t){const t=document.createElement(\"select\");t.id=u.LOAD_HTML_BUTTON_ID,t.dataset.action=\"loadHtmlContent\",t.dataset.tooltip=h.loadHtmlContent,t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const n=document.createElement(\"option\");n.value=\"\",n.textContent=\"Templates...\",n.disabled=!0,n.selected=!0,t.appendChild(n);[...[{name:\"Default Test\",html:u.TEST_HTML_CODE},{name:\"Blog Post\",html:u.TEST_BLOG_POST_HTML_CODE},{name:\"Newsletter\",html:u.TEST_NEWSLATER_HTML_CODE},{name:\"Resume\",html:u.TEST_RESUME_HTML_CODE},{name:\"Email\",html:u.TEST_EMAIL_HTML_CODE},{name:\"Meeting Notes\",html:u.TEST_MEETING_HTML_CODE}],...e.templates||[]].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=n.toString(),s.dataset.html=e.html,s.textContent=e.name,t.appendChild(s)}),d.appendChild(t)}else if(\"heading\"===t){const t=document.createElement(\"select\");t.id=u.HEADING_SELECT_ID,t.dataset.action=\"heading\",t.dataset.tooltip=h.heading||\"Heading\",t.style.cursor=\"pointer\",t.style.padding=\"4px 8px\",t.style.border=\"1px solid #ccc\",t.style.borderRadius=\"4px\",t.style.backgroundColor=\"#f9f9f9\",t.style.fontSize=\"13px\",t.style.outline=\"none\",t.style.color=\"#333\",t.style.height=\"28px\",t.addEventListener(\"mouseenter\",()=>{t.style.backgroundColor=\"#eaeaea\"}),t.addEventListener(\"mouseleave\",()=>{t.style.backgroundColor=\"#f9f9f9\"});const e=document.createElement(\"option\");e.value=\"\",e.textContent=\"Normal\",t.appendChild(e),[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"].forEach((e,n)=>{const s=document.createElement(\"option\");s.value=e.toLowerCase(),s.textContent=`Heading ${n+1}`,t.appendChild(s)}),d.appendChild(t)}else if(p.map(t=>t.feature).includes(t)){const e=p.find(e=>e.feature===t),n=document.createElement(\"button\");n.id=t,n.dataset.action=t,n.innerHTML=(null==e?void 0:e.icon)||\"\",n.dataset.tooltip=h[t]||t,d.appendChild(n)}else{const e=document.createElement(\"button\");e.dataset.action=t,e.innerHTML=c[t]||t,e.id=t,e.dataset.tooltip=h[t]||t.split(\"_\").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(\" \"),d.appendChild(e)}});const k=document.createElement(\"div\");k.id=u.HYPERLINK_CONTAINER_ID,k.style.display=\"none\";const v=document.createElement(\"input\");v.type=\"text\",v.id=u.HYPERLINK_INPUT_ID,v.placeholder=u.HYPERLINK_PLACEHOLDER;const I=document.createElement(\"button\");I.id=u.HYPERLINK_APPLY_BTN_ID,I.textContent=\"Link\";const x=document.createElement(\"button\");x.id=u.HYPERLINK_CANCEL_BTN_ID,x.textContent=\"Unlink\",k.appendChild(v),k.appendChild(I),k.appendChild(x),d.appendChild(k);const E=document.createElement(\"div\");E.id=u.VIEW_HYPERLINK_CONTAINER_ID,E.style.display=\"none\";const w=document.createElement(\"span\");w.id=u.VIEW_HYPERLINK_LABEL_ID,w.innerHTML=\"Visit URL : \";const _=document.createElement(\"a\");return _.id=u.VIEW_HYPERLINK_ANCHOR_ID,_.href=\"\",_.target=\"_blank\",E.appendChild(w),E.appendChild(_),d.appendChild(E),{mainEditorId:n,toolbarId:s,popupToolbarId:o}}class k{constructor(t){this.htmlString=t,this.doc=(new DOMParser).parseFromString(t,\"text/html\")}parse(){const t=this.doc.body.children;let e=[];return Array.from(t).forEach((t,n)=>{const s=this.parseElement(t);console.log(t,\"element parse\",n,s),e.push(s)}),console.log(e,\"element--jsondata\"),e}parseElement(t){const e=t.getAttribute(\"data-id\")||`data-id-${Date.now()}-${Math.floor(1e3*Math.random())}`,n=t.className||\"paragraph-block\",s=t.style.textAlign||\"left\";let o=null,i=null;\"UL\"===t.tagName?o=\"ul\":\"OL\"===t.tagName&&(o=\"ol\",i=parseInt(t.getAttribute(\"start\")||\"1\",10));let l=[];o?this.parseListItems(t,l):this.parseParagraphText(t,l);const a=t.tagName.toLowerCase(),d=a.match(/^h[1-6]$/)?a:null;return Object.assign(Object.assign(Object.assign(Object.assign({dataId:e,class:n,alignment:s,pieces:l},o?{listType:o}:{}),null!==i?{listStart:i}:{}),{}),d?{heading:d}:{})}parseListItems(t,e){t.querySelectorAll(\"li\").forEach(t=>{const s=this.extractTextAttributes(t);s&&e.push(new n(s.text,s.attributes))})}parseParagraphText(t,e){const s=t.querySelectorAll(\"span\"),o=new Map;s.forEach(t=>{const e=this.extractTextAttributes(t);if(console.log(e,\"piece parseParagraphText span\",t.textContent,t.style.color),e){const t=o.get(e.text);t?(t.attributes.bold=t.attributes.bold||e.attributes.bold,t.attributes.italic=t.attributes.italic||e.attributes.italic,t.attributes.underline=t.attributes.underline||e.attributes.underline,t.attributes.fontFamily=e.attributes.fontFamily||t.attributes.fontFamily,t.attributes.fontSize=e.attributes.fontSize||t.attributes.fontSize,t.attributes.fontColor=e.attributes.fontColor||t.attributes.fontColor,t.attributes.bgColor=e.attributes.bgColor||t.attributes.bgColor):o.set(e.text,Object.assign({},e))}}),o.forEach(t=>{e.push(new n(t.text,t.attributes))}),console.log(e,\"pieces--parseParagraphText (merged)\")}extractTextAttributes(t){var e;const n=t.textContent||\"\";return n?(console.log(\"extractTextAttributes node\",t,t.style.color),{text:n,attributes:{bold:null!==t.querySelector(\"b, strong\"),italic:null!==t.querySelector(\"i, em\"),underline:null!==t.querySelector(\"u\"),undo:!1,redo:!1,fontFamily:t.style.fontFamily||\"Arial\",fontSize:t.style.fontSize||\"12px\",hyperlink:!!t.querySelector(\"a\")&&(null===(e=t.querySelector(\"a\"))||void 0===e?void 0:e.getAttribute(\"href\")),fontColor:t.style.color,bgColor:t.style.backgroundColor}}):null}rgbToHex(t,e=!1){const n=t.match(/\\d+/g);if(!n||n.length<3)return null;const s=n.map(t=>{const e=parseInt(t);return e<0||e>255?\"00\":e.toString(16).padStart(2,\"0\")}).join(\"\");return e||\"000000\"!==s?`#${s}`:null}}class v{constructor(t,e){this.editor=t,this.document=e,this.isImageHighlighted=!1,this.highLightedImageDataId=\"\",this.currentCursorLocation=0,this.isCrossIconVisible=!1}setEditorView(t){this.editorView=t}insertImage(){const t=document.createElement(\"input\");t.type=\"file\",t.accept=\"image/*\",t.click(),t.onchange=()=>{const e=t.files?t.files[0]:null;if(e){const t=new FileReader;t.onload=t=>{var e;const n=null===(e=t.target)||void 0===e?void 0:e.result;this.insertImageAtCursor(n)},t.readAsDataURL(e)}}}insertImageAtCursor(t){if(!t)return;const[e,n]=l(this.editorView);n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId),this.insertImageAtPosition(t,e,this.document.selectedBlockId)}setCursorPostion(t,e){if(\"number\"!=typeof t||!e)return;const n=document.querySelector(`[data-id=\"${e}\"]`);n&&(\"function\"==typeof n.focus&&n.focus(),setTimeout(()=>{const e=document.createRange(),s=window.getSelection();if(n.firstChild)e.setStart(n.firstChild,t);else{const t=document.createTextNode(\"\");n.appendChild(t),e.setStart(t,0)}e.collapse(!0),null==s||s.removeAllRanges(),null==s||s.addRange(e)},0))}insertImageAtPosition(t,e,s){if(!t||\"number\"!=typeof e||!this.editorView)return;console.log(t,e,s,\"vicky insertImageAtPosition\",this.document.blocks);const o=`data-id-${Date.now()}-${1e3*Math.random()}`,i=`data-id-${Date.now()}-${1e3*Math.random()}`,l=`data-id-${Date.now()}-${1e3*Math.random()}`,a={dataId:o,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"image\",image:t},d={dataId:i,class:u.PARAGRAPH_BLOCK_CLASS,pieces:[new n(\" \")],type:\"text\"};let r=this.document.selectedBlockId;const c=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);let h=[];const{remainingText:p,piece:m}=function(t,e){const n=window.getSelection();if(!n||0===n.rangeCount)return{remainingText:\"\",piece:null};const s=n.getRangeAt(0).startContainer;let o=\"\";const i=e.blocks.filter(e=>{if(e.dataId===t)return e});if(!i[0]||!i[0].pieces)return{remainingText:\"\",piece:null};const l=document.querySelector(`[data-id=\"${t}\"]`),a=e.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let d=[],r=0;if(i[0].pieces.forEach((t,e)=>{o+=t.text,(null==a?void 0:a.innerText)===t.text&&(r=e,d.push(t))}),i[0].pieces.length>1&&i[0].pieces.forEach((t,e)=>{r0){const t=p.split(\" \");let e=[];\"\"!==t[0]||void 0!==t[1]?1===m.length?e=[new n(g,m[0].attributes)]:(e.push(new n(\" \"+t[0]+\" \",m[0].attributes)),m.length>=2&&m.forEach((t,n)=>{0!==n&&e.push(t)})):e=[new n(\" \")],console.log(this.document.selectedBlockId,\"uniqueId3 extractTextFromDataId-vicky\",l),f=function(t,e,n){const s=t.findIndex(t=>t.dataId===e);return-1===s?(console.error(`Block with dataId \"${e}\" not found.`),t):[...t.slice(0,s+1),n,...t.slice(s+1)]}(this.document.blocks,this.document.selectedBlockId||\"\",{dataId:l,class:u.PARAGRAPH_BLOCK_CLASS,pieces:e,type:\"text\"})}this.document.blocks=f,this.document.deleteRange(this.currentCursorLocation,this.currentCursorLocation+p.length,this.document.selectedBlockId,this.document.currentOffset),this.document.blocks.length>c+1?this.document.blocks.forEach((t,e)=>{h.push(t),e===c?h.push(a):r===this.document.selectedBlockId&&(r=t.dataId)}):(h=[...this.document.blocks,a,d],r=d.dataId),this.document.blocks=h,this.editorView.render(),this.document.selectedBlockId=r;const b=document.querySelector(`[data-id=\"${r}\"]`);b.focus(),setTimeout(()=>{const t=document.createRange(),e=window.getSelection();if(b.firstChild)t.setStart(b.firstChild,1);else{const e=document.createTextNode(\"\");b.appendChild(e),t.setStart(e,0)}t.collapse(!0),null==e||e.removeAllRanges(),null==e||e.addRange(t)},0)}createImageFragment(t,e){if(!t||!e)return document.createDocumentFragment();const n=document.createDocumentFragment(),s=document.createElement(\"img\");s.src=t,s.style.maxWidth=\"30%\",s.setAttribute(\"contenteditable\",\"false\"),n.appendChild(s);const o=document.createElement(\"span\");return o.setAttribute(\"contenteditable\",\"false\"),o.appendChild(n),s.addEventListener(\"click\",()=>this.addStyleToImage(e)),o}addStyleToImage(t){if(t&&!this.isCrossIconVisible){const e=document.querySelector(`[data-id=\"${t}\"]`),n=null==e?void 0:e.querySelector(\"span\");n&&(n.style.position=\"relative\");const s=null==e?void 0:e.querySelector(\"img\");s&&(s.style.border=\"2px solid blue\");const o=document.createElement(\"div\");o.className=u.IMAGE_CROSS_CLASS,o.innerHTML=\"x\",Object.assign(o.style,{position:\"absolute\",top:\"0\",left:\"50%\",transform:\"translate(-50%, 0)\",background:\"#fff\",borderRadius:\"50%\",width:\"30px\",height:\"30px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",border:\"3px solid blue\",zIndex:\"999\"}),o.addEventListener(\"mouseover\",()=>o.style.border=\"3px solid black\"),o.addEventListener(\"mouseout\",()=>o.style.border=\"3px solid blue\"),o.addEventListener(\"click\",t=>{t.stopPropagation(),this.deleteImage()}),null==n||n.appendChild(o),this.isImageHighlighted=!0,this.highLightedImageDataId=t,this.isCrossIconVisible=!0}}clearImageStyling(){if(!this.highLightedImageDataId)return;const t=document.querySelector(`[data-id=\"${this.highLightedImageDataId}\"]`);if(t){const e=t.querySelector(\"span\");null==e||e.removeAttribute(\"style\");const n=null==e?void 0:e.querySelector(\"img\");n&&n.removeAttribute(\"style\");const s=null==e?void 0:e.querySelector(`.${u.IMAGE_CROSS_CLASS}`);null==s||s.remove(),this.highLightedImageDataId=\"\"}this.isCrossIconVisible=!1}deleteImage(){this.highLightedImageDataId&&(this.document.blocks=this.document.blocks.filter(t=>t.dataId!==this.highLightedImageDataId),this.highLightedImageDataId=\"\",this.isImageHighlighted=!1,this.clearImageStyling(),this.document.emit(\"documentChanged\",this))}}class I{constructor(t,e){this.snapshotUndoStack=[],this.snapshotRedoStack=[],this.maxSnapshots=5e3,this.document=t,this.editorView=e}createSnapshot(){const[t,e]=l(this.editorView);return{blocks:JSON.parse(JSON.stringify(this.document.blocks)),dataIds:[...this.document.dataIds],selectedBlockId:this.document.selectedBlockId,currentOffset:this.document.currentOffset,selection:this.getCurrentSelection(),cursorPosition:t}}getCurrentSelection(){const t=o(this.document.editorView.container);return t?{start:t.start,end:t.end}:{start:0,end:0}}saveUndoSnapshot(){const t=this.createSnapshot();console.log(\"Saving snapshot:\",t.cursorPosition,\"Stack length:\",this.snapshotUndoStack.length),this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift(),this.snapshotRedoStack=[]}restoreSnapshot(t){this.document.blocks=t.blocks,this.document.dataIds=t.dataIds,this.document._selectedBlockId=t.selectedBlockId,this.document.currentOffset=t.currentOffset;for(let t of this.document.blocks)t.pieces&&Array.isArray(t.pieces)&&(t.pieces=t.pieces.map(t=>new n(t.text,t.attributes)));this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{this.document.setCursorPosition(t.cursorPosition||0)},0)}undo(){if(console.log(\"UNDO - Undo stack length:\",this.snapshotUndoStack.length),console.log(\"UNDO - Redo stack length:\",this.snapshotRedoStack.length),0===this.snapshotUndoStack.length)return;const t=this.createSnapshot();this.snapshotRedoStack.push(t),this.snapshotRedoStack.length>this.maxSnapshots&&this.snapshotRedoStack.shift();const e=this.snapshotUndoStack.pop();e&&(console.log(\"UNDO - Restoring cursor position:\",e.cursorPosition),this.restoreSnapshot(e))}redo(){if(0===this.snapshotRedoStack.length)return;const t=this.createSnapshot();this.snapshotUndoStack.push(t),this.snapshotUndoStack.length>this.maxSnapshots&&this.snapshotUndoStack.shift();const e=this.snapshotRedoStack.pop();e&&this.restoreSnapshot(e)}}class x extends e{constructor(t){super(),this.container=t,this.setupButtons()}setupButtons(){this.container.addEventListener(\"mousedown\",t=>{t.preventDefault()}),this.container.addEventListener(\"click\",t=>{const e=t.target.closest(\"button\");if(e){const t=e.getAttribute(\"data-action\");t&&this.emit(\"popupAction\",t)}})}show(t){const e=t.getRangeAt(0).getBoundingClientRect();if(0===e.width&&0===e.height)return void this.hide();this.container.style.display=\"flex\";const n=this.container.offsetWidth,s=this.container.offsetHeight;let o=e.top+window.scrollY-s-8,i=e.left+window.scrollX+e.width/2-n/2;o{const n=e.getAttribute(\"data-action\");let s=!1;\"bold\"===n&&t.bold&&(s=!0),\"italic\"===n&&t.italic&&(s=!0),\"underline\"===n&&t.underline&&(s=!0),\"strikethrough\"===n&&t.strikethrough&&(s=!0),\"hyperlink\"===n&&t.hyperlink&&(s=!0),e.classList.toggle(\"active\",s)})}}class E{constructor(){this.linkElement=null,this.createPopup()}setCallbacks(t,e){this.onOpenClick=t,this.onUnlinkClick=e}createPopup(){this.popup=document.createElement(\"div\"),this.popup.className=\"link-popup\",this.popup.style.cssText=\"\\n position: absolute;\\n background: #000;\\n border-radius: 4px;\\n padding: 2px;\\n box-shadow: 0 1px 4px rgba(0,0,0,0.5);\\n z-index: 1000;\\n \",this.popup.style.display=\"none\";const t=this.createButton(\"Open\",\"🔗\"),e=this.createButton(\"Unlink\",\"✕\");t.addEventListener(\"click\",()=>this.handleOpenClick()),e.addEventListener(\"click\",()=>this.handleUnlinkClick()),this.popup.appendChild(t),this.popup.appendChild(e),document.body.appendChild(this.popup)}createButton(t,e){const n=document.createElement(\"button\");return n.innerHTML=`${e}`,n.title=t,n.style.cssText=\"\\n background: transparent;\\n color: white;\\n border: none;\\n padding: 4px;\\n margin: 0 1px;\\n border-radius: 2px;\\n cursor: pointer;\\n font-size: 16px;\\n transition: background 0.1s;\\n width: 24px;\\n height: 24px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>{n.style.background=\"#333\"}),n.addEventListener(\"mouseleave\",()=>{n.style.background=\"transparent\"}),n}handleOpenClick(){this.linkElement&&this.onOpenClick&&this.onOpenClick(this.linkElement.href)}handleUnlinkClick(){this.onUnlinkClick&&this.linkElement&&this.onUnlinkClick(this.linkElement)}show(t,e,n){this.linkElement=t;const s=t.getBoundingClientRect();this.popup.style.left=`${s.left+window.scrollX}px`,this.popup.style.top=`${s.bottom+window.scrollY+5}px`,this.popup.style.display=\"flex\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",requestAnimationFrame(()=>{this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"1\",this.popup.style.transform=\"translateY(0)\"})}hide(){\"none\"!==this.popup.style.display&&(this.popup.style.transition=\"opacity 0.1s ease-in-out, transform 0.1s ease-in-out\",this.popup.style.opacity=\"0\",this.popup.style.transform=\"translateY(-2px)\",setTimeout(()=>{this.popup.style.display=\"none\",this.popup.style.transition=\"\"},100))}isPopup(t){return this.popup.contains(t)}isVisible(){return\"none\"!==this.popup.style.display}}class w{constructor(t,e,n,s){this.isRecording=!1,this.silenceTimer=null,this.document=t,this.editorView=e,this.onStateChange=n,this.insertText=s;const o=window.SpeechRecognition||window.webkitSpeechRecognition;o?(this.recognition=new o,this.recognition.continuous=!0,this.recognition.interimResults=!1,this.recognition.onresult=t=>{const e=t.results[t.results.length-1];if(e.isFinal){const t=e[0].transcript+\" \";this.insertText(t)}},this.recognition.onerror=t=>{console.error(\"Speech recognition error:\",t.error),\"no-speech\"!==t.error&&this.stopRecording()},this.recognition.onend=()=>{this.stopRecording()}):console.warn(\"Speech Recognition API not supported in this browser.\")}toggleRecording(){this.isRecording?this.stopRecording():this.startRecording()}startRecording(){if(this.recognition)try{this.recognition.start(),this.isRecording=!0,this.onStateChange(!0)}catch(t){console.error(\"Failed to start speech recognition:\",t)}}stopRecording(){if(this.recognition&&this.isRecording){try{this.recognition.stop()}catch(t){console.warn(\"Some problem occur during the stop recording . . . \",t)}this.isRecording=!1,this.onStateChange(!1),this.silenceTimer&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}}}class _{constructor(t,e){this.modal=null,this.activeTable=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openTableModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"table_modal\";const e=document.createElement(\"div\");e.className=\"main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Table\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Table\";const o=document.createElement(\"button\");o.className=\"main_modal_close\",o.setAttribute(\"aria-label\",\"Close\"),o.innerHTML=f.close_icon,o.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(o);const i=document.createElement(\"div\");i.className=\"main_modal_body\";const l=document.createElement(\"div\");l.className=\"main_modal_inputs\";const a=document.createElement(\"div\");a.className=\"all_input\";const d=document.createElement(\"label\");d.textContent=\"Rows\",d.className=\"input_label\",d.setAttribute(\"for\",\"modal_input_row\");const r=document.createElement(\"input\");r.type=\"number\",r.id=\"modal_input_row\",r.className=\"modal_inputs\",r.placeholder=\"Enter the row number 1 to 20\",r.min=\"1\",r.max=\"20\",r.value=\"3\",a.appendChild(d),a.appendChild(r);const c=document.createElement(\"div\");c.className=\"all_input\";const h=document.createElement(\"label\");h.textContent=\"Columns\",h.className=\"input_label\",h.setAttribute(\"for\",\"modal_input_col\");const u=document.createElement(\"input\");u.type=\"number\",u.id=\"modal_input_col\",u.className=\"modal_inputs\",u.placeholder=\"Enter the coloumn number 1 to 20\",u.min=\"1\",u.max=\"20\",u.value=\"3\",c.appendChild(h),c.appendChild(u),l.appendChild(a),l.appendChild(c);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Insert Table\",g.type=\"button\",g.onclick=()=>{const t=Math.max(1,Math.min(20,parseInt(r.value)||3)),e=Math.max(1,Math.min(20,parseInt(u.value)||3));this.insertTable(t,e),this.closeModal()},p.appendChild(m),p.appendChild(g),i.appendChild(l),e.appendChild(n),e.appendChild(i),e.appendChild(p),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertTable(t,e){const s=`data-id-${Date.now()}`,o=`data-id-${Date.now()+1}`,i=document.createElement(\"div\");i.className=\"table_wrapper\",i.setAttribute(\"data-type\",\"tbl\"),i.setAttribute(\"data-id\",s),i.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),i.appendChild(l);const d=document.createElement(\"table\");d.className=\"tbl\";const r=document.createElement(\"thead\"),c=document.createElement(\"tr\");for(let t=0;tt.dataId===this.document.selectedBlockId);-1!==t&&(u=t+1)}const p={dataId:s,type:\"table\",element:i},m={dataId:o,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(u,0,p,m),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=i.querySelector(\".tblCell\");t&&(t.focus(),this.setActiveTable(i.querySelector(\"table\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\"table\");e&&this.setActiveTable(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\"table\"))||void 0===n?void 0:n.querySelectorAll(\".tblCell\"))||[]),o=e.indexOf(t);if(s.shiftKey)o>0&&(e[o-1].focus(),this.selectAllInCell(e[o-1]));else if(o{e!==t&&e.classList.remove(\"tbl_active\")}),t.classList.add(\"tbl_active\"),this.activeTable=t}clearTableActive(){this.activeTable&&(this.activeTable.classList.remove(\"tbl_active\"),this.activeTable=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".table_wrapper\"),s=null!==e.closest(\"#table_modal\");n||s||this.clearTableActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".table_wrapper\")||this.clearTableActive()},!0)}}const T=[{label:\"Smileys & People\",items:[{char:\"😀\",name:\"grinning face\",shortcode:\":grinning:\"},{char:\"😃\",name:\"big eyes smile\",shortcode:\":smiley:\"},{char:\"😄\",name:\"smiling eyes grin\",shortcode:\":smile:\"},{char:\"😁\",name:\"beaming grin\",shortcode:\":grin:\"},{char:\"😆\",name:\"squinting laugh\",shortcode:\":laughing:\"},{char:\"😅\",name:\"sweat smile\",shortcode:\":sweat_smile:\"},{char:\"🤣\",name:\"rolling floor laughing\",shortcode:\":rofl:\"},{char:\"😂\",name:\"tears of joy\",shortcode:\":joy:\"},{char:\"🙂\",name:\"slightly smiling\",shortcode:\":slightly_smiling_face:\"},{char:\"😊\",name:\"smiling eyes blush\",shortcode:\":blush:\"}]}],L=\"recent_emojies\";class A{constructor(){this.isOpen=!1,this.popup=this.buildPopup(),this.gridArea=this.popup.querySelector(\".emoji_grid\"),this.searchInput=this.popup.querySelector(\".emoji_serch\"),document.body.appendChild(this.popup),document.addEventListener(\"mousedown\",t=>{if(this.isOpen&&!this.popup.contains(t.target)){t.target.closest('[data-action=\"emoji\"]')||this.close()}})}onSelect(t){this.onSelectCallback=t}open(t){const e=t.getBoundingClientRect();let n=e.left+window.scrollX;n+320>window.innerWidth-8&&(n=window.innerWidth-320-8);const s=e.bottom+window.scrollY+4;this.popup.style.left=`${n}px`,this.popup.style.top=`${s}px`,this.popup.style.display=\"flex\",this.isOpen=!0,this.searchInput.value=\"\",this.renderGrid(\"\")}close(){this.popup.style.display=\"none\",this.isOpen=!1}getIsOpen(){return this.isOpen}buildPopup(){const t=document.createElement(\"div\");t.style.cssText=\"\\n position: absolute;\\n display: none;\\n flex-direction: column;\\n width: 320px;\\n max-height: 380px;\\n background: #ffffff;\\n border: 1px solid #dddddd;\\n border-radius: 10px;\\n box-shadow: 0 6px 24px rgba(0,0,0,0.14);\\n z-index: 9999;\\n overflow: hidden;\\n font-family: system-ui, -apple-system, sans-serif;\\n \";const e=document.createElement(\"div\");e.style.cssText=\"\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 10px 12px;\\n border-bottom: 1px solid #f0f0f0;\\n background: #fafafa;\\n \";const n=document.createElement(\"input\");n.type=\"text\",n.placeholder=\"🔍 Search emojis or :shortcode:\",n.className=\"emoji_serch\",n.style.cssText=\"\\n flex: 1;\\n padding: 6px 10px;\\n border: 1px solid #ccc;\\n border-radius: 6px;\\n font-size: 13px;\\n outline: none;\\n background: #fff;\\n \",n.addEventListener(\"input\",()=>this.renderGrid(n.value.trim())),e.appendChild(n);const s=document.createElement(\"div\");return s.className=\"emoji_grid\",s.style.cssText=\"\\n flex: 1;\\n overflow-y: auto;\\n padding: 10px 12px 12px;\\n \",t.appendChild(e),t.appendChild(s),t}getRecentEmojis(){try{const t=localStorage.getItem(L);return t?JSON.parse(t):[]}catch(t){return[]}}saveRecentEmoji(t){const e=this.getRecentEmojis().filter(e=>e.char!==t.char);e.unshift(t),e.length>24&&(e.length=24);try{localStorage.setItem(L,JSON.stringify(e))}catch(t){console.error(\"Problem occur in saving emojies\",t)}}resolveChar(t){return t.char}renderGrid(t){this.gridArea.innerHTML=\"\";const e=t.toLowerCase().replace(/^:/,\"\").replace(/:$/,\"\"),n=(t,e)=>{if(!e.length)return;const n=document.createElement(\"div\");n.style.marginBottom=\"12px\";const s=document.createElement(\"div\");s.textContent=t,s.style.cssText=\"\\n font-size: 11px;\\n font-weight: 600;\\n text-transform: uppercase;\\n letter-spacing: 0.5px;\\n color: #999;\\n margin-bottom: 6px;\\n \",n.appendChild(s);const o=document.createElement(\"div\");o.style.cssText=\"\\n display: grid;\\n grid-template-columns: repeat(8, 1fr);\\n gap: 2px;\\n \",e.forEach(t=>{const e=this.resolveChar(t),n=document.createElement(\"button\");n.textContent=e,n.title=`${t.name} ${t.shortcode}`,n.style.cssText=\"\\n font-size: 20px;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n border-radius: 5px;\\n padding: 4px;\\n line-height: 1.2;\\n transition: background 0.1s;\\n aspect-ratio: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n \",n.addEventListener(\"mouseenter\",()=>n.style.background=\"#f0f0f0\"),n.addEventListener(\"mouseleave\",()=>n.style.background=\"transparent\"),n.addEventListener(\"mousedown\",n=>{var s;n.preventDefault(),this.saveRecentEmoji(t),null===(s=this.onSelectCallback)||void 0===s||s.call(this,e)}),o.appendChild(n)}),n.appendChild(o),this.gridArea.appendChild(n)};if(e){const t=[];T.forEach(n=>{n.items.forEach(n=>{(n.name.includes(e)||n.shortcode.includes(e))&&t.push(n)})}),n(`Results for \"${e}\"`,t)}else{const t=this.getRecentEmojis();n(\"Recently Used\",t),T.forEach(t=>n(t.label,t.items))}if(!this.gridArea.querySelector(\"button\")){const t=document.createElement(\"div\");t.textContent=\"No emojis found\",t.style.cssText=\"text-align: center; color: #aaa; padding: 24px 0; font-size: 13px;\",this.gridArea.appendChild(t)}}}class S{constructor(){this.currentLanguage=\"\",this.onSaveCallback=null,this.onCloseCallback=null,this.container=document.createElement(\"div\"),this.container.className=\"code_editor_modal\",this.container.style.display=\"none\";const t=document.createElement(\"div\");t.className=\"code_editor_modal_content\";const e=document.createElement(\"div\");e.className=\"code_editor_modal_header\";const n=document.createElement(\"span\");n.className=\"code_editor_modal_title\";const s=document.createElement(\"div\");s.className=\"code_editor_modal_actions\",this.copyBtn=document.createElement(\"button\"),this.copyBtn.className=\"copy_editor_btn\",this.copyBtn.innerText=\"Copy\",this.copyBtn.onclick=()=>this.handleCopy(),this.saveBtn=document.createElement(\"button\"),this.saveBtn.className=\"copy_editor_btn copy_editor_btn--primary\",this.saveBtn.innerText=\"Save\",this.saveBtn.onclick=()=>this.handleSave(),this.cancelBtn=document.createElement(\"button\"),this.cancelBtn.className=\"copy_editor_btn copy_editor_btn--cancel\",this.cancelBtn.innerText=\"Cancel\",this.cancelBtn.onclick=()=>this.handleClose(),s.appendChild(this.copyBtn),s.appendChild(this.saveBtn),s.appendChild(this.cancelBtn),e.appendChild(n),e.appendChild(s);const o=document.createElement(\"div\");o.className=\"editor_moal_wrapper\",this.lineNumbers=document.createElement(\"div\"),this.lineNumbers.className=\"editor_moal_line_number\",this.pre=document.createElement(\"pre\"),this.pre.className=\"editor_modal_pre_block\",this.pre.setAttribute(\"aria-hidden\",\"true\"),this.codeHighlight=document.createElement(\"code\"),this.codeHighlight.className=\"modal_editor_highlight\",this.pre.appendChild(this.codeHighlight),this.textArea=document.createElement(\"textarea\"),this.textArea.className=\"modal_editor_text_area\",this.textArea.spellcheck=!1,o.appendChild(this.lineNumbers),o.appendChild(this.pre),o.appendChild(this.textArea),t.appendChild(e),t.appendChild(o),this.container.appendChild(t),document.body.appendChild(this.container),this.attachEventListeners()}attachEventListeners(){this.textArea.addEventListener(\"input\",()=>{this.syncHighlight()}),this.textArea.addEventListener(\"scroll\",()=>{this.pre.scrollTop=this.textArea.scrollTop,this.pre.scrollLeft=this.textArea.scrollLeft,this.lineNumbers.scrollTop=this.textArea.scrollTop}),this.textArea.addEventListener(\"keydown\",t=>{if(\"Tab\"===t.key){t.preventDefault();const e=this.textArea.selectionStart,n=this.textArea.selectionEnd;this.textArea.value=this.textArea.value.substring(0,e)+\" \"+this.textArea.value.substring(n),this.textArea.selectionStart=this.textArea.selectionEnd=e+2,this.syncHighlight()}}),this.container.addEventListener(\"click\",t=>{t.target===this.container&&this.handleClose()})}syncHighlight(){const t=this.textArea.value.replace(/&/g,\"&\").replace(//g,\">\");this.codeHighlight.innerHTML=t+\"\\n\"}handleCopy(){navigator.clipboard.writeText(this.textArea.value).then(()=>{const t=this.copyBtn.innerText;this.copyBtn.innerText=\"Copied!\",setTimeout(()=>this.copyBtn.innerText=t,2e3)})}handleSave(){this.onSaveCallback&&this.onSaveCallback(this.textArea.value),this.close()}handleClose(){this.onCloseCallback&&this.onCloseCallback(),this.close()}open(t,e,n,s){this.currentLanguage=e,this.onSaveCallback=n,this.onCloseCallback=s;this.container.querySelector(\".code_editor_modal_title\").innerText=e||\"text\",this.textArea.value=t,this.syncHighlight(),this.container.style.display=\"flex\",setTimeout(()=>this.textArea.focus(),50)}close(){this.container.style.display=\"none\",this.textArea.value=\"\",this.currentLanguage=\"\"}}class R{constructor(t,e){this.modal=null,this.activeLayout=null,this.editor=t,this.document=e,this.setupClickOutsideListener()}openLayoutModal(){this.modal&&(this.modal.remove(),this.modal=null);const t=document.createElement(\"div\");t.className=\"table_modal\",t.id=\"layout_modal\";const e=document.createElement(\"div\");e.className=\"main_modal layout_main_modal\",e.setAttribute(\"role\",\"dialog\"),e.setAttribute(\"aria-modal\",\"true\"),e.setAttribute(\"aria-label\",\"Insert Layout\");const n=document.createElement(\"div\");n.className=\"main_modal_header\";const s=document.createElement(\"h3\");s.className=\"main_modal_title\",s.textContent=\"Insert Layout\";const o=document.createElement(\"button\");o.className=\"main_modal_close\",o.setAttribute(\"aria-label\",\"Close\"),o.innerHTML=f.close_icon,o.onclick=()=>this.closeModal(),n.appendChild(s),n.appendChild(o);const i=document.createElement(\"div\");i.className=\"main_modal_body\";const l=document.createElement(\"label\");l.textContent=\"Preset Splits\",l.className=\"input_label\",l.style.display=\"block\",l.style.marginBottom=\"8px\";const a=document.createElement(\"div\");a.style.display=\"flex\",a.style.flexWrap=\"wrap\",a.style.gap=\"8px\",a.style.marginBottom=\"16px\";[{label:\"Single\",cols:1,widths:[100]},{label:\"50 - 50\",cols:2,widths:[50,50]},{label:\"60 - 40\",cols:2,widths:[60,40]},{label:\"40 - 60\",cols:2,widths:[40,60]},{label:\"33 - 33 - 33\",cols:3,widths:[33.33,33.33,33.33]},{label:\"25 - 50 - 25\",cols:3,widths:[25,50,25]}].forEach(t=>{const e=document.createElement(\"button\");e.className=\"modal_close_button modal_close_button_secondary\",e.style.padding=\"4px 8px\",e.style.fontSize=\"12px\",e.textContent=t.label,e.onclick=()=>{this.insertLayout(t.cols,t.widths),this.closeModal()},a.appendChild(e)});const d=document.createElement(\"label\");d.textContent=\"Or Custom Splits (comma separated %)\",d.className=\"input_label\",d.style.display=\"block\",d.style.marginBottom=\"8px\";const r=document.createElement(\"input\");r.type=\"text\",r.className=\"modal_inputs\",r.placeholder=\"e.g. 20, 60, 20\",r.style.width=\"100%\",i.appendChild(l),i.appendChild(a),i.appendChild(d),i.appendChild(r);const c=document.createElement(\"div\");c.className=\"main_modal_footer\";const h=document.createElement(\"button\");h.className=\"modal_close_button modal_close_button_secondary\",h.textContent=\"Cancel\",h.type=\"button\",h.onclick=()=>this.closeModal();const u=document.createElement(\"button\");u.className=\"modal_close_button modal_close_button_primary\",u.textContent=\"Insert Custom\",u.type=\"button\",u.onclick=()=>{const t=r.value.trim();if(t){const e=t.split(\",\").map(t=>parseFloat(t.trim())).filter(t=>!isNaN(t));if(e.length>0){const t=e.reduce((t,e)=>t+e,0),n=e.map(e=>e/t*100);this.insertLayout(n.length,n)}else this.insertLayout(2,[50,50])}else this.insertLayout(2,[50,50]);this.closeModal()},c.appendChild(h),c.appendChild(u),e.appendChild(n),e.appendChild(i),e.appendChild(c),t.appendChild(e),t.addEventListener(\"click\",e=>{e.target===t&&this.closeModal()}),document.body.appendChild(t),this.modal=t,requestAnimationFrame(()=>{t.classList.add(\"table_modal_visible\")})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null},200))}insertLayout(t,e){const s=`data-id-${Date.now()}`,o=`data-id-${Date.now()+1}`,i=document.createElement(\"div\");i.className=\"layout_wrapper\",i.setAttribute(\"data-type\",\"layout\"),i.setAttribute(\"data-id\",s),i.setAttribute(\"contenteditable\",\"false\");const l=document.createElement(\"div\");l.className=\"table_controls\";const a=document.createElement(\"button\");a.className=\"table_delete_button\",a.innerHTML=f.close_icon,a.onclick=()=>{const t=this.document.blocks.findIndex(t=>t.dataId===s);-1!==t&&(this.document.blocks.splice(t,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))},l.appendChild(a),i.appendChild(l);const d=document.createElement(\"div\");d.className=\"layout_container\",d.style.display=\"flex\",d.style.width=\"100%\",d.style.gap=\"10px\";for(let n=0;nt.dataId===this.document.selectedBlockId);-1!==t&&(r=t+1)}const c={dataId:s,type:\"layout\",element:i},h={dataId:o,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(r,0,c,h),this.document.selectedBlockId=s,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document),setTimeout(()=>{const t=i.querySelector(\".layout_column\");t&&(t.focus(),this.setActiveLayout(i.querySelector(\".layout_container\")))},0)}setupCellEvents(t){t.addEventListener(\"focus\",()=>{const e=t.closest(\".layout_container\");e&&this.setActiveLayout(e),t.classList.add(\"tblCell_focused\")}),t.addEventListener(\"blur\",()=>{t.classList.remove(\"tblCell_focused\")}),t.addEventListener(\"keydown\",e=>{var n;const s=e;if(\"Tab\"===s.key){s.preventDefault(),s.stopPropagation();const e=Array.from((null===(n=t.closest(\".layout_container\"))||void 0===n?void 0:n.querySelectorAll(\".layout_column\"))||[]),o=e.indexOf(t);if(s.shiftKey)o>0&&(e[o-1].focus(),this.selectAllInCell(e[o-1]));else if(o{e!==t&&e.classList.remove(\"layout_active\")}),t.classList.add(\"layout_active\"),this.activeLayout=t}clearLayoutActive(){this.activeLayout&&(this.activeLayout.classList.remove(\"layout_active\"),this.activeLayout=null)}setupClickOutsideListener(){document.addEventListener(\"click\",t=>{const e=t.target,n=null!==e.closest(\".layout_wrapper\"),s=null!==e.closest(\"#layout_modal\");n||s||this.clearLayoutActive()},!0),document.addEventListener(\"focusin\",t=>{t.target.closest(\".layout_wrapper\")||this.clearLayoutActive()},!0)}}class B{constructor(t,e){this.modal=null,this.isKatexLoaded=!1,this.editingBlockId=null,this.editor=t,this.document=e,this.loadKatex()}loadKatex(){if(\"undefined\"!=typeof katex)return void(this.isKatexLoaded=!0);if(document.getElementById(\"katex-js\"))return;const t=document.createElement(\"link\");t.rel=\"stylesheet\",t.href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\",document.head.appendChild(t);const e=document.createElement(\"script\");e.id=\"katex-js\",e.src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\",e.onload=()=>{this.isKatexLoaded=!0},document.head.appendChild(e)}openMathModal(t=\"\",e=null){if(!this.isKatexLoaded)return void alert(\"Math rendering engine is still loading. Please try again in a moment.\");this.editingBlockId=e,this.modal&&(this.modal.remove(),this.modal=null);const n=document.createElement(\"div\");n.className=\"table_modal\",n.id=\"math_modal\";const s=document.createElement(\"div\");s.className=\"main_modal\",s.setAttribute(\"role\",\"dialog\"),s.setAttribute(\"aria-modal\",\"true\"),s.setAttribute(\"aria-label\",\"Insert Equation\"),s.style.width=\"400px\",s.style.height=\"390px\",s.style.maxHeight=\"90vh\",s.style.position=\"fixed\",s.style.top=\"90px\",s.style.right=\"-90px\",s.style.margin=\"0\";const o=document.createElement(\"div\");o.className=\"main_modal_header\";const i=document.createElement(\"h3\");i.className=\"main_modal_title\",i.textContent=this.editingBlockId?\"Edit Equation\":\"Insert Equation\";const l=document.createElement(\"button\");l.className=\"main_modal_close\",l.setAttribute(\"aria-label\",\"Close\"),l.innerHTML=f.close_icon,l.onclick=()=>this.closeModal(),o.appendChild(i),o.appendChild(l);const a=document.createElement(\"div\");a.className=\"main_modal_body\";const d=document.createElement(\"label\");d.textContent=\"LaTeX Input:\",d.className=\"input_label\",d.style.display=\"block\",d.style.marginBottom=\"8px\";const r=document.createElement(\"textarea\");r.className=\"modal_inputs\",r.style.width=\"100%\",r.style.height=\"80px\",r.style.resize=\"vertical\",r.placeholder=\"e.g. c = \\\\pm\\\\sqrt{a^2 + b^2}\",r.value=t;const c=document.createElement(\"label\");c.textContent=\"Preview:\",c.className=\"input_label\",c.style.display=\"block\",c.style.marginTop=\"16px\",c.style.marginBottom=\"8px\";const h=document.createElement(\"div\");h.style.padding=\"10px\",h.style.border=\"1px solid #ccc\",h.style.borderRadius=\"4px\",h.style.minHeight=\"50px\",h.style.display=\"flex\",h.style.alignItems=\"center\",h.style.justifyContent=\"center\",h.style.overflowX=\"auto\";const u=()=>{try{katex.render(r.value||\"Preview\",h,{throwOnError:!1})}catch(t){console.error(\"error\",t),h.textContent=\"Invalid LaTeX\"}};r.addEventListener(\"input\",u),a.appendChild(d),a.appendChild(r),a.appendChild(c),a.appendChild(h);const p=document.createElement(\"div\");p.className=\"main_modal_footer\";const m=document.createElement(\"button\");m.className=\"modal_close_button modal_close_button_secondary\",m.textContent=\"Cancel\",m.type=\"button\",m.onclick=()=>this.closeModal();const g=document.createElement(\"button\");g.className=\"modal_close_button modal_close_button_primary\",g.textContent=\"Apply Equation\",g.type=\"button\",g.onclick=()=>{r.value.trim()&&this.insertEquation(r.value.trim()),this.closeModal()},p.appendChild(m),p.appendChild(g),s.appendChild(o),s.appendChild(a),s.appendChild(p),n.appendChild(s),n.addEventListener(\"click\",t=>{t.target===n&&this.closeModal()}),document.body.appendChild(n),this.modal=n,requestAnimationFrame(()=>{n.classList.add(\"table_modal_visible\"),r.focus(),u()})}closeModal(){this.modal&&(this.modal.classList.remove(\"table_modal_visible\"),setTimeout(()=>{var t;null===(t=this.modal)||void 0===t||t.remove(),this.modal=null,this.editingBlockId=null},200))}insertEquation(t){const e=katex.renderToString(t,{output:\"mathml\"});if(this.editingBlockId){const n=this.document.blocks.find(t=>t.dataId===this.editingBlockId);if(n&&n.element){const s=n.element.querySelector(\".math_node\");s&&(s.innerHTML=e,s.dataset.latex=t)}return void this.document.emit(\"documentChanged\",this.document)}const s=`data-id-${Date.now()}`,o=document.createElement(\"div\");o.setAttribute(\"data-id\",s),o.setAttribute(\"contenteditable\",\"false\"),o.style.display=\"inline-flex\",o.style.alignItems=\"center\",o.style.gap=\"6px\",o.style.margin=\"4px\",o.style.cursor=\"pointer\",o.style.position=\"relative\";const i=document.createElement(\"button\");i.className=\"table_delete_button\",i.innerHTML=f.close_icon,i.style.cursor=\"pointer\",i.style.opacity=\"0\",i.style.transition=\"opacity 0.2s\",o.onmouseenter=()=>{i.style.opacity=\"1\"},o.onmouseleave=()=>{i.style.opacity=\"0\"},i.onclick=t=>{t.stopPropagation();const e=this.document.blocks.findIndex(t=>t.dataId===s);-1!==e&&(this.document.blocks.splice(e,1),this.document.selectedBlockId===s&&(this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document))};const l=document.createElement(\"span\");l.className=\"math_node\",l.dataset.latex=t,l.innerHTML=e,o.onclick=e=>{e.stopPropagation(),this.openMathModal(t,s)},o.appendChild(l),o.appendChild(i);let a=this.document.blocks.length;if(this.document.selectedBlockId){const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);-1!==t&&(a=t+1)}const d={dataId:s,type:\"math\",element:o},r={dataId:`data-id-${Date.now()+1}`,type:\"text\",class:\"paragraph-block\",pieces:[new n(\"​\",{bold:!1,italic:!1,underline:!1,strikethrough:!1,hyperlink:!1})]};this.document.blocks.splice(a,0,d,r),this.document.selectedBlockId=r.dataId,this.document.currentOffset=0,this.document.emit(\"documentChanged\",this.document)}}class O{constructor(t){this.isSpeaking=!1,this.synth=window.speechSynthesis,this.onStateChange=t}getHindiVoice(){return this.synth.getVoices().find(t=>\"Google हिन्दी\"===t.name||\"hi-IN\"===t.lang)||null}speak(t){if(!t||\"\"===t.trim())return;this.synth.speaking&&this.synth.cancel();const e=new SpeechSynthesisUtterance(t),n=this.getHindiVoice();n&&(e.voice=n,e.lang=\"hi-IN\"),e.onstart=()=>{this.isSpeaking=!0,this.onStateChange(!0)},e.onend=()=>{this.isSpeaking=!1,this.onStateChange(!1)},e.onerror=()=>{this.isSpeaking=!1,this.onStateChange(!1)},this.synth.speak(e)}stop(){this.synth.speaking&&(this.synth.cancel(),this.isSpeaking=!1,this.onStateChange(!1))}toggle(t){this.isSpeaking?this.stop():this.speak(t)}}class N extends e{constructor(t,e){var o,i,l,r,g,b,y,T,L,N,H,M,P,D;super(),this.savedSelection=null,this.debounceTimer=null;const{mainEditorId:z,toolbarId:V,popupToolbarId:F}=C(t,e);this.editorContainer=document.getElementById(z)||null,this.toolbarContainer=document.getElementById(V)||null;const j=document.getElementById(F)||null;if(!this.editorContainer||!this.toolbarContainer||!j)throw new Error(\"Editor element not found or incorrect element type.\");this.document=new s,this.editorView=new c(this.editorContainer,this.document),this.toolbarView=new h(this.toolbarContainer),this.popupToolbarView=new x(j),this.linkPopupView=new E,this.hyperlinkHandler=new p(this.editorContainer,this.editorView,this.document),this.imageHandler=new v(this.editorContainer,this.document),this.undoRedoManager=new I(this.document,this.editorView),this.editorView.setImageHandler(this.imageHandler),this.imageHandler.setEditorView(this.editorView),this.document.setEditorView(this.editorView),this.document.setUndoRedoManager(this.undoRedoManager),this.hyperlinkHandler.setUndoRedoManager(this.undoRedoManager),this.linkPopupView.setCallbacks(t=>this.openLink(t),t=>this.unlinkText(t)),this.insertTableHandler=new _(this.editorView.container,this.document),this.insertLayoutHandler=new R(this.editorView.container,this.document),this.insertMathHandler=new B(this.editorView.container,this.document),this.textToSpeechHandler=new O(t=>{const e=document.getElementById(\"textToSpeech\");e&&(e.innerHTML=t?f.speaker_off:f.speaker_on,e.dataset.tooltip=t?\"stop Reading\":\"start Reading\")}),this.speechToTextHandler=new w(this.document,this.editorView,t=>{const e=document.getElementById(\"speechToText\");e&&(e.innerHTML=t?f.stop_microphone:f.start_microphone,e.dataset.tooltip=t?\"stop\":\"start\")},t=>{const[e,n]=this.getSelectionRange();n>e&&this.document.deleteRange(e,n,this.document.selectedBlockId,this.document.currentOffset);let s=e;this.document.insertAt(t,Object.assign({},this.currentAttributes),s,this.document.selectedBlockId,0,\"\",\"batch\"),s+=t.length,this.setCursorPosition(s)});const U=document.getElementById(\"speechToText\");U&&(U.innerHTML=\"\",U.insertAdjacentHTML(\"afterbegin\",f.start_microphone),U.dataset.tooltip=\"start\");const q=document.getElementById(\"textToSpeech\");q&&(q.innerHTML=\"\",q.insertAdjacentHTML(\"afterbegin\",f.speaker_on),q.dataset.tooltip=\"start Reading\"),this.emojiPickerView=new A,this.codeEditorModal=new S,this.emojiPickerView.onSelect(t=>{var e,n,s,o;const i=null!==(n=null===(e=this.savedSelection)||void 0===e?void 0:e.start)&&void 0!==n?n:0,l=null!==(o=null===(s=this.savedSelection)||void 0===s?void 0:s.end)&&void 0!==o?o:i;l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset,!1),this.document.insertAt(t,Object.assign({},this.currentAttributes),i,this.document.selectedBlockId,0,\"\",\"batch\");const a=i+t.length;this.savedSelection={start:a,end:a},this.setCursorPosition(a)}),this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,undo:!1,redo:!1,hyperlink:!1},this.manualOverride=!1,this.lastPiece=null,this.toolbarView.on(\"toolbarAction\",(t,e=[])=>this.handleToolbarAction(t,e)),this.popupToolbarView.on(\"popupAction\",t=>this.handleToolbarAction(t)),this.document.on(\"documentChanged\",()=>{if(0===this.document.blocks.length||1===this.document.blocks.length&&this.document.blocks[0].pieces.every(t=>\"\"===t.text.trim()||\"​\"===t.text)){const t=document.getElementById(\"loadHtmlButton\");t&&(t.selectedIndex=0)}this.editorView.render()}),this.document.on(\"documentChanged\",()=>{var t;const e=this.document.getHtmlContent();this.emit(\"contentChange\",{html:e,text:(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"})}),this.editorContainer.addEventListener(\"dblclick\",t=>{const e=t.target.closest(\".code_block_wrapper\");if(e){t.preventDefault();const n=e.getAttribute(\"data-id\");if(!n)return;const s=this.document.blocks.find(t=>t.dataId===n);s&&\"code\"===s.type&&this.codeEditorModal.open(s.code||\"\",s.language||\"text\",t=>{s.code=t,this.document.emit(\"documentChanged\",this.document)},()=>{var t;null===(t=this.editorContainer)||void 0===t||t.focus()})}}),this.editorContainer.addEventListener(\"keydown\",t=>{this.syncCurrentAttributesWithCursor(),this.handleKeydown(t)}),this.editorContainer.addEventListener(\"keyup\",()=>this.syncCurrentAttributesWithCursor()),this.editorContainer.addEventListener(\"blur\",()=>{this.hyperlinkHandler.hideHyperlinkViewButton()}),document.addEventListener(\"mouseup\",()=>{this.syncCurrentAttributesWithCursor();const t=this.document.getAllSelectedDataIds();console.log(t,\"dataId lntgerr\")}),document.addEventListener(\"selectionchange\",()=>{const t=window.getSelection();t&&!t.isCollapsed||(this.document.dataIds=[],this.document.selectAll=!1)}),null===(o=document.getElementById(\"fontColor\"))||void 0===o||o.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorWrapper\"),n=document.getElementById(\"fontColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(i=document.getElementById(\"fontColorPicker\"))||void 0===i||i.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),o=document.getElementById(\"fontColorIndicator\");o&&(o.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.applyFontColor(o,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyFontColor(n,s,e)},300))}),null===(l=document.getElementById(\"colorResetFont\"))||void 0===l||l.addEventListener(\"click\",()=>{const t=document.getElementById(\"fontColorPicker\"),e=document.getElementById(\"fontColorIndicator\");t&&(t.value=\"#000000\",e&&(e.style.backgroundColor=\"#000000\"),t.dispatchEvent(new Event(\"input\")))}),document.addEventListener(\"click\",t=>{var e;const n=t.target,s=document.getElementById(\"colorWrapper\"),o=document.getElementById(\"colorBgWrapper\"),i=document.getElementById(\"fontColor\"),l=document.getElementById(\"bgColor\");!s||n.closest(\"#colorWrapper\")||n===i||(null==i?void 0:i.contains(n))||(s.style.display=\"none\"),!o||n.closest(\"#colorBgWrapper\")||n===l||(null==l?void 0:l.contains(n))||(o.style.display=\"none\"),(null===(e=this.editorContainer)||void 0===e?void 0:e.contains(n))||n.closest(\".hyperlink-popup\")||this.hyperlinkHandler.hideHyperlinkViewButton()}),null===(r=document.getElementById(\"bgColor\"))||void 0===r||r.addEventListener(\"click\",t=>{t.stopPropagation();const e=document.getElementById(\"colorBgWrapper\"),n=document.getElementById(\"bgColorPicker\");if(!e||!n)return;const s=\"block\"===e.style.display;e.style.display=s?\"none\":\"block\"}),null===(g=document.getElementById(\"bgColorPicker\"))||void 0===g||g.addEventListener(\"input\",t=>{const e=t.target.value,[n,s]=this.getSelectionRange(),o=document.getElementById(\"bgColorIndicator\");o&&(o.style.backgroundColor=e),this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.applyBgColor(o,s,e)}}):(this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.document.applyBgColor(n,s,e)},300))}),null===(b=document.getElementById(\"colorResetBG\"))||void 0===b||b.addEventListener(\"click\",()=>{const t=document.getElementById(\"bgColorPicker\"),e=document.getElementById(\"bgColorIndicator\");t&&(t.value=\"#ffffff\",e&&(e.style.backgroundColor=\"#ffffff\"),t.dispatchEvent(new Event(\"input\")))}),null===(y=document.getElementById(\"getHtmlButton\"))||void 0===y||y.addEventListener(\"click\",t=>{const e=this.document.getHtmlContent(!0);console.log(\"Editor HTML Content:\",e),this.htmlToJsonParser=new k(e);const n=this.htmlToJsonParser.parse();console.log(\"htmltoJson\",JSON.stringify(n,null,2),n),this.showAcknowledgement(\"HTML copied to clipboard\",2e3)}),null===(T=document.getElementById(\"loadHtmlButton\"))||void 0===T||T.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target,n=e.options[e.selectedIndex].dataset.html||u.TEST_HTML_CODE;this.htmlToJsonParser=new k(n),console.log(this.htmlToJsonParser,\"this.htmlToJsonParser\");const s=this.htmlToJsonParser.parse();this.document.blocks=s,s.length>0&&(this.document.dataIds[0]=s[0].dataId,this.document.selectedBlockId=s[0].dataId),this.document.emit(\"documentChanged\",this);const[o]=this.getSelectionRange();this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let n=o-e;t.fontSize&&this.document.setFontSize(n,e,t.fontSize)}}),console.log(\"blocks\",this.document.blocks,this.document.dataIds,this.document.currentOffset),console.log(\"htmltoJson\",JSON.stringify(s,null,2),s)}),null===(L=document.getElementById(\"fontFamily\"))||void 0===L||L.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.setFontFamily(o,s,e)}}):this.document.setFontFamily(n,s,e)}),null===(N=document.getElementById(\"fontSize\"))||void 0===N||N.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value,[n,s]=this.getSelectionRange();this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let s=0;t.pieces.forEach(t=>{s+=t.text.length});let o=n-s;this.document.setFontSize(o,s,e)}}):this.document.setFontSize(n,s,e)}),null===(H=document.getElementById(\"heading\"))||void 0===H||H.addEventListener(\"change\",t=>{this.undoRedoManager.saveUndoSnapshot();const e=t.target.value||null;if(this.document.dataIds.length>1)this.document.toggleHeadingForMultipleBlocks(this.document.dataIds,e);else{const t=this.document.selectedBlockId||this.document.dataIds[0];t&&this.document.toggleHeading(t,e)}}),null===(M=document.getElementById(\"alignLeft\"))||void 0===M||M.addEventListener(\"click\",()=>{console.log(\"alignment alignLeft\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"left\",t))}),null===(P=document.getElementById(\"alignCenter\"))||void 0===P||P.addEventListener(\"click\",()=>{console.log(\"alignment alignCenter\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"center\",t))}),null===(D=document.getElementById(\"alignRight\"))||void 0===D||D.addEventListener(\"click\",()=>{console.log(\"alignment alignRight\",this.document.dataIds),this.document.dataIds.forEach(t=>this.document.setAlignment(\"right\",t))}),this.editorContainer.addEventListener(\"keydown\",t=>{if((t.ctrlKey||t.metaKey)&&!t.altKey){const e=t.key.toLowerCase();if([\"b\",\"i\",\"u\",\"h\"].includes(e)){t.preventDefault();let n=\"b\";switch(e){case\"b\":n=\"bold\";break;case\"i\":n=\"italic\";break;case\"u\":n=\"underline\";break;case\"h\":n=\"hyperlink\"}this.handleToolbarAction(n)}if(\"z\"===e?(t.preventDefault(),this.undoRedoManager.undo()):\"y\"===e&&(t.preventDefault(),this.undoRedoManager.redo()),\"a\"===e){const t=this.document.handleCtrlASelection();this.document.selectAll=!0,console.log(\"Selected text is inside element with data-id:\",t)}\"l\"===t.key?(t.preventDefault(),this.document.setAlignment(\"left\",this.document.selectedBlockId)):\"e\"===t.key?(t.preventDefault(),this.document.setAlignment(\"center\",this.document.selectedBlockId)):\"r\"===t.key&&(t.preventDefault(),this.document.setAlignment(\"right\",this.document.selectedBlockId))}}),document.addEventListener(\"selectionchange\",this.handleSelectionChange.bind(this)),this.editorContainer.addEventListener(\"click\",t=>{const e=t.target;if(\"A\"===e.tagName||e.closest(\"a\")){t.preventDefault(),t.stopPropagation();const n=\"A\"===e.tagName?e:e.closest(\"a\");this.showLinkPopup(n,t.clientX,t.clientY)}else this.hideLinkPopup()}),document.addEventListener(\"click\",t=>{this.linkPopupView.isPopup(t.target)||this.hideLinkPopup()}),this.document.emit(\"documentChanged\",this.document),this.editorContainer.addEventListener(\"paste\",t=>{var e,s;this.undoRedoManager.saveUndoSnapshot(),t.preventDefault();const o=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"text/html\"),[i,l]=this.getSelectionRange();l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset);let r=[];if(o)r=m(o);else{const e=function(t){const e=[];let n,s=0;for(;null!==(n=a.exec(t));){const o=n.index;let i=n[0],l=\"\";const a=i.match(/[.,!?;:)\\]\\}\"']+$/);if(a&&(l=a[0],i=i.slice(0,-l.length)),d(t,o))continue;o>s&&e.push({text:t.substring(s,o),isUrl:!1});let r=i;r.startsWith(\"http\")||(r=\"https://\"+r),e.push({text:i,isUrl:!0,url:r}),l&&e.push({text:l,isUrl:!1}),s=o+n[0].length}return st.isUrl&&t.url?new n(t.text,Object.assign(Object.assign({},this.currentAttributes),{hyperlink:t.url})):new n(t.text,Object.assign({},this.currentAttributes)))}let c=i;for(const t of r)this.document.insertAt(t.text,Object.assign({},t.attributes),c,this.document.selectedBlockId,0,\"\",\"batch\"),c+=t.text.length;this.setCursorPosition(c)}),this.editorContainer.addEventListener(\"dragover\",t=>{t.preventDefault()}),this.editorContainer.addEventListener(\"drop\",t=>{var e,s;t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const o=null===(e=t.dataTransfer)||void 0===e?void 0:e.getData(\"text/html\"),[i,l]=this.getSelectionRange();l>i&&this.document.deleteRange(i,l,this.document.selectedBlockId,this.document.currentOffset);let a=[];if(o)a=m(o);else{const e=(null===(s=t.dataTransfer)||void 0===s?void 0:s.getData(\"text/plain\"))||\"\";a=[new n(e,Object.assign({},this.currentAttributes))]}let d=i;for(const t of a)this.document.insertAt(t.text,Object.assign({},t.attributes),d,this.document.selectedBlockId,0,\"\",\"batch\"),d+=t.text.length;this.setCursorPosition(d)})}getSelectionRange(){const t=o(this.editorView.container);return t?[t.start,t.end]:[0,0]}applyFontColor(t){const e=window.getSelection();if(!e||0===e.rangeCount)return;e.getRangeAt(0).toString()}handleToolbarAction(t,e=[]){const[n,s]=this.getSelectionRange();switch(t){case\"orderedList\":if(this.document.dataIds.length>1)this.document.toggleOrderedListForMultipleBlocks(this.document.dataIds);else{const t=this.document.selectedBlockId||this.document.dataIds[0];this.document.toggleOrderedList(t)}this.document.updateOrderedListNumbers();break;case\"unorderedList\":this.document.dataIds.forEach(t=>{this.document.toggleUnorderedList(t)});break;case\"image\":this.imageHandler.insertImage();break;case\"speechToText\":this.speechToTextHandler.toggleRecording();break;case\"insert_table\":this.insertTableHandler.openTableModal();break;case\"insert_layout\":this.insertLayoutHandler.openLayoutModal();break;case\"insert_math\":this.insertMathHandler.openMathModal();break;case\"emoji\":this.savedSelection=o(this.editorView.container);const e=document.querySelector('[data-action=\"emoji\"]');e.addEventListener(\"mousedown\",t=>{t.preventDefault()}),e&&this.emojiPickerView.open(e);break;case\"textToSpeech\":const i=this.getTextForSpeech();if(!i)return void console.warn(\"Nothing to read\");this.textToSpeechHandler.toggle(i);break;default:if(n1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleBoldRange(s,e)}}):this.document.toggleBoldRange(n,s);break;case\"italic\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleItalicRange(s,e)}}):this.document.toggleItalicRange(n,s);break;case\"underline\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleUnderlineRange(s,e)}}):this.document.toggleUnderlineRange(n,s);break;case\"strikethrough\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleStrikethroughRange(s,e)}}):this.document.toggleStrikethroughRange(n,s);break;case\"subscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSubscriptRange(s,e)}}):this.document.toggleSubscriptRange(n,s);break;case\"superscript\":this.document.dataIds.length>1?this.document.blocks.forEach(t=>{if(this.document.dataIds.includes(t.dataId)){this.document.selectedBlockId=t.dataId;let e=0;t.pieces.forEach(t=>{e+=t.text.length});let s=n-e;this.document.toggleSuperscriptRange(s,e)}}):this.document.toggleSuperscriptRange(n,s);break;case\"hyperlink\":this.hyperlinkHandler.hanldeHyperlinkClick(n,s,this.document.currentOffset,this.document.selectedBlockId,this.document.blocks)}else this.currentAttributes[t]=!this.currentAttributes[t],this.manualOverride=!0}this.toolbarView.updateActiveStates(this.currentAttributes)}handleSelectionChange(){var t,e,n;const s=window.getSelection();if(!s||0===s.rangeCount||!(null===(t=this.editorContainer)||void 0===t?void 0:t.contains(s.anchorNode)))return this.hyperlinkHandler.hideHyperlinkViewButton(),void this.popupToolbarView.hide();const o=(null===(e=s.anchorNode)||void 0===e?void 0:e.nodeType)===Node.TEXT_NODE?s.anchorNode.parentElement:s.anchorNode;if(null==o?void 0:o.closest(\".tblCell\"))return void this.popupToolbarView.hide();const i=document.getElementById(\"textToSpeech\");s&&!s.isCollapsed&&s.toString().trim()?null==i||i.classList.remove(\"hidden\"):null==i||i.classList.add(\"hidden\");const[l]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=l,s.isCollapsed?(this.document.dataIds=[],this.document.selectAll=!1,this.popupToolbarView.hide()):(this.document.getAllSelectedDataIds(),this.document.dataIds.length===this.document.blocks.length&&this.document.blocks.length>0&&(this.document.selectAll=!0),this.popupToolbarView.show(s)),!s||0===s.rangeCount)return;s&&!0===s.isCollapsed&&(this.document.dataIds=[],this.document.selectAll=!1);const a=s.getRangeAt(0),d=(null===(n=a.startContainer.parentElement)||void 0===n?void 0:n.closest(\"[data-id]\"))||a.startContainer;if(d instanceof HTMLElement){const t=d.getAttribute(\"data-id\")||(a.startContainer instanceof HTMLElement?a.startContainer.getAttribute(\"data-id\"):null);if(t){const e=this.document.blocks.find(e=>e.dataId===t);e&&\"table\"!==e.type&&(this.document.selectedBlockId=t)}}this.syncCurrentAttributesWithCursor()}handleKeydown(t){var e,s;const[o,i]=this.getSelectionRange();if(this.imageHandler.currentCursorLocation=o,(\"Enter\"===t.key||\" \"===t.key)&&this.document.selectedBlockId){const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1!==e){const s=this.document.blocks[e];if(\"text\"===s.type&&Array.isArray(s.pieces)){const o=s.pieces.map(t=>t.text).join(\"\").replace(/\\u200B/g,\"\").trim().match(/^```([a-zA-Z0-9_\\-\\+]*)$/);if(o){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot(),s.type=\"code\",s.language=o[1]||\"text\",s.code=\"\",s.pieces=[],s.class=\"code_block_wrapper\";const i=`data-id-${Date.now()}`;return this.document.blocks.splice(e+1,0,{dataId:i,class:\"paragraph-block\",pieces:[new n(\"​\",{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1})],type:\"text\"}),this.document.selectedBlockId=i,this.document.emit(\"documentChanged\",this.document),void setTimeout(()=>{this.setCursorPosition(this.document.currentOffset+1,i)},0)}}}}if(\"Enter\"===t.key){t.preventDefault(),this.undoRedoManager.saveUndoSnapshot();const s=`data-id-${Date.now()}`,l=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId),a=this.document.blocks[l],d=(null===(e=null==a?void 0:a.pieces)||void 0===e?void 0:e.length)>0?a.pieces[a.pieces.length-1]:null,r=d?Object.assign({},d.attributes):{fontFamily:\"Arial\",fontSize:\"16px\",fontColor:\"#000000\",bgColor:\"#ffffff\",bold:!1,italic:!1,underline:!1,strikethrough:!1};if(a&&\"image\"===a.type)this.document.blocks.splice(l+1,0,{dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",r)],type:\"text\"}),this.document.emit(\"documentChanged\",this),this.imageHandler.setCursorPostion(1,s);else if(!a||\"ol\"!==a.listType&&\"ul\"!==a.listType&&\"li\"!==a.listType){const t=this.getCurrentCursorBlock(),e=null==t?void 0:t.toString();if(e&&a&&\"text\"===a.type){const t=o-this.document.currentOffset,i=[],l=[];let d=0;for(const e of a.pieces){const s=d+e.text.length;if(s<=t)i.push(e.clone());else if(d>=t)l.push(e.clone());else{const s=t-d,o=e.text.slice(0,s),a=e.text.slice(s);o&&i.push(new n(o,Object.assign({},e.attributes))),a&&l.push(new n(a,Object.assign({},e.attributes)))}d=s}a.pieces=i.length>0?i:[new n(\"​\",r)];const c=l.length>0?l:[new n(\"​\",r)],h=this.addBlockAfter(this.document.blocks,e,{dataId:s,class:\"paragraph-block\",pieces:c,type:\"text\"});this.document.blocks=h}else this.document.blocks.push({dataId:s,class:\"paragraph-block\",pieces:[new n(\"​\",r)],type:\"text\"})}else{let t=[new n(\"​\",r)];const e=o-this.document.currentOffset;if(\"text\"===a.type&&a.pieces){const s=[],o=[];let i=0;for(const t of a.pieces){const l=i+t.text.length;if(l<=e)s.push(t.clone());else if(i>=e)o.push(t.clone());else{const l=e-i,a=t.text.slice(0,l),d=t.text.slice(l);a&&s.push(new n(a,Object.assign({},t.attributes))),d&&o.push(new n(d,Object.assign({},t.attributes)))}i=l}a.pieces=s.length>0?s:[new n(\"​\",r)],t=o.length>0?o:[new n(\"​\",r)]}let i={dataId:s,class:\"paragraph-block\",pieces:t,type:\"text\"},d=\"\";if(\"ol\"===a.listType?(i.listType=\"li\",i.listStart=a.listStart+1,i.parentId=a.dataId,d=a.dataId):\"li\"===a.listType?(i.listType=\"li\",i.listStart=a.listStart+1,i.parentId=a.parentId,d=a.parentId):\"ul\"===a.listType&&(i.listType=\"ul\",i.parentId=a.parentId||a.dataId),this.document.blocks.splice(l+1,0,i),\"ol\"===a.listType||\"li\"===a.listType)for(let t=l+2;tt.dataId===this.imageHandler.highLightedImageDataId);return this.imageHandler.deleteImage(),void this.imageHandler.setCursorPostion(1,this.document.blocks[t-1].dataId)}const e=window.getSelection();console.log(e,\"selection lntgerr\");if((this.document.selectAll||this.document.dataIds.length===this.document.blocks.length&&this.document.dataIds.length>0||this.document.dataIds.length>1)&&!(null===(s=window.getSelection())||void 0===s?void 0:s.isCollapsed)){this.undoRedoManager.saveUndoSnapshot();const t=this.document.dataIds[0],e=this.document.blocks.findIndex(e=>e.dataId===t);this.document.deleteBlocks();let s=null,o=0;if(0===this.document.blocks.length){const t=`data-id-${Date.now()}`;this.document.blocks.push({dataId:t,class:\"paragraph-block\",pieces:[new n(\" \")],type:\"text\"}),s=t,o=0,this.editorView.render()}else if(et+e.text.length,0)}return void this.setCursorPosition(o,s)}if(i>o){this.undoRedoManager.saveUndoSnapshot();const t=Math.min(this.document.currentOffset,o);this.document.deleteRange(o,i,this.document.selectedBlockId,t,!0),this.setCursorPosition(o-1);const e=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);console.log(e,\"index lntgerr\");if(null===document.querySelector(`[data-id=\"${this.document.selectedBlockId}\"]`)){let t=0;console.log(t,\" listStart lntgerr\");const e=this.document.blocks.map((e,n)=>(void 0===(null==e?void 0:e.listType)&&null===(null==e?void 0:e.listType)||(\"ol\"===(null==e?void 0:e.listType)?(t=1,e.listStart=1):\"li\"===(null==e?void 0:e.listType)&&(t+=1,e.listStart=t)),e));console.log(e,\"blocks lntgerr\"),this.document.emit(\"documentChanged\",this)}}else if(o===i&&o>0){const t=this.editorView.container.textContent||\"\";let e=o-1;if(o>=2){const n=t.charCodeAt(o-1),s=t.charCodeAt(o-2);n>=56320&&n<=57343&&s>=55296&&s<=56319&&(e=o-2)}this.document.deleteRange(e,o,this.document.selectedBlockId,this.document.currentOffset,!0),this.setCursorPosition(e)}}else if(1!==t.key.length||t.ctrlKey||t.metaKey||t.altKey){if(\"Delete\"===t.key){if(t.preventDefault(),o===i){if(this.undoRedoManager.saveUndoSnapshot(),i>o){const t=Math.min(this.document.currentOffset,o);this.document.deleteRange(o,i,this.document.selectedBlockId,t),this.setCursorPosition(o)}else if(i>o)return this.undoRedoManager.saveUndoSnapshot(),void this.document.deleteRange(o,i,this.document.selectedBlockId);const t=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(-1===t)return;const e=this.document.blocks[t].pieces.reduce((t,e)=>t+e.text.length,0);o-this.document.currentOffseto&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(o,i,this.document.selectedBlockId),this.setCursorPosition(o))}this.hyperlinkHandler.hideHyperlinkViewButton()}}else t.preventDefault(),i>o&&(this.undoRedoManager.saveUndoSnapshot(),this.document.deleteRange(o,i,this.document.selectedBlockId,this.document.currentOffset,!1)),console.log(\"insertat\",t.key,this.currentAttributes,o,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.document.insertAt(t.key,this.currentAttributes,o,this.document.selectedBlockId,this.document.currentOffset,\"\",\"\",!t.isTrusted||!1),this.setCursorPosition(o+1)}extractTextFromDataId(t){const e=window.getSelection();if(console.log(\"selection::\",e),!e||0===e.rangeCount)return{remainingText:\"\",piece:null};const n=e.getRangeAt(0).startContainer;let s=\"\";console.log(0,\"count lntgerr\");const o=this.document.blocks.filter(e=>{if(e.dataId===t)return e}),i=document.querySelector(`[data-id=\"${t}\"]`),l=this.document.getCursorOffsetInParent(`[data-id=\"${t}\"]`);let a=[],d=0;if(o[0].pieces.forEach((t,e)=>{s+=t.text,(null==l?void 0:l.innerText)===t.text&&(d=e,a.push(t))}),o[0].pieces.length>1&&o[0].pieces.forEach((t,e)=>{dt.dataId===e);if(-1===s)return console.error(`Block with dataId \"${e}\" not found.`),t;return[...t.slice(0,s+1),n,...t.slice(s+1)]}syncCurrentAttributesWithCursor(){var t,e;const n=window.getSelection();if(n&&n.rangeCount>0){const e=(null===(t=n.anchorNode)||void 0===t?void 0:t.nodeType)===Node.TEXT_NODE?n.anchorNode.parentElement:n.anchorNode;if(null==e?void 0:e.closest(\".tblCell\"))return}const[s,o]=this.getSelectionRange();console.log(\"log1\",{start:s,end:o});const i=this.document.blocks.findIndex(t=>t.dataId===this.document.selectedBlockId);if(\"image\"===(null===(e=this.document.blocks[i])||void 0===e?void 0:e.type)?this.imageHandler.addStyleToImage(this.document.selectedBlockId||\"\"):this.imageHandler.isImageHighlighted&&this.imageHandler.clearImageStyling(),s===o){const t=this.document.findPieceAtOffset(s,this.document.selectedBlockId);t?(t!==this.lastPiece&&(this.manualOverride=!1,this.lastPiece=t),this.manualOverride||(this.currentAttributes={bold:t.attributes.bold,italic:t.attributes.italic,underline:t.attributes.underline,strikethrough:t.attributes.strikethrough||!1,subscript:t.attributes.subscript||!1,superscript:t.attributes.superscript||!1,hyperlink:t.attributes.hyperlink||!1,fontFamily:t.attributes.fontFamily,fontSize:t.attributes.fontSize,fontColor:t.attributes.fontColor,bgColor:t.attributes.bgColor},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.hyperlinkHandler.hideHyperlinkViewButton()):(this.hyperlinkHandler.hideHyperlinkViewButton(),this.manualOverride||(this.currentAttributes={bold:!1,italic:!1,underline:!1,strikethrough:!1,subscript:!1,superscript:!1,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)),this.lastPiece=null)}else{this.hyperlinkHandler.hideHyperlinkViewButton();const t=this.document.isRangeEntirelyAttribute(s,o,\"bold\"),e=this.document.isRangeEntirelyAttribute(s,o,\"italic\"),n=this.document.isRangeEntirelyAttribute(s,o,\"underline\"),i=this.document.isRangeEntirelyAttribute(s,o,\"strikethrough\"),l=this.document.isRangeEntirelyAttribute(s,o,\"subscript\"),a=this.document.isRangeEntirelyAttribute(s,o,\"superscript\");this.currentAttributes={bold:t,italic:e,underline:n,strikethrough:i,subscript:l,superscript:a,hyperlink:!1},this.toolbarView.updateActiveStates(this.currentAttributes),this.popupToolbarView.updateActiveStates(this.currentAttributes)}const l=document.getElementById(\"heading\");if(l)if(this.document.selectedBlockId){const t=this.document.blocks.find(t=>t.dataId===this.document.selectedBlockId);t&&t.heading?l.value=t.heading:l.value=\"\"}else l.value=\"\"}setCursorPosition(t,e=\"\"){if(\"\"===e)this.editorView.container.focus();else{const t=document.querySelector('[data-id=\"'+e+'\"]');t&&t.focus()}const n=window.getSelection();if(!n)return;const s=document.createRange();let o=0;const i=[this.editorView.container];let l;for(;l=i.pop();)if(3===l.nodeType){const e=l,n=o+e.length;if(t>=o&&t<=n){s.setStart(e,t-o),s.collapse(!0);break}o=n}else if(\"BR\"===l.tagName){if(t===o){s.setStartBefore(l),s.collapse(!0);break}o++}else{const t=l;let e=t.childNodes.length;for(;e--;)i.push(t.childNodes[e])}n.removeAllRanges(),n.addRange(s)}showAcknowledgement(t,e=2e3){const n=document.getElementById(u.TOAST_ID);n&&n.remove();const s=document.createElement(\"div\");s.id=u.TOAST_ID,s.className=\"ti-toast\",s.textContent=t||u.TOAST_DEFAULT_MESSAGE,document.body.appendChild(s),s.offsetHeight,s.classList.add(u.TOAST_SHOW_CLASS),setTimeout(()=>{s.classList.remove(u.TOAST_SHOW_CLASS),setTimeout(()=>s.remove(),200)},e||u.TOAST_DEFAULT_DURATION_MS)}showLinkPopup(t,e,n){this.linkPopupView.show(t,e,n)}hideLinkPopup(){this.linkPopupView.hide()}openLink(t){window.open(t,\"_blank\"),this.hideLinkPopup()}unlinkText(t){this.undoRedoManager.saveUndoSnapshot();const e=t.textContent||\"\",n=(this.editorView.container.textContent||\"\").indexOf(e);-1!==n&&(this.document.formatAttribute(n,n+e.length,\"hyperlink\",!1),this.editorView.render()),this.hideLinkPopup()}getTextForSpeech(){var t,e;const n=window.getSelection();if(n&&!n.isCollapsed){const t=n.toString().trim();if(t)return t}return(null===(e=null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||void 0===e?void 0:e.trim())||\"\"}onContentChange(t){this.on(\"contentChange\",t)}getContent(){return this.document.getHtmlContent()||\"\"}getTextContent(){var t;return(null===(t=this.editorContainer)||void 0===t?void 0:t.textContent)||\"\"}loadHtmlContent(t){this.undoRedoManager.saveUndoSnapshot(),this.htmlToJsonParser=new k(t);const e=this.htmlToJsonParser.parse();this.document.blocks=e,e.length>0?(this.document.dataIds[0]=e[0].dataId,this.document.selectedBlockId=e[0].dataId):(this.document.dataIds=[],this.document.selectedBlockId=null),this.document.emit(\"documentChanged\",this.document)}}window.TextIgniter=N,t.TextIgniter=N});\n","import { TextIgniter } from '@mindfiredigital/textigniter';\nimport '@mindfiredigital/textigniter/dist/styles/text-igniter.css';\n\nexport class TextIgniterComponent extends HTMLElement {\n private textIgniter!: TextIgniter;\n private initialized = false;\n private config = {};\n private template = `
`;\n private initialValue = '';\n\n constructor() {\n super();\n if (!this.firstElementChild) {\n this.innerHTML = this.template;\n }\n }\n\n get value() {\n if (this.textIgniter) {\n return this.textIgniter.getContent();\n }\n return this.initialValue;\n }\n\n set value(val: string) {\n this.initialValue = val;\n if (this.textIgniter) {\n if (this.textIgniter.getContent() !== val) {\n this.textIgniter.loadHtmlContent(val);\n }\n }\n }\n\n static get observedAttributes() {\n return ['config', 'value'];\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n if (name === 'config' && newValue !== oldValue) {\n try {\n console.log(newValue);\n const parsedConfig = JSON.parse(newValue);\n this.config = parsedConfig;\n this.initializeEditor(); // Reinitialize Core when config changes\n } catch (e) {\n console.error('Failed to parse config: ', e);\n }\n } else if (name === 'value' && newValue !== oldValue) {\n this.value = newValue;\n }\n }\n\n connectedCallback() {\n if (this.initialized) {\n return;\n }\n const attrValue = this.getAttribute('value');\n if (attrValue) {\n this.initialValue = attrValue;\n }\n this.initializeEditor();\n }\n\n private initializeEditor() {\n if (this.initialized) {\n return;\n }\n\n const editorContainer = this.querySelector('#editor-container')?.id;\n if (!editorContainer) {\n console.error('Editor element not found inside the DOM.');\n return;\n }\n\n try {\n this.initialized = true;\n this.textIgniter = new TextIgniter(\n editorContainer as any,\n this.config as any\n );\n\n if (this.initialValue) {\n this.textIgniter.loadHtmlContent(this.initialValue);\n }\n\n // Subscribe to content changes and dispatch custom event\n this.textIgniter.onContentChange(data => {\n const event = new CustomEvent('content-change', {\n detail: data,\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(event);\n });\n } catch (error) {\n console.error('Failed to initialize TextIgniter:', error);\n this.initialized = false;\n }\n }\n}\n\nif (!customElements.get('text-igniter')) {\n customElements.define('text-igniter', TextIgniterComponent);\n}\n","\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\".editor-container {\\n border: none;\\n padding: 0;\\n border-radius: 12px;\\n}\\n.toolbar {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n gap: 4px;\\n padding: 8px 12px;\\n margin-bottom: 0;\\n background: #fff;\\n border-radius: 10px;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\\n}\\n.toolbar-separator {\\n width: 1px;\\n height: 24px;\\n background: #e5e7eb;\\n margin: 0 8px;\\n}\\n.toolbar button {\\n padding: 8px;\\n border: none;\\n border-radius: 6px;\\n background: transparent;\\n cursor: pointer;\\n font-size: 15px;\\n font-weight: 500;\\n color: #000000;\\n transition: all 0.15s ease;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n min-width: 32px;\\n height: 32px;\\n}\\n.toolbar button:hover {\\n background: #f3f4f6;\\n}\\n.toolbar button:hover#fontColor,\\n.toolbar button:hover#bgColor {\\n background: transparent !important;\\n}\\n.toolbar button[data-tooltip]:hover#fontColor,\\n.toolbar button[data-tooltip]:hover#bgColor {\\n background: transparent !important;\\n}\\n.toolbar button.active {\\n background: #e5e7eb;\\n color: #111827;\\n}\\n.toolbar button svg {\\n width: 18px;\\n height: 18px;\\n display: block;\\n}\\n.toolbar button[data-tooltip],\\n.toolbar select[data-tooltip],\\n.popup-toolbar button[data-tooltip] {\\n position: relative;\\n}\\n.toolbar button[data-tooltip]::before,\\n.toolbar select[data-tooltip]::before,\\n.popup-toolbar button[data-tooltip]::before {\\n content: attr(data-tooltip);\\n position: absolute;\\n bottom: calc(100% + 8px);\\n left: 50%;\\n transform: translateX(-50%) scale(0.9);\\n padding: 8px 12px;\\n background: #1f2937;\\n color: #fff;\\n font-size: 12px;\\n font-weight: 500;\\n border-radius: 8px;\\n white-space: nowrap;\\n z-index: 1000;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.15s ease, transform 0.15s ease;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\\n}\\n.toolbar button[data-tooltip]::after,\\n.toolbar select[data-tooltip]::after,\\n.popup-toolbar button[data-tooltip]::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: calc(100% + 4px);\\n left: 50%;\\n transform: translateX(-50%) scale(0.9);\\n border: 5px solid transparent;\\n z-index: 1000;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.15s ease, transform 0.15s ease;\\n}\\n.toolbar button[data-tooltip]:hover::before,\\n.toolbar button[data-tooltip]:hover::after,\\n.toolbar select[data-tooltip]:hover::before,\\n.toolbar select[data-tooltip]:hover::after,\\n.popup-toolbar button[data-tooltip]:hover::before,\\n.popup-toolbar button[data-tooltip]:hover::after {\\n opacity: 1;\\n transform: translateX(-50%) scale(1);\\n}\\n#fontFamily,\\n#fontSize {\\n padding: 6px 12px;\\n padding-right: 28px;\\n border: 1px solid #e5e7eb;\\n border-radius: 8px;\\n background-color: #fff;\\n background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\\\");\\n background-repeat: no-repeat;\\n background-position: right 10px center;\\n cursor: pointer;\\n font-size: 14px;\\n font-weight: 500;\\n color: #000000;\\n transition: all 0.15s ease;\\n appearance: none;\\n -webkit-appearance: none;\\n}\\n#fontFamily:hover,\\n#fontSize:hover {\\n border-color: #d1d5db;\\n background-color: #f9fafb;\\n}\\n#fontFamily:focus,\\n#fontSize:focus {\\n outline: none;\\n border-color: #9ca3af;\\n box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15);\\n}\\n#fontFamily {\\n min-width: 130px;\\n}\\n#fontSize {\\n min-width: 75px;\\n}\\n#editor {\\n border: 1px solid #e5e7eb;\\n border-radius: 10px;\\n padding: 20px 24px;\\n min-height: 200px;\\n outline: none;\\n white-space: pre-wrap;\\n overflow-wrap: break-word;\\n background: #fff;\\n margin-top: 12px;\\n font-size: 15px;\\n line-height: 1.6;\\n color: #1f2937;\\n}\\n#editor h1,\\n#editor h2,\\n#editor h3,\\n#editor h4,\\n#editor h5,\\n#editor h6 {\\n font-weight: normal;\\n margin: 0;\\n padding: 0;\\n}\\n#editor:focus {\\n border-color: #d1d5db;\\n box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.1);\\n}\\n.paragraph-block {\\n padding: 2px 0;\\n margin: 0;\\n}\\n#fontColor,\\n#bgColor {\\n font-size: 15px;\\n font-weight: 600;\\n position: relative;\\n padding-bottom: 10px;\\n}\\n#fontColor::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 4px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 14px;\\n height: 3px;\\n border-radius: 2px;\\n}\\n#bgColor::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 4px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 14px;\\n height: 3px;\\n border-radius: 2px;\\n}\\n#fontColorPicker,\\n#bgColorPicker {\\n border: 0;\\n padding: 0;\\n margin: 0;\\n height: 20px;\\n width: 20px;\\n cursor: pointer;\\n border-radius: 4px;\\n}\\n#fontColorWrapper {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n}\\n#hyperlink-container,\\n#hyperlink-container-view {\\n position: absolute;\\n display: none;\\n z-index: 1000;\\n padding: 12px;\\n border: 1px solid #e5e7eb;\\n border-radius: 10px;\\n background: white;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);\\n}\\n#hyperlink-input {\\n width: 220px;\\n margin-right: 8px;\\n padding: 8px 12px;\\n border: 1px solid #e5e7eb;\\n border-radius: 6px;\\n font-size: 14px;\\n transition: all 0.15s ease;\\n}\\n#hyperlink-input:focus {\\n outline: none;\\n border-color: #9ca3af;\\n box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.15);\\n}\\n#apply-hyperlink,\\n#cancel-hyperlink {\\n padding: 8px 14px;\\n border: none;\\n border-radius: 6px;\\n cursor: pointer;\\n font-size: 14px;\\n font-weight: 500;\\n transition: all 0.15s ease;\\n}\\n#apply-hyperlink {\\n background: #1f2937;\\n color: white;\\n}\\n#apply-hyperlink:hover {\\n background: #000000;\\n}\\n#cancel-hyperlink {\\n background: #f3f4f6;\\n color: #000000;\\n}\\n#cancel-hyperlink:hover {\\n background: #e5e7eb;\\n}\\n.temporary-selection-highlight {\\n background-color: rgba(59, 130, 246, 0.3);\\n}\\n.popup-toolbar {\\n position: absolute;\\n z-index: 1001;\\n background: #fff;\\n border-radius: 10px;\\n padding: 6px 8px;\\n display: none;\\n align-items: center;\\n gap: 2px;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 4px 10px rgba(0, 0, 0, 0.05);\\n border: 1px solid #e5e7eb;\\n}\\n.popup-toolbar button {\\n background: transparent;\\n border: none;\\n color: #000000;\\n cursor: pointer;\\n padding: 6px 8px;\\n border-radius: 6px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n transition: all 0.15s ease;\\n}\\n.popup-toolbar button:hover {\\n background: #f3f4f6;\\n}\\n.popup-toolbar button.active {\\n background: #e5e7eb;\\n}\\n.popup-toolbar button svg {\\n width: 16px;\\n height: 16px;\\n display: block;\\n}\\n.popup-toolbar .toolbar-separator {\\n width: 1px;\\n height: 20px;\\n background: #e5e7eb;\\n margin: 0 4px;\\n}\\n.ti-toast {\\n position: fixed;\\n left: 50%;\\n bottom: 24px;\\n transform: translateX(-50%);\\n background: #1f2937;\\n color: #fff;\\n padding: 12px 18px;\\n border-radius: 10px;\\n font-size: 14px;\\n font-weight: 500;\\n z-index: 2000;\\n opacity: 0;\\n pointer-events: none;\\n transition: opacity 0.2s ease, transform 0.2s ease;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\\n}\\n.ti-toast.ti-toast--show {\\n opacity: 1;\\n}\\n.text-igniter a {\\n color: #2563eb;\\n text-decoration: underline;\\n text-decoration-color: rgba(37, 99, 235, 0.3);\\n text-underline-offset: 2px;\\n cursor: pointer;\\n transition: all 0.15s ease;\\n}\\n.text-igniter a:hover {\\n color: #1d4ed8;\\n text-decoration-color: rgba(37, 99, 235, 0.6);\\n}\\n.text-igniter a:visited {\\n color: #7c3aed;\\n}\\n.link-popup {\\n position: absolute;\\n background: #1f2937;\\n border-radius: 8px;\\n padding: 4px;\\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\\n z-index: 1000;\\n display: none;\\n animation: fadeIn 0.15s ease;\\n flex-direction: row;\\n gap: 2px;\\n}\\n.link-popup button {\\n background: transparent;\\n color: white;\\n border: none;\\n padding: 6px;\\n border-radius: 6px;\\n cursor: pointer;\\n font-size: 14px;\\n transition: background 0.15s ease;\\n width: 28px;\\n height: 28px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.link-popup button:hover {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n transform: translateY(-4px);\\n }\\n to {\\n opacity: 1;\\n transform: translateY(0);\\n }\\n}\\n#editor img {\\n max-width: 100%;\\n border-radius: 8px;\\n margin: 8px 0;\\n}\\n#editor .image-float-right {\\n float: right;\\n margin: 0 0 12px 16px;\\n max-width: 200px;\\n border-radius: 8px;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n}\\n#editor .image-float-left {\\n float: left;\\n margin: 0 16px 12px 0;\\n max-width: 200px;\\n border-radius: 8px;\\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\\n}\\n.table_wrapper {\\n margin: 12px 0;\\n width: 100%;\\n overflow-x: auto;\\n}\\n.table_controls {\\n display: flex;\\n justify-content: flex-end;\\n margin-bottom: 6px;\\n opacity: 0;\\n transition: opacity 0.2s ease;\\n}\\n.table_wrapper:hover .table_controls,\\n.table_wrapper:focus-within .table_controls,\\n.layout_wrapper:hover .table_controls,\\n.layout_wrapper:focus-within .table_controls {\\n opacity: 1;\\n}\\n.table_delete_button {\\n background: transparent;\\n color: #ef4444;\\n border: 1px solid transparent;\\n padding: 4px 8px;\\n border-radius: 4px;\\n font-size: 12px;\\n cursor: pointer;\\n transition: all 0.2s ease;\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n}\\n.table_delete_button:hover {\\n background: #fef2f2;\\n border-color: #f87171;\\n}\\n.tbl {\\n width: 100%;\\n border-collapse: collapse;\\n table-layout: fixed;\\n border-radius: 8px;\\n overflow: hidden;\\n box-shadow: 0 0 0 1px #e5e7eb;\\n}\\n.tbl_active {\\n box-shadow: 0 0 0 2px #3b82f6;\\n}\\n.tblCell {\\n border: 1px solid #e5e7eb;\\n padding: 10px 12px;\\n min-width: 80px;\\n background: #fff;\\n vertical-align: top;\\n outline: none;\\n transition: background-color 0.15s ease;\\n}\\n.tblCell:focus,\\n.tblCell_focused {\\n background: #f8fafc;\\n outline: 2px solid #3b82f6;\\n outline-offset: -2px;\\n}\\n.tbl_header_cell {\\n background: #f4f5f8;\\n font-weight: 600;\\n border-bottom-width: 2px;\\n}\\n.tblCell[data-placeholder]:empty:before {\\n content: attr(data-placeholder);\\n color: #9ca3af;\\n pointer-events: none;\\n}\\n.table_modal {\\n position: fixed;\\n inset: 0;\\n display: flex;\\n border: none;\\n align-items: center;\\n justify-content: center;\\n z-index: 99;\\n opacity: 0;\\n transition: all 0.1s ease;\\n visibility: hidden;\\n}\\n.table_modal_visible {\\n opacity: 1;\\n visibility: visible;\\n}\\n.main_modal {\\n position: absolute;\\n inset: 90px 1170px;\\n background: #f5f2f2;\\n border-radius: 12px;\\n width: 100%;\\n max-width: 380px;\\n height: 30%;\\n max-height: 220px;\\n box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.04);\\n overflow: hidden;\\n}\\n.layout_main_modal {\\n height: auto;\\n max-height: 380px;\\n}\\n.table_modal_visible .main_modal {\\n transform: scale(1);\\n}\\n.main_modal_header {\\n padding: 16px 20px;\\n border-bottom: 1px solid #e5e7eb;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n}\\n.main_modal_title {\\n margin: 0;\\n font-size: 16px;\\n font-weight: 600;\\n color: #111827;\\n}\\n.main_modal_close {\\n background: transparent;\\n border: none;\\n color: #6b7280;\\n cursor: pointer;\\n padding: 4px;\\n border-radius: 6px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transition: background 0.15s ease, color 0.15s ease;\\n}\\n.main_modal_close:hover {\\n background: #f3f4f6;\\n color: #111827;\\n}\\n.main_modal_body {\\n padding: 20px;\\n}\\n.main_modal-divider {\\n display: flex;\\n align-items: center;\\n text-align: center;\\n margin: 20px 0;\\n color: #9ca3af;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.main_modal-divider::before,\\n.main_modal-divider::after {\\n content: \\\"\\\";\\n flex: 1;\\n border-bottom: 1px solid #e5e7eb;\\n}\\n.main_modal-divider span {\\n padding: 0 10px;\\n}\\n.main_modal_inputs {\\n display: flex;\\n gap: 16px;\\n}\\n.all_input {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n gap: 6px;\\n}\\n.ti-input-label {\\n font-size: 13px;\\n font-weight: 500;\\n color: #374151;\\n}\\n.modal_inputs {\\n width: 100%;\\n padding: 8px 12px;\\n border: 1px solid #d1d5db;\\n border-radius: 6px;\\n font-size: 14px;\\n transition: all 0.15s ease;\\n box-sizing: border-box;\\n}\\n.modal_inputs:focus {\\n outline: none;\\n border-color: #3b82f6;\\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\\n}\\n.main_modal_footer {\\n padding: 16px 20px;\\n background: #f9fafb;\\n border-top: 1px solid #e5e7eb;\\n display: flex;\\n justify-content: flex-end;\\n gap: 10px;\\n}\\n.modal_close_button {\\n padding: 8px 16px;\\n border-radius: 6px;\\n font-size: 14px;\\n font-weight: 500;\\n cursor: pointer;\\n transition: all 0.15s ease;\\n border: 1px solid transparent;\\n}\\n.modal_close_button_secondary {\\n background: #fff;\\n border-color: #d1d5db;\\n color: #374151;\\n}\\n.modal_close_button_secondary:hover {\\n background: #f3f4f6;\\n}\\n.modal_close_button_primary {\\n background: #3b82f6;\\n color: #fff;\\n}\\n.modal_close_button_primary:hover {\\n background: #2563eb;\\n}\\n.code_block_wrapper {\\n background: #f8f8f8;\\n border: 1px solid #e2e2e2;\\n border-radius: 8px;\\n margin: 12px 0;\\n overflow: hidden;\\n font-family:\\n \\\"Fira Code\\\",\\n \\\"Cascadia Code\\\",\\n \\\"Courier New\\\",\\n monospace;\\n position: relative;\\n cursor: default;\\n user-select: none;\\n syntax: none;\\n}\\n.code_block_wrapper * {\\n pointer-events: none;\\n}\\n.code_block_header {\\n background: #f0f0f0;\\n border-bottom: 1px solid #e2e2e2;\\n padding: 5px 10px;\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n user-select: none;\\n}\\n.code_block_language {\\n font-size: 11px;\\n font-weight: 600;\\n color: #888;\\n font-family: \\\"Fira Code\\\", monospace;\\n letter-spacing: 0.04em;\\n flex: 0 0 auto;\\n}\\n.code_block_hint {\\n font-size: 11px;\\n color: #bbb;\\n flex: 1;\\n}\\n.code_block_cancel {\\n width: 20px;\\n height: 20px;\\n border-radius: 50%;\\n border: none;\\n background: transparent;\\n color: #bbb;\\n font-size: 16px;\\n pointer-events: all;\\n line-height: 1;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 0 0 auto;\\n transition: background 0.15s, color 0.15s;\\n padding: 0;\\n}\\n.code_block_cancel:hover {\\n background: #ffe4e4;\\n color: #dc2626;\\n}\\n.code_block_content {\\n margin: 0;\\n padding: 14px 16px;\\n color: #1e1e1e;\\n background: #f8f8f8;\\n overflow-x: auto;\\n font-size: 13.5px;\\n line-height: 1.65;\\n white-space: pre;\\n tab-size: 2;\\n}\\n.code_editor_modal {\\n position: fixed;\\n inset: 0;\\n background: rgba(0, 0, 0, 0.25);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 9999;\\n backdrop-filter: blur(2px);\\n}\\n.code_editor_modal_content {\\n background: #ffffff;\\n width: 88vw;\\n height: 88vh;\\n border-radius: 12px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n border: 1px solid #e0e0e0;\\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);\\n}\\n.code_editor_modal_header {\\n background: #f5f5f5;\\n padding: 9px 14px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n border-bottom: 1px solid #e2e2e2;\\n flex: 0 0 auto;\\n}\\n.code_editor_modal_title {\\n font-size: 12px;\\n font-weight: 600;\\n color: #888;\\n font-family: \\\"Fira Code\\\", monospace;\\n letter-spacing: 0.04em;\\n}\\n.code_editor_modal_actions {\\n display: flex;\\n gap: 6px;\\n}\\n.copy_editor_btn {\\n font-size: 12px;\\n font-family: inherit;\\n padding: 4px 12px;\\n border-radius: 6px;\\n border: 1px solid #d4d4d4;\\n background: #fff;\\n color: #444;\\n cursor: pointer;\\n transition: background 0.15s, border-color 0.15s;\\n white-space: nowrap;\\n}\\n.copy_editor_btn:hover {\\n background: #f0f0f0;\\n}\\n.copy_editor_btn--primary {\\n background: #1a1a1a;\\n color: #fff;\\n border-color: #1a1a1a;\\n}\\n.copy_editor_btn--primary:hover {\\n background: #333;\\n border-color: #333;\\n}\\n.copy_editor_btn--cancel:hover {\\n background: #ffe4e4;\\n color: #dc2626;\\n border-color: #fca5a5;\\n}\\n.editor_moal_wrapper {\\n flex: 1;\\n display: flex;\\n overflow: hidden;\\n position: relative;\\n background: #fff;\\n}\\n.editor_moal_line_number {\\n padding: 14px 10px 14px 12px;\\n background: #f8f8f8;\\n border-right: 1px solid #ebebeb;\\n font-family: \\\"Fira Code\\\", monospace;\\n font-size: 13px;\\n line-height: 1.65;\\n color: #ccc;\\n text-align: right;\\n user-select: none;\\n overflow: hidden;\\n min-width: 44px;\\n flex: 0 0 auto;\\n}\\n.editor_moal_line_number span {\\n display: block;\\n}\\n.modal_editor_text_area,\\n.editor_modal_pre_block {\\n position: absolute;\\n top: 0;\\n left: 44px;\\n width: calc(100% - 44px);\\n height: 100%;\\n margin: 0;\\n padding: 14px 16px;\\n border: none;\\n font-family:\\n \\\"Fira Code\\\",\\n \\\"Cascadia Code\\\",\\n \\\"Courier New\\\",\\n monospace;\\n font-size: 13.5px;\\n line-height: 1.65;\\n white-space: pre;\\n overflow: auto;\\n tab-size: 2;\\n box-sizing: border-box;\\n}\\n.modal_editor_text_area {\\n color: transparent;\\n background: transparent;\\n caret-color: #1a1a1a;\\n resize: none;\\n outline: none;\\n z-index: 2;\\n}\\n.editor_modal_pre_block {\\n color: #1e1e1e;\\n background: #fff;\\n z-index: 1;\\n pointer-events: none;\\n overflow: hidden;\\n}\\n.modal_editor_highlight {\\n display: block;\\n}\\n.layout_wrapper {\\n margin: 12px 0;\\n width: 100%;\\n position: relative;\\n}\\n.layout_active {\\n outline: 2px solid #3b82f6;\\n outline-offset: 4px;\\n border-radius: 4px;\\n}\\n\")"],"mappings":"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F;;;ACvB8B,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","names":["t","e","n","s","o","i","l","a","d","r","c","h","u","p","m","g","C","k","v","I","x","E","w","_","f","b","y","T","L","N"]} \ No newline at end of file diff --git a/packages/web-component/src/component/TextIgniterComponent.ts b/packages/web-component/src/component/TextIgniterComponent.ts index 648a590..d3af875 100644 --- a/packages/web-component/src/component/TextIgniterComponent.ts +++ b/packages/web-component/src/component/TextIgniterComponent.ts @@ -6,6 +6,7 @@ export class TextIgniterComponent extends HTMLElement { private initialized = false; private config = {}; private template = `
`; + private initialValue = ''; constructor() { super(); @@ -14,8 +15,24 @@ export class TextIgniterComponent extends HTMLElement { } } + get value() { + if (this.textIgniter) { + return this.textIgniter.getContent(); + } + return this.initialValue; + } + + set value(val: string) { + this.initialValue = val; + if (this.textIgniter) { + if (this.textIgniter.getContent() !== val) { + this.textIgniter.loadHtmlContent(val); + } + } + } + static get observedAttributes() { - return ['config']; + return ['config', 'value']; } attributeChangedCallback(name: string, oldValue: string, newValue: string) { @@ -28,6 +45,8 @@ export class TextIgniterComponent extends HTMLElement { } catch (e) { console.error('Failed to parse config: ', e); } + } else if (name === 'value' && newValue !== oldValue) { + this.value = newValue; } } @@ -35,6 +54,10 @@ export class TextIgniterComponent extends HTMLElement { if (this.initialized) { return; } + const attrValue = this.getAttribute('value'); + if (attrValue) { + this.initialValue = attrValue; + } this.initializeEditor(); } @@ -56,6 +79,10 @@ export class TextIgniterComponent extends HTMLElement { this.config as any ); + if (this.initialValue) { + this.textIgniter.loadHtmlContent(this.initialValue); + } + // Subscribe to content changes and dispatch custom event this.textIgniter.onContentChange(data => { const event = new CustomEvent('content-change', {