@aquera/nile-elements 1.1.8-beta-1.2 → 1.1.8-beta-1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -13860,7 +13860,7 @@ nile-badge::part(content) {
13860
13860
  <nile-button @click=${()=>this.onApply()}>Apply</nile-button>
13861
13861
  </div>
13862
13862
  </nile-popover>
13863
- `}};function Pp(e,t){for(;e&&e!==t;){if(e instanceof HTMLElement){const t=getComputedStyle(e).display;if(e.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===t||"list-item"===t)return e}e=e?.parentNode||null}return t}function Rp(e){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return`#${Number(t[1]).toString(16).padStart(2,"0")}${Number(t[2]).toString(16).padStart(2,"0")}${Number(t[3]).toString(16).padStart(2,"0")}`}function Gp(e,t,M){const i=window.getSelection();if(!i||0===i.rangeCount)return;const n=i.getRangeAt(0),o={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t]??[t],r=e=>o.includes(e.tagName.toLowerCase());function s(e){const t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}}function N(e){e.querySelectorAll(o.join(",")).forEach((e=>{if(!e.textContent?.trim())return void e.remove();Array.from(e.querySelectorAll(o.join(","))).forEach((t=>{if(t!==e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}}))}))}function a(e){Array.from(e.querySelectorAll(o.join(","))).forEach((e=>{const t=e.nextSibling;if(t instanceof HTMLElement&&r(t)){for(;t.firstChild;)e.appendChild(t.firstChild);t.remove()}}))}if(n.collapsed){let o=!1,l=n.startContainer;for(;l&&l!==e;){if(l instanceof HTMLElement&&r(l)){o=!0;break}l=l.parentNode}if(o&&l instanceof HTMLElement)s(l);else{const e=document.createElement(t);M&&Object.entries(M).forEach((([t,M])=>e.setAttribute(t,M))),e.appendChild(document.createTextNode("​")),n.insertNode(e),n.setStart(e.firstChild,1),n.collapse(!0),i.removeAllRanges(),i.addRange(n)}return N(e),void a(e)}n.startContainer.nodeType===Node.TEXT_NODE&&n.startContainer.splitText(n.startOffset),n.endContainer.nodeType===Node.TEXT_NODE&&n.endContainer.splitText(n.endOffset);const l=document.createTreeWalker(n.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:e=>{if(!e.nodeValue?.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(e);return n.compareBoundaryPoints(Range.END_TO_START,t)<0&&n.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),g=[];let D;for(;D=l.nextNode();)g.push(D);const u=g.length>0&&g.every((t=>{let M=t;for(;M&&M!==e;){if(M instanceof HTMLElement&&r(M))return!0;M=M.parentNode}return!1}));if(u){const M=g[0],i=g[g.length-1],n=M.parentElement?.closest(t);if(n&&n.contains(i)){const e=n.parentNode;if(e){const o=document.createRange();o.setStartBefore(n),o.setEndBefore(M);const r=o.cloneContents(),s=document.createRange();s.setStartAfter(i),s.setEndAfter(n);const N=s.cloneContents(),a=document.createRange();a.setStartBefore(M),a.setEndAfter(i);const l=a.extractContents(),g=document.createDocumentFragment();if(r.childNodes.length){const e=document.createElement(t);for(;r.firstChild;)e.appendChild(r.firstChild);g.appendChild(e)}for(;l.firstChild;)g.appendChild(l.firstChild);if(N.childNodes.length){const e=document.createElement(t);for(;N.firstChild;)e.appendChild(N.firstChild);g.appendChild(e)}e.insertBefore(g,n),e.removeChild(n)}}else g.forEach((t=>{let M=t;for(;M&&M!==e;){if(M instanceof HTMLElement&&r(M)){s(M);break}M=M.parentNode}}))}else g.forEach((e=>{const i=e.parentElement?.closest("a, .mention, nile-mention");if(i)return;const n=document.createElement(t);M&&Object.entries(M).forEach((([e,t])=>n.setAttribute(e,t))),e.parentNode?.insertBefore(n,e),n.appendChild(e)}));N(e),a(e),i.removeAllRanges(),i.addRange(n)}function Bp(e,t){const M=window.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0),n=i.commonAncestorContainer,o=[],r=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t=e;return i.intersectsNode(t)&&/^(P|DIV|LI|H[1-6])$/.test(t.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});let s=r.nextNode();for(;s;)o.push(s),s=r.nextNode();if(0===o.length){const t=Pp(M.focusNode,e);t&&o.push(t)}o.forEach((e=>{e.style.textAlign=t}))}function _p(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0);if(i.collapsed){const e=document.createElement("span");e.style.fontFamily=t,e.appendChild(document.createTextNode("​")),i.insertNode(e);const n=document.createRange();return n.setStart(e.firstChild,1),n.collapse(!0),M.removeAllRanges(),void M.addRange(n)}!function(e,t,M){const i=document.createElement(t);M&&Object.entries(M).forEach((([e,t])=>i.setAttribute(e,t)));try{e.surroundContents(i)}catch{const t=e.extractContents();i.appendChild(t),e.insertNode(i)}}(i,"span",{style:`font-family:${t}`})}function Fp(e,t,M){for(;t&&t!==e;){if(t instanceof HTMLSpanElement&&t.hasAttribute(M))return t;t=t.parentNode}return null}function Jp(e,t,M,i){const n=window.getSelection();if(!n||0===n.rangeCount)return;const o=n.getRangeAt(0);if(!e.contains(o.commonAncestorContainer))return;const r=o.cloneRange();if(r.collapsed){const o=Fp(e,r.startContainer,i);if(o)return o.style[t]=M,void $p(e,i,t);const s=document.createElement("span");s.setAttribute(i,"1"),s.style[t]=M,s.appendChild(document.createTextNode("​")),r.insertNode(s);const N=document.createRange();return N.setStart(s.firstChild,1),N.collapse(!0),n.removeAllRanges(),n.addRange(N),void $p(e,i,t)}const s=Fp(e,r.startContainer,i),N=Fp(e,r.endContainer,i);if(s&&s===N){if(function(e,t){const M=document.createRange();return M.selectNodeContents(t),e.compareBoundaryPoints(Range.START_TO_START,M)<=0&&e.compareBoundaryPoints(Range.END_TO_END,M)>=0}(r,s))s.style[t]=M;else{const e=function(e,t,M,i,n){const o=e.style[i],r=document.createRange();r.setStart(e,0),r.setEnd(t.startContainer,t.startOffset);const s=document.createRange();s.setStart(t.endContainer,t.endOffset),s.setEnd(e,e.childNodes.length);const N=document.createDocumentFragment(),a=e=>{const t=document.createElement("span");return t.setAttribute(M,"1"),t.style[i]=e,t};if(Hp(r)){const e=a(o);e.appendChild(r.cloneContents()),N.appendChild(e)}const l=a(n);if(l.appendChild(t.cloneContents()),N.appendChild(l),Hp(s)){const e=a(o);e.appendChild(s.cloneContents()),N.appendChild(e)}return e.replaceWith(N),l}(s,r,i,t,M),n=window.getSelection(),o=document.createRange();o.selectNodeContents(e),n?.removeAllRanges(),n?.addRange(o)}return void $p(e,i,t)}const a=(()=>{let e=r.commonAncestorContainer;for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e})(),l=document.createTreeWalker(a||e,NodeFilter.SHOW_TEXT,{acceptNode:e=>{if(!e.nodeValue||!e.nodeValue.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(e);return r.compareBoundaryPoints(Range.END_TO_START,t)<0&&r.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),g=[];let D;for(;D=l.nextNode();)g.push(D);g.forEach((n=>{let o=0,s=n.length;n===r.startContainer&&(o=r.startOffset),n===r.endContainer&&(s=r.endOffset),o>0&&(n=n.splitText(o)),s<n.length&&n.splitText(s);const N=Fp(e,n,i);if(N)return void(N.style[t]=M);const a=document.createElement("span");a.setAttribute(i,"1"),a.style[t]=M;n.parentElement.replaceChild(a,n),a.appendChild(n)})),$p(e,i,t),n.removeAllRanges(),n.addRange(r)}function Hp(e){if(e.collapsed)return!1;return(e.cloneContents().textContent||"").length>0}function $p(e,t,M){const i=Array.from(e.querySelectorAll(`span[${t}]`)),n=e=>e.style[M];i.forEach((e=>{Array.from(e.querySelectorAll(`span[${t}]`)).forEach((t=>{if(n(t)===n(e)){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}}));const M=e.previousSibling;if(M instanceof HTMLSpanElement&&M.hasAttribute(t)&&n(M)===n(e)){for(;e.firstChild;)M.appendChild(e.firstChild);return void e.remove()}const i=e.nextSibling;if(i instanceof HTMLSpanElement&&i.hasAttribute(t)&&n(i)===n(e)){for(;i.firstChild;)e.appendChild(i.firstChild);i.remove()}}))}function Xp(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0);if(i.collapsed){const n=Pp(i.startContainer,e);if(!n||n===e||0===n.childNodes.length){const e=document.createElement(t),n=document.createElement("li");n.appendChild(document.createElement("br")),e.appendChild(n),i.insertNode(e);const o=document.createRange();return o.selectNodeContents(n),o.collapse(!0),M.removeAllRanges(),void M.addRange(o)}const o=document.createElement(t),r=document.createElement("li");for(;n.firstChild;)r.appendChild(n.firstChild);o.appendChild(r),n.replaceWith(o);const s=document.createRange();return s.selectNodeContents(r),s.collapse(!0),M.removeAllRanges(),void M.addRange(s)}const n=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{if(!(e instanceof HTMLElement))return NodeFilter.FILTER_SKIP;if(!/^(P|DIV|LI|H[1-6])$/.test(e.tagName))return NodeFilter.FILTER_SKIP;const t=document.createRange();t.selectNodeContents(e);return i.compareBoundaryPoints(Range.END_TO_START,t)<0&&i.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let r;for(;r=o.nextNode();)n.push(r);if(0===n.length){const t=Pp(i.startContainer,e);t&&n.push(t)}const s=n[0].closest("li");if(s){const e=s.closest("ul,ol");if(!e)return;const M=s.style.textAlign||e.style.textAlign||"";if(e.tagName.toLowerCase()===t){const t=document.createDocumentFragment();for(const i of Array.from(e.querySelectorAll("li"))){const e=document.createElement("p");for(e.style.textAlign=i.style.textAlign||M||"";i.firstChild;)e.appendChild(i.firstChild);t.appendChild(e)}e.replaceWith(t)}else{const i=document.createElement(t);for(;e.firstChild;){const t=e.firstChild;t.style.textAlign=t.style.textAlign||M||"",i.appendChild(t)}e.replaceWith(i)}return}const N=document.createElement(t);for(const e of n){const t=document.createElement("li"),M=e.style.textAlign;for(M&&(t.style.textAlign=M);e.firstChild;)t.appendChild(e.firstChild);N.appendChild(t)}n[0].replaceWith(N);for(let e=1;e<n.length;e++)n[e].remove()}e([ue({attribute:!1})],Wp.prototype,"editorEl",void 0),e([ue({type:String})],Wp.prototype,"placeholder",void 0),e([ce()],Wp.prototype,"linkValue",void 0),Wp=e([le("nile-rte-link")],Wp);const qp=r`
13863
+ `}};function Pp(e,t){for(;e&&e!==t;){if(e instanceof HTMLElement){const t=getComputedStyle(e).display;if(e.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===t||"list-item"===t)return e}e=e?.parentNode||null}return t}function Rp(e){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return`#${Number(t[1]).toString(16).padStart(2,"0")}${Number(t[2]).toString(16).padStart(2,"0")}${Number(t[3]).toString(16).padStart(2,"0")}`}function Gp(e,t,M){const i=window.getSelection();if(!i||0===i.rangeCount)return;const n=i.getRangeAt(0),o={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t]??[t],r=e=>o.includes(e.tagName.toLowerCase());function s(e){const t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}}function N(e){e.querySelectorAll(o.join(",")).forEach((e=>{if(!e.textContent?.trim())return void e.remove();Array.from(e.querySelectorAll(o.join(","))).forEach((t=>{if(t!==e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}}))}))}function a(e){Array.from(e.querySelectorAll(o.join(","))).forEach((e=>{const t=e.nextSibling;if(t instanceof HTMLElement&&r(t)){for(;t.firstChild;)e.appendChild(t.firstChild);t.remove()}}))}if(n.collapsed){let o=!1,l=n.startContainer;for(;l&&l!==e;){if(l instanceof HTMLElement&&r(l)){o=!0;break}l=l.parentNode}if(o&&l instanceof HTMLElement)s(l);else{const e=document.createElement(t);M&&Object.entries(M).forEach((([t,M])=>e.setAttribute(t,M))),e.appendChild(document.createTextNode("​")),n.insertNode(e),n.setStart(e.firstChild,1),n.collapse(!0),i.removeAllRanges(),i.addRange(n)}return N(e),void a(e)}n.startContainer.nodeType===Node.TEXT_NODE&&n.startContainer.splitText(n.startOffset),n.endContainer.nodeType===Node.TEXT_NODE&&n.endContainer.splitText(n.endOffset);const l=document.createTreeWalker(n.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:e=>{if(!e.nodeValue?.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(e);return n.compareBoundaryPoints(Range.END_TO_START,t)<0&&n.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),g=[];let D;for(;D=l.nextNode();)g.push(D);const u=g.length>0&&g.every((t=>{let M=t;for(;M&&M!==e;){if(M instanceof HTMLElement&&r(M))return!0;M=M.parentNode}return!1}));if(u){const M=g[0],i=g[g.length-1],n=M.parentElement?.closest(t);if(n&&n.contains(i)){const e=n.parentNode;if(e){const o=document.createRange();o.setStartBefore(n),o.setEndBefore(M);const r=o.cloneContents(),s=document.createRange();s.setStartAfter(i),s.setEndAfter(n);const N=s.cloneContents(),a=document.createRange();a.setStartBefore(M),a.setEndAfter(i);const l=a.extractContents(),g=document.createDocumentFragment();if(r.childNodes.length){const e=document.createElement(t);for(;r.firstChild;)e.appendChild(r.firstChild);g.appendChild(e)}for(;l.firstChild;)g.appendChild(l.firstChild);if(N.childNodes.length){const e=document.createElement(t);for(;N.firstChild;)e.appendChild(N.firstChild);g.appendChild(e)}e.insertBefore(g,n),e.removeChild(n)}}else g.forEach((t=>{let M=t;for(;M&&M!==e;){if(M instanceof HTMLElement&&r(M)){s(M);break}M=M.parentNode}}))}else g.forEach((e=>{const i=e.parentElement?.closest("a, .mention, nile-mention");if(i)return;const n=document.createElement(t);M&&Object.entries(M).forEach((([e,t])=>n.setAttribute(e,t))),e.parentNode?.insertBefore(n,e),n.appendChild(e)}));N(e),a(e),i.removeAllRanges(),i.addRange(n)}function Bp(e,t){const M=window.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0),n=i.commonAncestorContainer,o=[],r=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t=e;return i.intersectsNode(t)&&/^(P|DIV|LI|H[1-6])$/.test(t.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});let s=r.nextNode();for(;s;)o.push(s),s=r.nextNode();if(0===o.length){const t=Pp(M.focusNode,e);t&&o.push(t)}o.forEach((e=>{e.style.textAlign=t}))}function _p(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0);if(i.collapsed){const e=document.createElement("span");e.style.fontFamily=t,e.appendChild(document.createTextNode("​")),i.insertNode(e);const n=document.createRange();return n.setStart(e.firstChild,1),n.collapse(!0),M.removeAllRanges(),void M.addRange(n)}!function(e,t,M){const i=document.createElement(t);M&&Object.entries(M).forEach((([e,t])=>i.setAttribute(e,t)));try{e.surroundContents(i)}catch{const t=e.extractContents();i.appendChild(t),e.insertNode(i)}}(i,"span",{style:`font-family:${t}`})}function Fp(e,t,M){for(;t&&t!==e;){if(t instanceof HTMLSpanElement&&t.hasAttribute(M))return t;t=t.parentNode}return null}function Jp(e,t,M,i){const n=window.getSelection();if(!n||0===n.rangeCount)return;const o=n.getRangeAt(0);if(!e.contains(o.commonAncestorContainer))return;const r=o.cloneRange();if(r.collapsed){const o=Fp(e,r.startContainer,i);if(o)return o.style[t]=M,void $p(e,i,t);const s=document.createElement("span");s.setAttribute(i,"1"),s.style[t]=M,s.appendChild(document.createTextNode("​")),r.insertNode(s);const N=document.createRange();return N.setStart(s.firstChild,1),N.collapse(!0),n.removeAllRanges(),n.addRange(N),void $p(e,i,t)}const s=Fp(e,r.startContainer,i),N=Fp(e,r.endContainer,i);if(s&&s===N){if(function(e,t){const M=document.createRange();return M.selectNodeContents(t),e.compareBoundaryPoints(Range.START_TO_START,M)<=0&&e.compareBoundaryPoints(Range.END_TO_END,M)>=0}(r,s))s.style[t]=M;else{const e=function(e,t,M,i,n){const o=e.style[i],r=document.createRange();r.setStart(e,0),r.setEnd(t.startContainer,t.startOffset);const s=document.createRange();s.setStart(t.endContainer,t.endOffset),s.setEnd(e,e.childNodes.length);const N=document.createDocumentFragment(),a=e=>{const t=document.createElement("span");return t.setAttribute(M,"1"),t.style[i]=e,t};if(Hp(r)){const e=a(o);e.appendChild(r.cloneContents()),N.appendChild(e)}const l=a(n);if(l.appendChild(t.cloneContents()),N.appendChild(l),Hp(s)){const e=a(o);e.appendChild(s.cloneContents()),N.appendChild(e)}return e.replaceWith(N),l}(s,r,i,t,M),n=window.getSelection(),o=document.createRange();o.selectNodeContents(e),n?.removeAllRanges(),n?.addRange(o)}return void $p(e,i,t)}const a=(()=>{let e=r.commonAncestorContainer;for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e})(),l=document.createTreeWalker(a||e,NodeFilter.SHOW_TEXT,{acceptNode:e=>{if(!e.nodeValue||!e.nodeValue.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(e);return r.compareBoundaryPoints(Range.END_TO_START,t)<0&&r.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),g=[];let D;for(;D=l.nextNode();)g.push(D);g.forEach((n=>{let o=0,s=n.length;n===r.startContainer&&(o=r.startOffset),n===r.endContainer&&(s=r.endOffset),o>0&&(n=n.splitText(o)),s<n.length&&n.splitText(s);const N=Fp(e,n,i);if(N)return void(N.style[t]=M);const a=document.createElement("span");a.setAttribute(i,"1"),a.style[t]=M;n.parentElement.replaceChild(a,n),a.appendChild(n)})),$p(e,i,t),n.removeAllRanges(),n.addRange(r)}function Hp(e){if(e.collapsed)return!1;return(e.cloneContents().textContent||"").length>0}function $p(e,t,M){const i=Array.from(e.querySelectorAll(`span[${t}]`)),n=e=>e.style[M];i.forEach((e=>{Array.from(e.querySelectorAll(`span[${t}]`)).forEach((t=>{if(n(t)===n(e)){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}}));const M=e.previousSibling;if(M instanceof HTMLSpanElement&&M.hasAttribute(t)&&n(M)===n(e)){for(;e.firstChild;)M.appendChild(e.firstChild);return void e.remove()}const i=e.nextSibling;if(i instanceof HTMLSpanElement&&i.hasAttribute(t)&&n(i)===n(e)){for(;i.firstChild;)e.appendChild(i.firstChild);i.remove()}}))}function Xp(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0);function n(e){e.style.paddingInlineStart="0",e.style.margin="0"}function o(e){const t=document.getSelection();if(!t)return;const M=document.createRange();M.selectNodeContents(e),M.collapse(!0),t.removeAllRanges(),t.addRange(M)}function r(t){for(;t&&t!==e;){if(t instanceof HTMLElement){const e=getComputedStyle(t).display;if(t.tagName.match(/^(P|DIV|H[1-6]|LI)$/)||"block"===e||"list-item"===e)return t}t=t.parentNode}return null}function s(e,t){const M=document.createElement(t);for(n(M);e.firstChild;)M.appendChild(e.firstChild);e.replaceWith(M)}if(i.collapsed){const M=r(i.startContainer),a=M?.closest("ul,ol");if(a&&a.tagName.toLowerCase()===t)return void function(e){const t=e.closest("li");if(!t)return;const M=t.parentElement,i=document.createElement("p");for(t.style.textAlign&&(i.style.textAlign=t.style.textAlign);t.firstChild;)i.appendChild(t.firstChild);M.parentNode?.insertBefore(i,M.nextSibling),t.remove(),0===M.childNodes.length&&M.remove(),o(i)}(M);if(a&&a.tagName.toLowerCase()!==t)return void s(a,t);if(!M||M===e||0===M.childNodes.length||(N=M,!N.textContent?.trim()&&!N.querySelector("img,br"))){const e=document.createElement(t),M=document.createElement("li");return M.appendChild(document.createElement("br")),e.appendChild(M),n(e),i.insertNode(e),void o(M)}const l=document.createElement(t);n(l);const g=document.createElement("li");for(M.style.textAlign&&(g.style.textAlign=M.style.textAlign);M.firstChild;)g.appendChild(M.firstChild);return l.appendChild(g),M.replaceWith(l),void o(g)}var N;const a=[],l=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{if(!(e instanceof HTMLElement))return NodeFilter.FILTER_SKIP;if(!/^(P|DIV|LI|H[1-6])$/.test(e.tagName))return NodeFilter.FILTER_SKIP;const t=document.createRange();t.selectNodeContents(e);return i.compareBoundaryPoints(Range.END_TO_START,t)<0&&i.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let g;for(;g=l.nextNode();)a.push(g);if(0===a.length){const e=r(i.startContainer);e&&a.push(e)}const D=a[0].closest("li");if(D){const e=D.closest("ul,ol");if(!e)return;return void(e.tagName.toLowerCase()===t?function(e){const t=document.createDocumentFragment();Array.from(e.querySelectorAll("li")).forEach((e=>{const M=document.createElement("p");for(e.style.textAlign&&(M.style.textAlign=e.style.textAlign);e.firstChild;)M.appendChild(e.firstChild);t.appendChild(M)})),e.replaceWith(t)}(e):s(e,t))}const u=document.createElement(t);n(u);for(const e of a){const t=document.createElement("li");for(e.style.textAlign&&(t.style.textAlign=e.style.textAlign);e.firstChild;)t.appendChild(e.firstChild);u.appendChild(t)}a[0].replaceWith(u);for(let e=1;e<a.length;e++)a[e].remove()}e([ue({attribute:!1})],Wp.prototype,"editorEl",void 0),e([ue({type:String})],Wp.prototype,"placeholder",void 0),e([ce()],Wp.prototype,"linkValue",void 0),Wp=e([le("nile-rte-link")],Wp);const qp=r`
13864
13864
  .editor { all: revert; }
13865
13865
 
13866
13866
  nile-rich-text-editor {
@@ -14008,7 +14008,7 @@ nile-rte-toolbar-item nile-button[data-active]::part(base):hover {
14008
14008
 
14009
14009
 
14010
14010
 
14011
- `,Kp={bold:"format_bold",italic:"format_italic",underline:"format_underline",link:"link_2",left:"format_align_left",center:"format_align_middle",right:"format_align_right",justify:"format_align_justify",ul:"format_list_bulleted",ol:"format_list_numbered",clear:"format_clear"};let eS=class extends Ne{constructor(){super(...arguments),this.value="",this.noStyles=!1,this.singleLineEditor=!1,this.mentions={},this.content="",this.previewEl=null,this.toolbarEl=null,this.lastRange=null,this.buttonMap=new Map,this.headingSelect=null,this.fontSelect=null,this.colorInput=null,this.bgColorInput=null,this.colorSwatchEl=null,this.bgSwatchEl=null,this.containerEl=null,this.mentionsEl=null,this.onEditorKeydown=e=>{if(this.singleLineEditor&&"Enter"===e.key&&e.shiftKey)return void e.preventDefault();if(e.ctrlKey&&"i"===e.key.toLowerCase()&&(e.preventDefault(),Gp(this.editorEl,"em"),this.updateContent(),this.updateToolbarState()),this.singleLineEditor&&"Enter"===e.key)return void e.preventDefault();if("Tab"!==e.key)return;e.preventDefault(),this.focusAndRestore();const t=window.getSelection();if(!t||0===t.rangeCount)return;const M=t.getRangeAt(0);if(e.shiftKey){if(M.collapsed&&M.startContainer.nodeType===Node.TEXT_NODE){const e=M.startContainer,i=M.startOffset,n=e.data.slice(0,i),o=n.replace(/(\t|[ \u00a0]{2})$/,"");if(o.length!==n.length){e.data=o+e.data.slice(i);const M=document.createRange();M.setStart(e,o.length),M.collapse(!0),t.removeAllRanges(),t.addRange(M),this.updateContent(),this.updateToolbarState()}}return}M.deleteContents();const i=document.createTextNode("\t");M.insertNode(i);const n=document.createRange();n.setStartAfter(i),n.collapse(!0),t.removeAllRanges(),t.addRange(n),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);this.editorEl.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}injectCss(e){if(this.querySelector("style[data-rte-style]"))return;const t=document.createElement("style");t.setAttribute("data-rte-style","true"),t.textContent=e,this.insertBefore(t,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(qp.cssText),this.ensureStructure(),this.value&&!this.editorEl.innerHTML.trim()&&(this.editorEl.innerHTML=this.value),this.content=this.editorEl.innerHTML,this.toolbarEl&&this.wireAuthoredToolbar(this.toolbarEl),this.mentionsEl=this.querySelector("nile-rte-mentions"),this.mentionsEl&&(this.mentionsEl.attach?.(this.editorEl,this),this.mentionsEl.setExternalConfig?.(this.mentions)),this.wireEditor(),document.addEventListener("selectionchange",this.onSelectionChange,{passive:!0}),this.updateToolbarState(),this.syncPreview()}ensureStructure(){this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.containerEl=this.querySelector(".rte-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.className="rte-container",this.appendChild(this.containerEl)),this.ensureEditor(),this.toolbarEl&&this.toolbarEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.toolbarEl),this.editorEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.editorEl),this.previewEl&&(this.previewEl.parentElement!==this&&this.appendChild(this.previewEl),this.previewEl.previousElementSibling!==this.containerEl&&this.insertBefore(this.previewEl,this.containerEl.nextSibling))}updateContentWithMention(e){this.updateContent(),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content,mention:e},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}updated(e){e.has("value")&&this.editorEl&&this.value!==this.editorEl.innerHTML&&(this.editorEl.innerHTML=this.value||"<p><br></p>",this.content=this.editorEl.innerHTML,this.syncPreview()),e.has("singleLineEditor")&&(this.editorEl&&this.editorEl.classList.toggle("single-line",this.singleLineEditor),this.previewEl&&this.previewEl.classList.toggle("single-line",this.singleLineEditor))}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const e=document.createElement("article");e.className="editor",e.setAttribute("contenteditable","true"),this.editorEl=e}this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>")}unwrapMention(e,t=!0){const M=e.parentNode;if(!M)return;const i=t?(e.textContent??"").replace(/\u200B/g,""):"",n=document.createTextNode(i);M.insertBefore(n,e),M.removeChild(e);const o=document.createRange();o.setStartAfter(n),o.collapse(!0);const r=window.getSelection();r?.removeAllRanges(),r?.addRange(o)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((e=>{const t=e,M=t.getAttribute("data-mention-key"),i=t.getAttribute("data-mention-label"),n=t.getAttribute("data-mention-trigger")||"",o=(t.textContent??"").replace(/\u200B/g,"").trim(),r=!!M&&!!i&&o.length>0&&o.startsWith(n)&&o.includes(i);o&&r||this.unwrapMention(t,!0)}))}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent(),this.updateToolbarState()})),this.editorEl.addEventListener("mouseup",(()=>{this.saveSelection(),this.updateToolbarState()})),this.editorEl.addEventListener("keyup",(e=>{this.saveSelection(),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(e.key)&&this.updateToolbarState()})),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(e){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(e.children).forEach((e=>{const t=e.tagName.toLowerCase();if("nile-rte-select"!==t||"align"!==e.getAttribute("type")){if("nile-rte-link"===t)return e.editorEl=this.editorEl,void e.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===t){let t=e.querySelector(":scope > nile-button");const M=e.getAttribute("name")||"",i=e.getAttribute("label")||M,n=e.getAttribute("icon"),o=e.innerHTML.trim().length>0;if(t||(t=document.createElement("nile-button"),t.variant="tertiary",t.size="small"),n)t.innerHTML=`<nile-icon name="${n}" aria-label="${i}"></nile-icon>`,e.innerHTML="";else if(o)t.innerHTML=e.innerHTML,e.innerHTML="";else{const n=Kp[M];n?t.innerHTML=`<nile-icon name="${n}" size="20" color="black" aria-label="${i}"></nile-icon>`:t.textContent=i||M,e.innerHTML=""}if(!t.isConnected){const M=document.createElement("nile-tooltip");M.setAttribute("content",i),M.appendChild(t),e.appendChild(M)}t.setAttribute("aria-label",i),t.addEventListener("mousedown",(e=>e.preventDefault())),t.addEventListener("click",(()=>this.onToolbarCommand(M)));const r=this.buttonMap.get(M)??[];return r.push(t),void this.buttonMap.set(M,r)}if("nile-rte-select"!==t)"nile-rte-color"!==t||e.addEventListener("change",(e=>{this.focusAndRestore();const{mode:t,value:M}=e.detail;"backColor"===t?Jp(this.editorEl,"backgroundColor",M,"data-rte-bg"):function(e,t){Jp(e,"color",t,"data-rte-color")}(this.editorEl,M),this.updateContent(),this.updateToolbarState()}));else{const t=e.getAttribute("type")||"";e.addEventListener("change",(e=>{this.focusAndRestore();const M=e.detail;"heading"===t?function(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=Pp(M.getRangeAt(0).startContainer,e);if(!i)return;if(i.tagName.toLowerCase()===t)return;const n=document.createElement(t);for(;i.firstChild;)n.appendChild(i.firstChild);i.replaceWith(n);const o=document.createRange();o.selectNodeContents(n),o.collapse(!0),M.removeAllRanges(),M.addRange(o)}(this.editorEl,M):"font"===t&&_p(this.editorEl,M),this.updateContent(),this.updateToolbarState()}))}}else e.addEventListener("change",(e=>{this.focusAndRestore();const t=e.detail;Bp(this.editorEl,t),this.updateContent(),this.updateToolbarState()}))}))}saveSelection(){const e=window.getSelection();e&&e.rangeCount&&(this.lastRange=e.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}getCleanContent(){const e=this.editorEl.cloneNode(!0);return e.querySelectorAll("*").forEach((e=>{e.removeAttribute("style")})),e.innerHTML}insertList(e){if(this.restoreSelection(),!this.lastRange)return;const t=document.createElement(e),M=this.lastRange.extractContents(),i=document.createElement("div");i.appendChild(M),Array.from(i.childNodes).forEach((e=>{if(e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim())return;const M=document.createElement("li");M.appendChild(e),t.appendChild(M)})),this.lastRange.insertNode(t),this.afterListEdit(t)}afterListEdit(e){const t=document.createRange();t.setStartAfter(e),t.collapse(!0);const M=window.getSelection();M?.removeAllRanges(),M?.addRange(t),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const e=this.editorEl;if(!e)return;const t=""===(e.textContent??"").replace(/\u200B/g,"").trim();if(0===e.childNodes.length||t)return void(e.innerHTML="<p><br></p>");if(!e.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const t=document.createElement("p");for(;e.firstChild;)t.appendChild(e.firstChild);return t.hasChildNodes()||t.appendChild(document.createElement("br")),void e.appendChild(t)}e.querySelectorAll("p").forEach((e=>{""===(e.textContent??"").replace(/\u200B/g,"")&&(e.innerHTML.toLowerCase().includes("<br")||(e.innerHTML="<br>"))}))}onToolbarCommand(e){switch(this.focusAndRestore(),e){case"bold":Gp(this.editorEl,"strong");break;case"italic":Gp(this.editorEl,"em");break;case"underline":Gp(this.editorEl,"u");break;case"left":Bp(this.editorEl,"left");break;case"center":Bp(this.editorEl,"center");break;case"right":Bp(this.editorEl,"right");break;case"justify":Bp(this.editorEl,"justify");break;case"ul":Xp(this.editorEl,"ul"),this.updateContent(),this.updateToolbarState();break;case"ol":Xp(this.editorEl,"ol"),this.updateContent(),this.updateToolbarState();break;case"link":break;case"clear":const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),t=[];for(;e.nextNode();){const M=e.currentNode;M.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(M.tagName)&&t.push(M)}for(const e of t){for(;e.firstChild;)e.parentNode?.insertBefore(e.firstChild,e);e.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(e,t){const M=this.buttonMap.get(e);if(M)for(const e of M)e.toggleAttribute("data-active",!!t)}updateToolbarState(){if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);if(!this.editorEl.contains(t.commonAncestorContainer))return;const M=function(e){for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e}(t.startContainer)||this.editorEl,i=getComputedStyle(M),n=Pp(t.startContainer,this.editorEl)||this.editorEl,o=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("strong"===t||"b"===t)return!0;const M=getComputedStyle(e).fontWeight;if(parseInt(M,10)>=600)return!0}e=e.parentNode}return!1})(),r=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("em"===t||"i"===t)return!0;if("italic"===getComputedStyle(e).fontStyle)return!0}e=e.parentNode}return!1})(),s=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=getComputedStyle(e).textDecorationLine;if(t&&t.includes("underline"))return!0;if("u"===e.tagName.toLowerCase())return!0}e=e.parentNode}return!1})(),N=!!M.closest("a"),a=n.style.textAlign||getComputedStyle(n).textAlign||"start",l="start"===a?"left":a,g=!!M.closest("li")&&M.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",r),this.setBtnActive("underline",s),this.setBtnActive("link",N),this.setBtnActive("left","left"===l&&!["center","right","justify"].includes(l)),this.setBtnActive("center","center"===l),this.setBtnActive("right","right"===l),this.setBtnActive("justify","justify"===l),this.setBtnActive("ul","ul"===g),this.setBtnActive("ol","ol"===g),this.headingSelect){const e=n.tagName.toLowerCase(),t=["h1","h2","h3"].includes(e)?e:"p";this.headingSelect.value!==t&&(this.headingSelect.value=t)}if(this.fontSelect){const e=(i.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(e)for(const t of Array.from(this.fontSelect.options))if(t.value.toLowerCase()===e){this.fontSelect.value=t.value;break}}if(this.colorInput){const e=Rp(i.color);e&&this.colorInput.value.toLowerCase()!==e.toLowerCase()&&(this.colorInput.value=e),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const e=getComputedStyle(M).backgroundColor;if(e&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(e)){const t=Rp(e);t&&this.bgColorInput.value.toLowerCase()!==t.toLowerCase()&&(this.bgColorInput.value=t)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const e=this.editorEl.cloneNode(!0);if(this.noStyles)e.querySelectorAll("[style]").forEach((e=>e.removeAttribute("style")));else{const t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),M=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT),i=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align","list-style-position","padding-inline-start"];for(;t.nextNode()&&M.nextNode();){const e=t.currentNode,n=M.currentNode,o=window.getComputedStyle(e),r=i.map((e=>`${e}:${o.getPropertyValue(e)}`)).join(";");r.trim()&&n.setAttribute("style",r)}}this.content=e.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content},bubbles:!0,composed:!0}))}};e([ue({type:String,attribute:!0,reflect:!0})],eS.prototype,"value",void 0),e([ue({type:Boolean,attribute:!0,reflect:!0})],eS.prototype,"noStyles",void 0),e([ue({type:Boolean,attribute:"singlelineeditor",reflect:!0})],eS.prototype,"singleLineEditor",void 0),e([ue({attribute:"mentions",reflect:!0,converter:{fromAttribute:e=>{try{const t=JSON.parse(e),M={};for(const e of Object.keys(t)){const i=t[e];Array.isArray(i)&&(M[e]=i.filter((e=>e&&"string"==typeof e.key&&"string"==typeof e.label)).map((e=>({key:e.key,label:e.label}))))}return M}catch{return{}}},toAttribute:e=>JSON.stringify(e)}})],eS.prototype,"mentions",void 0),e([ce()],eS.prototype,"content",void 0),eS=e([le("nile-rich-text-editor")],eS);"undefined"!=typeof window&&(window.nileElementsVersion='"1.1.8-beta-1.2"',window.nileVersion="__NILE_VERSION__");const tS=r`
14011
+ `,Kp={bold:"format_bold",italic:"format_italic",underline:"format_underline",link:"link_2",left:"format_align_left",center:"format_align_middle",right:"format_align_right",justify:"format_align_justify",ul:"format_list_bulleted",ol:"format_list_numbered",clear:"format_clear"};let eS=class extends Ne{constructor(){super(...arguments),this.value="",this.noStyles=!1,this.singleLineEditor=!1,this.mentions={},this.content="",this.previewEl=null,this.toolbarEl=null,this.lastRange=null,this.buttonMap=new Map,this.headingSelect=null,this.fontSelect=null,this.colorInput=null,this.bgColorInput=null,this.colorSwatchEl=null,this.bgSwatchEl=null,this.containerEl=null,this.mentionsEl=null,this.onEditorKeydown=e=>{if(this.singleLineEditor&&"Enter"===e.key&&e.shiftKey)return void e.preventDefault();if(e.ctrlKey&&"i"===e.key.toLowerCase()&&(e.preventDefault(),Gp(this.editorEl,"em"),this.updateContent(),this.updateToolbarState()),this.singleLineEditor&&"Enter"===e.key)return void e.preventDefault();if("Tab"!==e.key)return;e.preventDefault(),this.focusAndRestore();const t=window.getSelection();if(!t||0===t.rangeCount)return;const M=t.getRangeAt(0);if(e.shiftKey){if(M.collapsed&&M.startContainer.nodeType===Node.TEXT_NODE){const e=M.startContainer,i=M.startOffset,n=e.data.slice(0,i),o=n.replace(/(\t|[ \u00a0]{2})$/,"");if(o.length!==n.length){e.data=o+e.data.slice(i);const M=document.createRange();M.setStart(e,o.length),M.collapse(!0),t.removeAllRanges(),t.addRange(M),this.updateContent(),this.updateToolbarState()}}return}M.deleteContents();const i=document.createTextNode("\t");M.insertNode(i);const n=document.createRange();n.setStartAfter(i),n.collapse(!0),t.removeAllRanges(),t.addRange(n),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);this.editorEl.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}injectCss(e){if(this.querySelector("style[data-rte-style]"))return;const t=document.createElement("style");t.setAttribute("data-rte-style","true"),t.textContent=e,this.insertBefore(t,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(qp.cssText),this.ensureStructure(),this.value&&!this.editorEl.innerHTML.trim()&&(this.editorEl.innerHTML=this.value),this.content=this.editorEl.innerHTML,this.toolbarEl&&this.wireAuthoredToolbar(this.toolbarEl),this.mentionsEl=this.querySelector("nile-rte-mentions"),this.mentionsEl&&(this.mentionsEl.attach?.(this.editorEl,this),this.mentionsEl.setExternalConfig?.(this.mentions)),this.wireEditor(),document.addEventListener("selectionchange",this.onSelectionChange,{passive:!0}),this.updateToolbarState(),this.syncPreview()}ensureStructure(){this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.containerEl=this.querySelector(".rte-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.className="rte-container",this.appendChild(this.containerEl)),this.ensureEditor(),this.toolbarEl&&this.toolbarEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.toolbarEl),this.editorEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.editorEl),this.previewEl&&(this.previewEl.parentElement!==this&&this.appendChild(this.previewEl),this.previewEl.previousElementSibling!==this.containerEl&&this.insertBefore(this.previewEl,this.containerEl.nextSibling))}updateContentWithMention(e){this.updateContent(),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content,mention:e},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}updated(e){e.has("value")&&this.editorEl&&this.value!==this.editorEl.innerHTML&&(this.editorEl.innerHTML=this.value||"<p><br></p>",this.content=this.editorEl.innerHTML,this.syncPreview()),e.has("singleLineEditor")&&(this.editorEl&&this.editorEl.classList.toggle("single-line",this.singleLineEditor),this.previewEl&&this.previewEl.classList.toggle("single-line",this.singleLineEditor))}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const e=document.createElement("article");e.className="editor",e.setAttribute("contenteditable","true"),this.editorEl=e}this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>")}unwrapMention(e,t=!0){const M=e.parentNode;if(!M)return;const i=t?(e.textContent??"").replace(/\u200B/g,""):"",n=document.createTextNode(i);M.insertBefore(n,e),M.removeChild(e);const o=document.createRange();o.setStartAfter(n),o.collapse(!0);const r=window.getSelection();r?.removeAllRanges(),r?.addRange(o)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((e=>{const t=e,M=t.getAttribute("data-mention-key"),i=t.getAttribute("data-mention-label"),n=t.getAttribute("data-mention-trigger")||"",o=(t.textContent??"").replace(/\u200B/g,"").trim(),r=!!M&&!!i&&o.length>0&&o.startsWith(n)&&o.includes(i);o&&r||this.unwrapMention(t,!0)}))}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent(),this.updateToolbarState()})),this.editorEl.addEventListener("mouseup",(()=>{this.saveSelection(),this.updateToolbarState()})),this.editorEl.addEventListener("keyup",(e=>{this.saveSelection(),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(e.key)&&this.updateToolbarState()})),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(e){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(e.children).forEach((e=>{const t=e.tagName.toLowerCase();if("nile-rte-select"!==t||"align"!==e.getAttribute("type")){if("nile-rte-link"===t)return e.editorEl=this.editorEl,void e.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===t){let t=e.querySelector(":scope > nile-button");const M=e.getAttribute("name")||"",i=e.getAttribute("label")||M,n=e.getAttribute("icon"),o=e.innerHTML.trim().length>0;if(t||(t=document.createElement("nile-button"),t.variant="tertiary",t.size="small"),n)t.innerHTML=`<nile-icon name="${n}" aria-label="${i}"></nile-icon>`,e.innerHTML="";else if(o)t.innerHTML=e.innerHTML,e.innerHTML="";else{const n=Kp[M];n?t.innerHTML=`<nile-icon name="${n}" size="20" color="black" aria-label="${i}"></nile-icon>`:t.textContent=i||M,e.innerHTML=""}if(!t.isConnected){const M=document.createElement("nile-tooltip");M.setAttribute("content",i),M.appendChild(t),e.appendChild(M)}t.setAttribute("aria-label",i),t.addEventListener("mousedown",(e=>e.preventDefault())),t.addEventListener("click",(()=>this.onToolbarCommand(M)));const r=this.buttonMap.get(M)??[];return r.push(t),void this.buttonMap.set(M,r)}if("nile-rte-select"!==t)"nile-rte-color"!==t||e.addEventListener("change",(e=>{this.focusAndRestore();const{mode:t,value:M}=e.detail;"backColor"===t?Jp(this.editorEl,"backgroundColor",M,"data-rte-bg"):function(e,t){Jp(e,"color",t,"data-rte-color")}(this.editorEl,M),this.updateContent(),this.updateToolbarState()}));else{const t=e.getAttribute("type")||"";e.addEventListener("change",(e=>{this.focusAndRestore();const M=e.detail;"heading"===t?function(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=Pp(M.getRangeAt(0).startContainer,e);if(!i)return;if(i.tagName.toLowerCase()===t)return;const n=document.createElement(t);for(;i.firstChild;)n.appendChild(i.firstChild);i.replaceWith(n);const o=document.createRange();o.selectNodeContents(n),o.collapse(!0),M.removeAllRanges(),M.addRange(o)}(this.editorEl,M):"font"===t&&_p(this.editorEl,M),this.updateContent(),this.updateToolbarState()}))}}else e.addEventListener("change",(e=>{this.focusAndRestore();const t=e.detail;Bp(this.editorEl,t),this.updateContent(),this.updateToolbarState()}))}))}saveSelection(){const e=window.getSelection();e&&e.rangeCount&&(this.lastRange=e.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}getCleanContent(){const e=this.editorEl.cloneNode(!0);return e.querySelectorAll("*").forEach((e=>{e.removeAttribute("style")})),e.innerHTML}insertList(e){if(this.restoreSelection(),!this.lastRange)return;const t=document.createElement(e),M=this.lastRange.extractContents(),i=document.createElement("div");i.appendChild(M),Array.from(i.childNodes).forEach((e=>{if(e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim())return;const M=document.createElement("li");M.appendChild(e),t.appendChild(M)})),this.lastRange.insertNode(t),this.afterListEdit(t)}afterListEdit(e){const t=document.createRange();t.setStartAfter(e),t.collapse(!0);const M=window.getSelection();M?.removeAllRanges(),M?.addRange(t),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const e=this.editorEl;if(!e)return;const t=""===(e.textContent??"").replace(/\u200B/g,"").trim();if(0===e.childNodes.length||t)return void(e.innerHTML="<p><br></p>");if(!e.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const t=document.createElement("p");for(;e.firstChild;)t.appendChild(e.firstChild);return t.hasChildNodes()||t.appendChild(document.createElement("br")),void e.appendChild(t)}e.querySelectorAll("p").forEach((e=>{""===(e.textContent??"").replace(/\u200B/g,"")&&(e.innerHTML.toLowerCase().includes("<br")||(e.innerHTML="<br>"))}))}onToolbarCommand(e){switch(this.focusAndRestore(),e){case"bold":Gp(this.editorEl,"strong");break;case"italic":Gp(this.editorEl,"em");break;case"underline":Gp(this.editorEl,"u");break;case"left":Bp(this.editorEl,"left");break;case"center":Bp(this.editorEl,"center");break;case"right":Bp(this.editorEl,"right");break;case"justify":Bp(this.editorEl,"justify");break;case"ul":Xp(this.editorEl,"ul"),this.updateContent(),this.updateToolbarState();break;case"ol":Xp(this.editorEl,"ol"),this.updateContent(),this.updateToolbarState();break;case"link":break;case"clear":const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),t=[];for(;e.nextNode();){const M=e.currentNode;M.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(M.tagName)&&t.push(M)}for(const e of t){for(;e.firstChild;)e.parentNode?.insertBefore(e.firstChild,e);e.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(e,t){const M=this.buttonMap.get(e);if(M)for(const e of M)e.toggleAttribute("data-active",!!t)}updateToolbarState(){if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);if(!this.editorEl.contains(t.commonAncestorContainer))return;const M=function(e){for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e}(t.startContainer)||this.editorEl,i=getComputedStyle(M),n=Pp(t.startContainer,this.editorEl)||this.editorEl,o=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("strong"===t||"b"===t)return!0;const M=getComputedStyle(e).fontWeight;if(parseInt(M,10)>=600)return!0}e=e.parentNode}return!1})(),r=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("em"===t||"i"===t)return!0;if("italic"===getComputedStyle(e).fontStyle)return!0}e=e.parentNode}return!1})(),s=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=getComputedStyle(e).textDecorationLine;if(t&&t.includes("underline"))return!0;if("u"===e.tagName.toLowerCase())return!0}e=e.parentNode}return!1})(),N=!!M.closest("a"),a=n.style.textAlign||getComputedStyle(n).textAlign||"start",l="start"===a?"left":a,g=!!M.closest("li")&&M.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",r),this.setBtnActive("underline",s),this.setBtnActive("link",N),this.setBtnActive("left","left"===l&&!["center","right","justify"].includes(l)),this.setBtnActive("center","center"===l),this.setBtnActive("right","right"===l),this.setBtnActive("justify","justify"===l),this.setBtnActive("ul","ul"===g),this.setBtnActive("ol","ol"===g),this.headingSelect){const e=n.tagName.toLowerCase(),t=["h1","h2","h3"].includes(e)?e:"p";this.headingSelect.value!==t&&(this.headingSelect.value=t)}if(this.fontSelect){const e=(i.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(e)for(const t of Array.from(this.fontSelect.options))if(t.value.toLowerCase()===e){this.fontSelect.value=t.value;break}}if(this.colorInput){const e=Rp(i.color);e&&this.colorInput.value.toLowerCase()!==e.toLowerCase()&&(this.colorInput.value=e),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const e=getComputedStyle(M).backgroundColor;if(e&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(e)){const t=Rp(e);t&&this.bgColorInput.value.toLowerCase()!==t.toLowerCase()&&(this.bgColorInput.value=t)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const e=this.editorEl.cloneNode(!0);if(this.noStyles)e.querySelectorAll("[style]").forEach((e=>e.removeAttribute("style")));else{const t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),M=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT),i=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align","list-style-position","padding-inline-start"];for(;t.nextNode()&&M.nextNode();){const e=t.currentNode,n=M.currentNode,o=window.getComputedStyle(e),r=i.map((e=>`${e}:${o.getPropertyValue(e)}`)).join(";");r.trim()&&n.setAttribute("style",r)}}this.content=e.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content},bubbles:!0,composed:!0}))}};e([ue({type:String,attribute:!0,reflect:!0})],eS.prototype,"value",void 0),e([ue({type:Boolean,attribute:!0,reflect:!0})],eS.prototype,"noStyles",void 0),e([ue({type:Boolean,attribute:"singlelineeditor",reflect:!0})],eS.prototype,"singleLineEditor",void 0),e([ue({attribute:"mentions",reflect:!0,converter:{fromAttribute:e=>{try{const t=JSON.parse(e),M={};for(const e of Object.keys(t)){const i=t[e];Array.isArray(i)&&(M[e]=i.filter((e=>e&&"string"==typeof e.key&&"string"==typeof e.label)).map((e=>({key:e.key,label:e.label}))))}return M}catch{return{}}},toAttribute:e=>JSON.stringify(e)}})],eS.prototype,"mentions",void 0),e([ce()],eS.prototype,"content",void 0),eS=e([le("nile-rich-text-editor")],eS);"undefined"!=typeof window&&(window.nileElementsVersion='"1.1.8-beta-1.3"',window.nileVersion="__NILE_VERSION__");const tS=r`
14012
14012
  :host {
14013
14013
  --sidebar-width: 240px;
14014
14014
  --sidebar-collapsed-width: 70px;
@@ -1,2 +1,2 @@
1
- System.register([],function(_export,_context){"use strict";function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function n(n,t){for(;n&&n!==t;){var _n;if(n instanceof HTMLElement){var _t=getComputedStyle(n).display;if(n.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===_t||"list-item"===_t)return n;}n=((_n=n)===null||_n===void 0?void 0:_n.parentNode)||null;}return t;}function t(n){for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n;}function o(n){var t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return"#".concat(Number(t[1]).toString(16).padStart(2,"0")).concat(Number(t[2]).toString(16).padStart(2,"0")).concat(Number(t[3]).toString(16).padStart(2,"0"));}function e(n,t,o){var _strong$em$u$span$t;var e=window.getSelection();if(!e||0===e.rangeCount)return;var c=e.getRangeAt(0),r=(_strong$em$u$span$t={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t])!==null&&_strong$em$u$span$t!==void 0?_strong$em$u$span$t:[t],i=function i(n){return r.includes(n.tagName.toLowerCase());};function u(n){var t=n.parentNode;if(t){for(;n.firstChild;)t.insertBefore(n.firstChild,n);t.removeChild(n);}}function s(n){n.querySelectorAll(r.join(",")).forEach(function(n){var _n$textContent;if(!((_n$textContent=n.textContent)!==null&&_n$textContent!==void 0&&_n$textContent.trim()))return void n.remove();Array.from(n.querySelectorAll(r.join(","))).forEach(function(t){if(t!==n){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove();}});});}function f(n){Array.from(n.querySelectorAll(r.join(","))).forEach(function(n){var t=n.nextSibling;if(t instanceof HTMLElement&&i(t)){for(;t.firstChild;)n.appendChild(t.firstChild);t.remove();}});}if(c.collapsed){var _r=!1,_d=c.startContainer;for(;_d&&_d!==n;){if(_d instanceof HTMLElement&&i(_d)){_r=!0;break;}_d=_d.parentNode;}if(_r&&_d instanceof HTMLElement)u(_d);else{var _n2=document.createElement(t);o&&Object.entries(o).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),t=_ref2[0],o=_ref2[1];return _n2.setAttribute(t,o);}),_n2.appendChild(document.createTextNode("​")),c.insertNode(_n2),c.setStart(_n2.firstChild,1),c.collapse(!0),e.removeAllRanges(),e.addRange(c);}return s(n),void f(n);}c.startContainer.nodeType===Node.TEXT_NODE&&c.startContainer.splitText(c.startOffset),c.endContainer.nodeType===Node.TEXT_NODE&&c.endContainer.splitText(c.endOffset);var d=document.createTreeWalker(c.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:function acceptNode(n){var _n$nodeValue;if(!((_n$nodeValue=n.nodeValue)!==null&&_n$nodeValue!==void 0&&_n$nodeValue.trim()))return NodeFilter.FILTER_REJECT;var t=document.createRange();t.selectNodeContents(n);return c.compareBoundaryPoints(Range.END_TO_START,t)<0&&c.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;}}),m=[];var a;for(;a=d.nextNode();)m.push(a);if(m.length>0&&m.every(function(t){var o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o))return!0;o=o.parentNode;}return!1;})){var _o$parentElement;var _o=m[0],_e=m[m.length-1],_c=(_o$parentElement=_o.parentElement)===null||_o$parentElement===void 0?void 0:_o$parentElement.closest(t);if(_c&&_c.contains(_e)){var _n3=_c.parentNode;if(_n3){var _r2=document.createRange();_r2.setStartBefore(_c),_r2.setEndBefore(_o);var _i=_r2.cloneContents(),_u=document.createRange();_u.setStartAfter(_e),_u.setEndAfter(_c);var _s=_u.cloneContents(),_f=document.createRange();_f.setStartBefore(_o),_f.setEndAfter(_e);var _d2=_f.extractContents(),_m=document.createDocumentFragment();if(_i.childNodes.length){var _n4=document.createElement(t);for(;_i.firstChild;)_n4.appendChild(_i.firstChild);_m.appendChild(_n4);}for(;_d2.firstChild;)_m.appendChild(_d2.firstChild);if(_s.childNodes.length){var _n5=document.createElement(t);for(;_s.firstChild;)_n5.appendChild(_s.firstChild);_m.appendChild(_n5);}_n3.insertBefore(_m,_c),_n3.removeChild(_c);}}else m.forEach(function(t){var o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o)){u(o);break;}o=o.parentNode;}});}else m.forEach(function(n){var _n$parentElement,_n$parentNode;var e=(_n$parentElement=n.parentElement)===null||_n$parentElement===void 0?void 0:_n$parentElement.closest("a, .mention, nile-mention");if(e)return;var c=document.createElement(t);o&&Object.entries(o).forEach(function(_ref3){var _ref4=_slicedToArray(_ref3,2),n=_ref4[0],t=_ref4[1];return c.setAttribute(n,t);}),(_n$parentNode=n.parentNode)!==null&&_n$parentNode!==void 0&&_n$parentNode.insertBefore(c,n),c.appendChild(n);});s(n),f(n),e.removeAllRanges(),e.addRange(c);}function c(t,o){var e=document.getSelection();if(!e||0===e.rangeCount)return;var c=n(e.getRangeAt(0).startContainer,t);if(!c)return;if(c.tagName.toLowerCase()===o)return;var r=document.createElement(o);for(;c.firstChild;)r.appendChild(c.firstChild);c.replaceWith(r);var i=document.createRange();i.selectNodeContents(r),i.collapse(!0),e.removeAllRanges(),e.addRange(i);}function r(t,o){var e=window.getSelection();if(!e||0===e.rangeCount)return;var c=e.getRangeAt(0),r=c.commonAncestorContainer,i=[],u=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:function acceptNode(n){var t=n;return c.intersectsNode(t)&&/^(P|DIV|LI|H[1-6])$/.test(t.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;}});var s=u.nextNode();for(;s;)i.push(s),s=u.nextNode();if(0===i.length){var _o2=n(e.focusNode,t);_o2&&i.push(_o2);}i.forEach(function(n){n.style.textAlign=o;});}function i(n,t){var o=document.getSelection();if(!o||0===o.rangeCount)return;var e=o.getRangeAt(0);if(e.collapsed){var _n6=document.createElement("span");_n6.style.fontFamily=t,_n6.appendChild(document.createTextNode("​")),e.insertNode(_n6);var _c2=document.createRange();return _c2.setStart(_n6.firstChild,1),_c2.collapse(!0),o.removeAllRanges(),void o.addRange(_c2);}!function(n,t,o){var e=document.createElement(t);o&&Object.entries(o).forEach(function(_ref5){var _ref6=_slicedToArray(_ref5,2),n=_ref6[0],t=_ref6[1];return e.setAttribute(n,t);});try{n.surroundContents(e);}catch(_unused){var _t2=n.extractContents();e.appendChild(_t2),n.insertNode(e);}}(e,"span",{style:"font-family:".concat(t)});}function u(n,t,o){for(;t&&t!==n;){if(t instanceof HTMLSpanElement&&t.hasAttribute(o))return t;t=t.parentNode;}return null;}function s(n,t,o,e){var c=window.getSelection();if(!c||0===c.rangeCount)return;var r=c.getRangeAt(0);if(!n.contains(r.commonAncestorContainer))return;var i=r.cloneRange();if(i.collapsed){var _r3=u(n,i.startContainer,e);if(_r3)return _r3.style[t]=o,void d(n,e,t);var _s2=document.createElement("span");_s2.setAttribute(e,"1"),_s2.style[t]=o,_s2.appendChild(document.createTextNode("​")),i.insertNode(_s2);var _f2=document.createRange();return _f2.setStart(_s2.firstChild,1),_f2.collapse(!0),c.removeAllRanges(),c.addRange(_f2),void d(n,e,t);}var s=u(n,i.startContainer,e),m=u(n,i.endContainer,e);if(s&&s===m){if(function(n,t){var o=document.createRange();return o.selectNodeContents(t),n.compareBoundaryPoints(Range.START_TO_START,o)<=0&&n.compareBoundaryPoints(Range.END_TO_END,o)>=0;}(i,s))s.style[t]=o;else{var _n7=function(n,t,o,e,c){var r=n.style[e],i=document.createRange();i.setStart(n,0),i.setEnd(t.startContainer,t.startOffset);var u=document.createRange();u.setStart(t.endContainer,t.endOffset),u.setEnd(n,n.childNodes.length);var s=document.createDocumentFragment(),d=function d(n){var t=document.createElement("span");return t.setAttribute(o,"1"),t.style[e]=n,t;};if(f(i)){var _n8=d(r);_n8.appendChild(i.cloneContents()),s.appendChild(_n8);}var m=d(c);if(m.appendChild(t.cloneContents()),s.appendChild(m),f(u)){var _n9=d(r);_n9.appendChild(u.cloneContents()),s.appendChild(_n9);}return n.replaceWith(s),m;}(s,i,e,t,o),_c3=window.getSelection(),_r4=document.createRange();_r4.selectNodeContents(_n7),_c3!==null&&_c3!==void 0&&_c3.removeAllRanges(),_c3===null||_c3===void 0?void 0:_c3.addRange(_r4);}return void d(n,e,t);}var a=function(){var n=i.commonAncestorContainer;for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n;}(),l=document.createTreeWalker(a||n,NodeFilter.SHOW_TEXT,{acceptNode:function acceptNode(n){if(!n.nodeValue||!n.nodeValue.trim())return NodeFilter.FILTER_REJECT;var t=document.createRange();t.selectNodeContents(n);return i.compareBoundaryPoints(Range.END_TO_START,t)<0&&i.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;}}),N=[];var H;for(;H=l.nextNode();)N.push(H);N.forEach(function(c){var r=0,s=c.length;c===i.startContainer&&(r=i.startOffset),c===i.endContainer&&(s=i.endOffset),r>0&&(c=c.splitText(r)),s<c.length&&c.splitText(s);var f=u(n,c,e);if(f)return void(f.style[t]=o);var d=document.createElement("span");d.setAttribute(e,"1"),d.style[t]=o;c.parentElement.replaceChild(d,c),d.appendChild(c);}),d(n,e,t),c.removeAllRanges(),c.addRange(i);}function f(n){if(n.collapsed)return!1;return(n.cloneContents().textContent||"").length>0;}function d(n,t,o){var e=Array.from(n.querySelectorAll("span[".concat(t,"]"))),c=function c(n){return n.style[o];};e.forEach(function(n){Array.from(n.querySelectorAll("span[".concat(t,"]"))).forEach(function(t){if(c(t)===c(n)){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove();}});var o=n.previousSibling;if(o instanceof HTMLSpanElement&&o.hasAttribute(t)&&c(o)===c(n)){for(;n.firstChild;)o.appendChild(n.firstChild);return void n.remove();}var e=n.nextSibling;if(e instanceof HTMLSpanElement&&e.hasAttribute(t)&&c(e)===c(n)){for(;e.firstChild;)n.appendChild(e.firstChild);e.remove();}});}function m(n,t){s(n,"color",t,"data-rte-color");}function a(n,t){s(n,"backgroundColor",t,"data-rte-bg");}function l(t,o){var e=document.getSelection();if(!e||0===e.rangeCount)return;var c=e.getRangeAt(0);if(c.collapsed){var _r5=n(c.startContainer,t);if(!_r5||_r5===t||0===_r5.childNodes.length){var _n10=document.createElement(o),_t3=document.createElement("li");_t3.appendChild(document.createElement("br")),_n10.appendChild(_t3),c.insertNode(_n10);var _r6=document.createRange();return _r6.selectNodeContents(_t3),_r6.collapse(!0),e.removeAllRanges(),void e.addRange(_r6);}var _i2=document.createElement(o),_u2=document.createElement("li");for(;_r5.firstChild;)_u2.appendChild(_r5.firstChild);_i2.appendChild(_u2),_r5.replaceWith(_i2);var _s3=document.createRange();return _s3.selectNodeContents(_u2),_s3.collapse(!0),e.removeAllRanges(),void e.addRange(_s3);}var r=[],i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:function acceptNode(n){if(!(n instanceof HTMLElement))return NodeFilter.FILTER_SKIP;if(!/^(P|DIV|LI|H[1-6])$/.test(n.tagName))return NodeFilter.FILTER_SKIP;var t=document.createRange();t.selectNodeContents(n);return c.compareBoundaryPoints(Range.END_TO_START,t)<0&&c.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;}});var u;for(;u=i.nextNode();)r.push(u);if(0===r.length){var _o3=n(c.startContainer,t);_o3&&r.push(_o3);}var s=r[0].closest("li");if(s){var _n11=s.closest("ul,ol");if(!_n11)return;var _t4=s.style.textAlign||_n11.style.textAlign||"";if(_n11.tagName.toLowerCase()===o){var _o4=document.createDocumentFragment();for(var _i3=0,_Array$from=Array.from(_n11.querySelectorAll("li"));_i3<_Array$from.length;_i3++){var _e2=_Array$from[_i3];var _n12=document.createElement("p");for(_n12.style.textAlign=_e2.style.textAlign||_t4||"";_e2.firstChild;)_n12.appendChild(_e2.firstChild);_o4.appendChild(_n12);}_n11.replaceWith(_o4);}else{var _e3=document.createElement(o);for(;_n11.firstChild;){var _o5=_n11.firstChild;_o5.style.textAlign=_o5.style.textAlign||_t4||"",_e3.appendChild(_o5);}_n11.replaceWith(_e3);}return;}var f=document.createElement(o);for(var _i4=0,_r7=r;_i4<_r7.length;_i4++){var _n13=_r7[_i4];var _t5=document.createElement("li"),_o6=_n13.style.textAlign;for(_o6&&(_t5.style.textAlign=_o6);_n13.firstChild;)_t5.appendChild(_n13.firstChild);f.appendChild(_t5);}r[0].replaceWith(f);for(var _n14=1;_n14<r.length;_n14++)r[_n14].remove();}_export({a:c,b:i,c:a,d:m,e:l,f:n,n:t,r:o,s:r,t:e});return{setters:[],execute:function execute(){}};});
1
+ System.register([],function(_export,_context){"use strict";function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function n(n,t){for(;n&&n!==t;){var _n;if(n instanceof HTMLElement){var _t=getComputedStyle(n).display;if(n.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===_t||"list-item"===_t)return n;}n=((_n=n)===null||_n===void 0?void 0:_n.parentNode)||null;}return t;}function t(n){for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n;}function o(n){var t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return"#".concat(Number(t[1]).toString(16).padStart(2,"0")).concat(Number(t[2]).toString(16).padStart(2,"0")).concat(Number(t[3]).toString(16).padStart(2,"0"));}function e(n,t,o){var _strong$em$u$span$t;var e=window.getSelection();if(!e||0===e.rangeCount)return;var c=e.getRangeAt(0),r=(_strong$em$u$span$t={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t])!==null&&_strong$em$u$span$t!==void 0?_strong$em$u$span$t:[t],i=function i(n){return r.includes(n.tagName.toLowerCase());};function u(n){var t=n.parentNode;if(t){for(;n.firstChild;)t.insertBefore(n.firstChild,n);t.removeChild(n);}}function f(n){n.querySelectorAll(r.join(",")).forEach(function(n){var _n$textContent;if(!((_n$textContent=n.textContent)!==null&&_n$textContent!==void 0&&_n$textContent.trim()))return void n.remove();Array.from(n.querySelectorAll(r.join(","))).forEach(function(t){if(t!==n){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove();}});});}function s(n){Array.from(n.querySelectorAll(r.join(","))).forEach(function(n){var t=n.nextSibling;if(t instanceof HTMLElement&&i(t)){for(;t.firstChild;)n.appendChild(t.firstChild);t.remove();}});}if(c.collapsed){var _r=!1,_d=c.startContainer;for(;_d&&_d!==n;){if(_d instanceof HTMLElement&&i(_d)){_r=!0;break;}_d=_d.parentNode;}if(_r&&_d instanceof HTMLElement)u(_d);else{var _n2=document.createElement(t);o&&Object.entries(o).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),t=_ref2[0],o=_ref2[1];return _n2.setAttribute(t,o);}),_n2.appendChild(document.createTextNode("​")),c.insertNode(_n2),c.setStart(_n2.firstChild,1),c.collapse(!0),e.removeAllRanges(),e.addRange(c);}return f(n),void s(n);}c.startContainer.nodeType===Node.TEXT_NODE&&c.startContainer.splitText(c.startOffset),c.endContainer.nodeType===Node.TEXT_NODE&&c.endContainer.splitText(c.endOffset);var d=document.createTreeWalker(c.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:function acceptNode(n){var _n$nodeValue;if(!((_n$nodeValue=n.nodeValue)!==null&&_n$nodeValue!==void 0&&_n$nodeValue.trim()))return NodeFilter.FILTER_REJECT;var t=document.createRange();t.selectNodeContents(n);return c.compareBoundaryPoints(Range.END_TO_START,t)<0&&c.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;}}),m=[];var l;for(;l=d.nextNode();)m.push(l);if(m.length>0&&m.every(function(t){var o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o))return!0;o=o.parentNode;}return!1;})){var _o$parentElement;var _o=m[0],_e=m[m.length-1],_c=(_o$parentElement=_o.parentElement)===null||_o$parentElement===void 0?void 0:_o$parentElement.closest(t);if(_c&&_c.contains(_e)){var _n3=_c.parentNode;if(_n3){var _r2=document.createRange();_r2.setStartBefore(_c),_r2.setEndBefore(_o);var _i=_r2.cloneContents(),_u=document.createRange();_u.setStartAfter(_e),_u.setEndAfter(_c);var _f=_u.cloneContents(),_s=document.createRange();_s.setStartBefore(_o),_s.setEndAfter(_e);var _d2=_s.extractContents(),_m=document.createDocumentFragment();if(_i.childNodes.length){var _n4=document.createElement(t);for(;_i.firstChild;)_n4.appendChild(_i.firstChild);_m.appendChild(_n4);}for(;_d2.firstChild;)_m.appendChild(_d2.firstChild);if(_f.childNodes.length){var _n5=document.createElement(t);for(;_f.firstChild;)_n5.appendChild(_f.firstChild);_m.appendChild(_n5);}_n3.insertBefore(_m,_c),_n3.removeChild(_c);}}else m.forEach(function(t){var o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o)){u(o);break;}o=o.parentNode;}});}else m.forEach(function(n){var _n$parentElement,_n$parentNode;var e=(_n$parentElement=n.parentElement)===null||_n$parentElement===void 0?void 0:_n$parentElement.closest("a, .mention, nile-mention");if(e)return;var c=document.createElement(t);o&&Object.entries(o).forEach(function(_ref3){var _ref4=_slicedToArray(_ref3,2),n=_ref4[0],t=_ref4[1];return c.setAttribute(n,t);}),(_n$parentNode=n.parentNode)!==null&&_n$parentNode!==void 0&&_n$parentNode.insertBefore(c,n),c.appendChild(n);});f(n),s(n),e.removeAllRanges(),e.addRange(c);}function c(t,o){var e=document.getSelection();if(!e||0===e.rangeCount)return;var c=n(e.getRangeAt(0).startContainer,t);if(!c)return;if(c.tagName.toLowerCase()===o)return;var r=document.createElement(o);for(;c.firstChild;)r.appendChild(c.firstChild);c.replaceWith(r);var i=document.createRange();i.selectNodeContents(r),i.collapse(!0),e.removeAllRanges(),e.addRange(i);}function r(t,o){var e=window.getSelection();if(!e||0===e.rangeCount)return;var c=e.getRangeAt(0),r=c.commonAncestorContainer,i=[],u=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:function acceptNode(n){var t=n;return c.intersectsNode(t)&&/^(P|DIV|LI|H[1-6])$/.test(t.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;}});var f=u.nextNode();for(;f;)i.push(f),f=u.nextNode();if(0===i.length){var _o2=n(e.focusNode,t);_o2&&i.push(_o2);}i.forEach(function(n){n.style.textAlign=o;});}function i(n,t){var o=document.getSelection();if(!o||0===o.rangeCount)return;var e=o.getRangeAt(0);if(e.collapsed){var _n6=document.createElement("span");_n6.style.fontFamily=t,_n6.appendChild(document.createTextNode("​")),e.insertNode(_n6);var _c2=document.createRange();return _c2.setStart(_n6.firstChild,1),_c2.collapse(!0),o.removeAllRanges(),void o.addRange(_c2);}!function(n,t,o){var e=document.createElement(t);o&&Object.entries(o).forEach(function(_ref5){var _ref6=_slicedToArray(_ref5,2),n=_ref6[0],t=_ref6[1];return e.setAttribute(n,t);});try{n.surroundContents(e);}catch(_unused){var _t2=n.extractContents();e.appendChild(_t2),n.insertNode(e);}}(e,"span",{style:"font-family:".concat(t)});}function u(n,t,o){for(;t&&t!==n;){if(t instanceof HTMLSpanElement&&t.hasAttribute(o))return t;t=t.parentNode;}return null;}function f(n,t,o,e){var c=window.getSelection();if(!c||0===c.rangeCount)return;var r=c.getRangeAt(0);if(!n.contains(r.commonAncestorContainer))return;var i=r.cloneRange();if(i.collapsed){var _r3=u(n,i.startContainer,e);if(_r3)return _r3.style[t]=o,void d(n,e,t);var _f2=document.createElement("span");_f2.setAttribute(e,"1"),_f2.style[t]=o,_f2.appendChild(document.createTextNode("​")),i.insertNode(_f2);var _s2=document.createRange();return _s2.setStart(_f2.firstChild,1),_s2.collapse(!0),c.removeAllRanges(),c.addRange(_s2),void d(n,e,t);}var f=u(n,i.startContainer,e),m=u(n,i.endContainer,e);if(f&&f===m){if(function(n,t){var o=document.createRange();return o.selectNodeContents(t),n.compareBoundaryPoints(Range.START_TO_START,o)<=0&&n.compareBoundaryPoints(Range.END_TO_END,o)>=0;}(i,f))f.style[t]=o;else{var _n7=function(n,t,o,e,c){var r=n.style[e],i=document.createRange();i.setStart(n,0),i.setEnd(t.startContainer,t.startOffset);var u=document.createRange();u.setStart(t.endContainer,t.endOffset),u.setEnd(n,n.childNodes.length);var f=document.createDocumentFragment(),d=function d(n){var t=document.createElement("span");return t.setAttribute(o,"1"),t.style[e]=n,t;};if(s(i)){var _n8=d(r);_n8.appendChild(i.cloneContents()),f.appendChild(_n8);}var m=d(c);if(m.appendChild(t.cloneContents()),f.appendChild(m),s(u)){var _n9=d(r);_n9.appendChild(u.cloneContents()),f.appendChild(_n9);}return n.replaceWith(f),m;}(f,i,e,t,o),_c3=window.getSelection(),_r4=document.createRange();_r4.selectNodeContents(_n7),_c3!==null&&_c3!==void 0&&_c3.removeAllRanges(),_c3===null||_c3===void 0?void 0:_c3.addRange(_r4);}return void d(n,e,t);}var l=function(){var n=i.commonAncestorContainer;for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n;}(),a=document.createTreeWalker(l||n,NodeFilter.SHOW_TEXT,{acceptNode:function acceptNode(n){if(!n.nodeValue||!n.nodeValue.trim())return NodeFilter.FILTER_REJECT;var t=document.createRange();t.selectNodeContents(n);return i.compareBoundaryPoints(Range.END_TO_START,t)<0&&i.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;}}),N=[];var H;for(;H=a.nextNode();)N.push(H);N.forEach(function(c){var r=0,f=c.length;c===i.startContainer&&(r=i.startOffset),c===i.endContainer&&(f=i.endOffset),r>0&&(c=c.splitText(r)),f<c.length&&c.splitText(f);var s=u(n,c,e);if(s)return void(s.style[t]=o);var d=document.createElement("span");d.setAttribute(e,"1"),d.style[t]=o;c.parentElement.replaceChild(d,c),d.appendChild(c);}),d(n,e,t),c.removeAllRanges(),c.addRange(i);}function s(n){if(n.collapsed)return!1;return(n.cloneContents().textContent||"").length>0;}function d(n,t,o){var e=Array.from(n.querySelectorAll("span[".concat(t,"]"))),c=function c(n){return n.style[o];};e.forEach(function(n){Array.from(n.querySelectorAll("span[".concat(t,"]"))).forEach(function(t){if(c(t)===c(n)){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove();}});var o=n.previousSibling;if(o instanceof HTMLSpanElement&&o.hasAttribute(t)&&c(o)===c(n)){for(;n.firstChild;)o.appendChild(n.firstChild);return void n.remove();}var e=n.nextSibling;if(e instanceof HTMLSpanElement&&e.hasAttribute(t)&&c(e)===c(n)){for(;e.firstChild;)n.appendChild(e.firstChild);e.remove();}});}function m(n,t){f(n,"color",t,"data-rte-color");}function l(n,t){f(n,"backgroundColor",t,"data-rte-bg");}function a(n,t){var o=document.getSelection();if(!o||0===o.rangeCount)return;var e=o.getRangeAt(0);function c(n){n.style.paddingInlineStart="0",n.style.margin="0";}function r(n){var t=document.getSelection();if(!t)return;var o=document.createRange();o.selectNodeContents(n),o.collapse(!0),t.removeAllRanges(),t.addRange(o);}function i(t){for(;t&&t!==n;){if(t instanceof HTMLElement){var _n10=getComputedStyle(t).display;if(t.tagName.match(/^(P|DIV|H[1-6]|LI)$/)||"block"===_n10||"list-item"===_n10)return t;}t=t.parentNode;}return null;}function u(n,t){var o=document.createElement(t);for(c(o);n.firstChild;)o.appendChild(n.firstChild);n.replaceWith(o);}if(e.collapsed){var _f$textContent;var _o3=i(e.startContainer),_s3=_o3===null||_o3===void 0?void 0:_o3.closest("ul,ol");if(_s3&&_s3.tagName.toLowerCase()===t)return void function(n,_o$parentNode){var t=n.closest("li");if(!t)return;var o=t.parentElement,e=document.createElement("p");for(t.style.textAlign&&(e.style.textAlign=t.style.textAlign);t.firstChild;)e.appendChild(t.firstChild);(_o$parentNode=o.parentNode)!==null&&_o$parentNode!==void 0&&_o$parentNode.insertBefore(e,o.nextSibling),t.remove(),0===o.childNodes.length&&o.remove(),r(e);}(_o3);if(_s3&&_s3.tagName.toLowerCase()!==t)return void u(_s3,t);if(!_o3||_o3===n||0===_o3.childNodes.length||(f=_o3,!((_f$textContent=f.textContent)!==null&&_f$textContent!==void 0&&_f$textContent.trim())&&!f.querySelector("img,br"))){var _n11=document.createElement(t),_o4=document.createElement("li");return _o4.appendChild(document.createElement("br")),_n11.appendChild(_o4),c(_n11),e.insertNode(_n11),void r(_o4);}var _d3=document.createElement(t);c(_d3);var _m2=document.createElement("li");for(_o3.style.textAlign&&(_m2.style.textAlign=_o3.style.textAlign);_o3.firstChild;)_m2.appendChild(_o3.firstChild);return _d3.appendChild(_m2),_o3.replaceWith(_d3),void r(_m2);}var f;var s=[],d=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:function acceptNode(n){if(!(n instanceof HTMLElement))return NodeFilter.FILTER_SKIP;if(!/^(P|DIV|LI|H[1-6])$/.test(n.tagName))return NodeFilter.FILTER_SKIP;var t=document.createRange();t.selectNodeContents(n);return e.compareBoundaryPoints(Range.END_TO_START,t)<0&&e.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;}});var m;for(;m=d.nextNode();)s.push(m);if(0===s.length){var _n12=i(e.startContainer);_n12&&s.push(_n12);}var l=s[0].closest("li");if(l){var _n13=l.closest("ul,ol");if(!_n13)return;return void(_n13.tagName.toLowerCase()===t?function(n){var t=document.createDocumentFragment();Array.from(n.querySelectorAll("li")).forEach(function(n){var o=document.createElement("p");for(n.style.textAlign&&(o.style.textAlign=n.style.textAlign);n.firstChild;)o.appendChild(n.firstChild);t.appendChild(o);}),n.replaceWith(t);}(_n13):u(_n13,t));}var a=document.createElement(t);c(a);for(var _i2=0,_s4=s;_i2<_s4.length;_i2++){var _n14=_s4[_i2];var _t3=document.createElement("li");for(_n14.style.textAlign&&(_t3.style.textAlign=_n14.style.textAlign);_n14.firstChild;)_t3.appendChild(_n14.firstChild);a.appendChild(_t3);}s[0].replaceWith(a);for(var _n15=1;_n15<s.length;_n15++)s[_n15].remove();}_export({a:c,b:i,c:l,d:m,e:a,f:n,n:t,r:o,s:r,t:e});return{setters:[],execute:function execute(){}};});
2
2
  //# sourceMappingURL=utils.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs.js","sources":["../../../src/nile-rich-text-editor/utils.ts"],"sourcesContent":["export function closestBlock(\n node: Node | null,\n root: HTMLElement\n): HTMLElement | null {\n while (node && node !== root) {\n if (node instanceof HTMLElement) {\n const display = getComputedStyle(node).display;\n if (\n node.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/) ||\n display === 'block' ||\n display === 'list-item'\n ) {\n return node;\n }\n }\n node = node?.parentNode || null;\n }\n return root;\n}\n\nexport function nearestElement(n: Node | null): HTMLElement | null {\n while (n && !(n instanceof HTMLElement)) n = n.parentNode as Node | null;\n return n as HTMLElement | null;\n}\n\nexport function rgbToHex(rgb: string): string {\n const m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n if (!m) return '#000000';\n const r = Number(m[1]).toString(16).padStart(2, '0');\n const g = Number(m[2]).toString(16).padStart(2, '0');\n const b = Number(m[3]).toString(16).padStart(2, '0');\n return `#${r}${g}${b}`;\n}\n\nexport function unwrap(node: HTMLElement) {\n const p = node.parentNode;\n if (!p) return;\n while (node.firstChild) p.insertBefore(node.firstChild, node);\n p.removeChild(node);\n}\n\nexport function surroundInline(\n range: Range,\n tag: string,\n attrs?: Record<string, string>\n) {\n const wrap = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrap.setAttribute(k, v));\n try {\n range.surroundContents(wrap);\n } catch {\n const frag = range.extractContents();\n wrap.appendChild(frag);\n range.insertNode(wrap);\n }\n}\n\nfunction unwrapAllMatching(\n node: Node,\n root: HTMLElement,\n matcher: (el: HTMLElement) => boolean\n) {\n let n: Node | null = node.parentNode;\n while (n && n !== root) {\n if (n instanceof HTMLElement && matcher(n)) {\n unwrap(n);\n\n n = node.parentNode;\n continue;\n }\n n = n.parentNode;\n }\n}\n\nexport function toggleInlineTag(\n root: HTMLElement,\n tag: 'strong' | 'em' | 'u' | 'span',\n attrs?: Record<string, string>\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) \n return;\n const range = sel.getRangeAt(0);\n const aliases: Record<string, string[]> = {\n strong: ['strong', 'b'],\n em: ['em', 'i'],\n u: ['u'],\n span: ['span'],\n };\n const candidates = aliases[tag] ?? [tag];\n const isMatch = (el: HTMLElement) =>\n candidates.includes(el.tagName.toLowerCase());\n\n function unwrap(el: HTMLElement) {\n const p = el.parentNode;\n if (!p) return;\n while (el.firstChild) p.insertBefore(el.firstChild, el);\n p.removeChild(el);\n }\n\n function removeEmptyAndNested(root: HTMLElement) {\n root.querySelectorAll(candidates.join(',')).forEach(el => {\n if (!el.textContent?.trim()) {\n el.remove();\n return;\n }\n const nested = Array.from(el.querySelectorAll(candidates.join(',')));\n nested.forEach(n => {\n if (n === el) return;\n while (n.firstChild) el.insertBefore(n.firstChild, n);\n n.remove();\n });\n });\n }\n\n function mergeAdjacent(root: HTMLElement) {\n const list = Array.from(root.querySelectorAll(candidates.join(',')));\n list.forEach(el => {\n const next = el.nextSibling;\n if (next instanceof HTMLElement && isMatch(next)) {\n while (next.firstChild) el.appendChild(next.firstChild);\n next.remove();\n }\n });\n }\n if (range.collapsed) {\n let inside = false;\n let n: Node | null = range.startContainer;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n inside = true;\n break;\n }\n n = n.parentNode;\n }\n\n if (inside && n instanceof HTMLElement) {\n unwrap(n);\n } else {\n const elm = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => elm.setAttribute(k, v));\n elm.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(elm);\n range.setStart(elm.firstChild!, 1);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n return;\n }\n if (range.startContainer.nodeType === Node.TEXT_NODE)\n (range.startContainer as Text).splitText(range.startOffset);\n if (range.endContainer.nodeType === Node.TEXT_NODE)\n (range.endContainer as Text).splitText(range.endOffset);\n const walker = document.createTreeWalker(\n range.commonAncestorContainer,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue?.trim()) return NodeFilter.FILTER_REJECT;\n const r = document.createRange();\n r.selectNodeContents(n);\n const inter =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return inter ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const textNodes: Text[] = [];\n let tn: Node | null;\n while ((tn = walker.nextNode())) textNodes.push(tn as Text);\n\n const allInside = textNodes.length > 0 && textNodes.every(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) return true;\n n = n.parentNode;\n }\n return false;\n });\n\n if (allInside) {\n const first = textNodes[0];\n const last = textNodes[textNodes.length - 1];\n const common = first.parentElement?.closest(tag) as HTMLElement | null;\n if (common && common.contains(last)) {\n const parent = common.parentNode;\n if (parent) {\n const beforeRange = document.createRange();\n beforeRange.setStartBefore(common);\n beforeRange.setEndBefore(first);\n const before = beforeRange.cloneContents();\n\n const afterRange = document.createRange();\n afterRange.setStartAfter(last);\n afterRange.setEndAfter(common);\n const after = afterRange.cloneContents();\n\n const middleRange = document.createRange();\n middleRange.setStartBefore(first);\n middleRange.setEndAfter(last);\n const middle = middleRange.extractContents();\n\n const frag = document.createDocumentFragment();\n if (before.childNodes.length) {\n const b = document.createElement(tag);\n while (before.firstChild) b.appendChild(before.firstChild);\n frag.appendChild(b);\n }\n while (middle.firstChild) frag.appendChild(middle.firstChild);\n if (after.childNodes.length) {\n const a = document.createElement(tag);\n while (after.firstChild) a.appendChild(after.firstChild);\n frag.appendChild(a);\n }\n parent.insertBefore(frag, common);\n parent.removeChild(common);\n }\n } else {\n textNodes.forEach(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n unwrap(n);\n break;\n }\n n = n.parentNode;\n }\n });\n }\n } else {\n textNodes.forEach(txt => {\n const skip = txt.parentElement?.closest('a, .mention, nile-mention');\n if (skip) return;\n const wrapper = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrapper.setAttribute(k, v));\n txt.parentNode?.insertBefore(wrapper, txt);\n wrapper.appendChild(txt);\n });\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\nexport function setBlockTag(root: HTMLElement, tag: 'p' | 'h1' | 'h2' | 'h3') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const block = closestBlock(range.startContainer, root);\n if (!block) return;\n if (block.tagName.toLowerCase() === tag) return;\n const nb = document.createElement(tag);\n while (block.firstChild) nb.appendChild(block.firstChild);\n block.replaceWith(nb);\n const r = document.createRange();\n r.selectNodeContents(nb);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n}\n\nexport function setAlignment(root: HTMLElement, alignment: string) {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n\n const range = selection.getRangeAt(0);\n const commonAncestor = range.commonAncestorContainer;\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(\n commonAncestor,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode: (node) => {\n const el = node as HTMLElement;\n if (\n range.intersectsNode(el) &&\n /^(P|DIV|LI|H[1-6])$/.test(el.tagName)\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n },\n }\n );\n\n let node = walker.nextNode();\n while (node) {\n blocks.push(node as HTMLElement);\n node = walker.nextNode();\n }\n\n if (blocks.length === 0) {\n const block = closestBlock(selection.focusNode, root);\n if (block) blocks.push(block);\n }\n blocks.forEach((block) => {\n block.style.textAlign = alignment;\n });\n}\n\n\nexport function setFontFamily(root: HTMLElement, family: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (range.collapsed) {\n const span = document.createElement('span');\n span.style.fontFamily = family;\n span.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(span);\n const r = document.createRange();\n r.setStart(span.firstChild!, 1);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n surroundInline(range, 'span', { style: `font-family:${family}` });\n}\n\nfunction enclosingStyledSpan(\n editor: HTMLElement,\n node: Node | null,\n dataAttr: 'data-rte-color' | 'data-rte-bg'\n): HTMLSpanElement | null {\n while (node && node !== editor) {\n if (node instanceof HTMLSpanElement && node.hasAttribute(dataAttr)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\n\nfunction applyInlineStyle(\n editor: HTMLElement,\n cssProp: 'color' | 'backgroundColor',\n value: string,\n dataAttr: 'data-rte-color' | 'data-rte-bg'\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const r0 = sel.getRangeAt(0);\n if (!editor.contains(r0.commonAncestorContainer)) return;\n\n const range = r0.cloneRange();\n\n if (range.collapsed) {\n const enclosing = enclosingStyledSpan(\n editor,\n range.startContainer,\n dataAttr\n );\n if (enclosing) {\n (enclosing.style as any)[cssProp] = value;\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const s = document.createElement('span');\n s.setAttribute(dataAttr, '1');\n (s.style as any)[cssProp] = value;\n s.appendChild(document.createTextNode('\\u200B'));\n range.insertNode(s);\n\n const caret = document.createRange();\n caret.setStart(s.firstChild!, 1);\n caret.collapse(true);\n sel.removeAllRanges();\n sel.addRange(caret);\n\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const leftEdge = enclosingStyledSpan(editor, range.startContainer, dataAttr);\n const rightEdge = enclosingStyledSpan(editor, range.endContainer, dataAttr);\n if (leftEdge && leftEdge === rightEdge) {\n if (rangeCoversWholeNode(range, leftEdge)) {\n (leftEdge.style as any)[cssProp] = value;\n } else {\n const mid = splitAndRecolorWithinSpan(\n leftEdge,\n range,\n dataAttr,\n cssProp,\n value\n );\n\n const sel = window.getSelection();\n const r = document.createRange();\n r.selectNodeContents(mid);\n sel?.removeAllRanges();\n sel?.addRange(r);\n }\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const commonEl = (() => {\n let n: Node | null = range.commonAncestorContainer;\n while (n && !(n instanceof HTMLElement)) n = n.parentNode;\n return n as HTMLElement | null;\n })();\n\n const walker = document.createTreeWalker(\n commonEl || editor,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue || !n.nodeValue.trim())\n return NodeFilter.FILTER_REJECT;\n const nodeRange = document.createRange();\n nodeRange.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, nodeRange) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, nodeRange) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const toProcess: Text[] = [];\n let t: Node | null;\n while ((t = walker.nextNode())) toProcess.push(t as Text);\n\n toProcess.forEach(text => {\n let start = 0,\n end = text.length;\n if (text === range.startContainer) start = range.startOffset;\n if (text === range.endContainer) end = range.endOffset;\n if (start > 0) text = text.splitText(start);\n if (end < text.length) text.splitText(end);\n\n const existing = enclosingStyledSpan(editor, text, dataAttr);\n if (existing) {\n (existing.style as any)[cssProp] = value;\n return;\n }\n\n const span = document.createElement('span');\n span.setAttribute(dataAttr, '1');\n (span.style as any)[cssProp] = value;\n const parent = text.parentElement!;\n parent.replaceChild(span, text);\n span.appendChild(text);\n });\n\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n\n // restore selection\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\n// Is the range covering the entire node's contents?\nfunction rangeCoversWholeNode(range: Range, node: Node): boolean {\n const all = document.createRange();\n all.selectNodeContents(node);\n return (\n range.compareBoundaryPoints(Range.START_TO_START, all) <= 0 &&\n range.compareBoundaryPoints(Range.END_TO_END, all) >= 0\n );\n}\n\nfunction hasRangeContent(r: Range): boolean {\n if (r.collapsed) return false;\n const text = r.cloneContents().textContent || '';\n return text.length > 0;\n}\n\n// Split one styled span into [left][middle][right]; recolor only middle\nfunction splitAndRecolorWithinSpan(\n span: HTMLSpanElement,\n range: Range,\n dataAttr: 'data-rte-color' | 'data-rte-bg',\n cssProp: 'color' | 'backgroundColor',\n newValue: string\n): HTMLSpanElement {\n const oldValue = (span.style as any)[cssProp];\n\n const left = document.createRange();\n left.setStart(span, 0);\n left.setEnd(range.startContainer, range.startOffset);\n\n const right = document.createRange();\n right.setStart(range.endContainer, range.endOffset);\n right.setEnd(span, span.childNodes.length);\n\n // Build replacement fragment\n const frag = document.createDocumentFragment();\n\n // helper to make a styled clone shell\n const makeShell = (val: string) => {\n const s = document.createElement('span');\n s.setAttribute(dataAttr, '1');\n (s.style as any)[cssProp] = val;\n return s;\n };\n\n if (hasRangeContent(left)) {\n const sLeft = makeShell(oldValue);\n sLeft.appendChild(left.cloneContents());\n frag.appendChild(sLeft);\n }\n\n const mid = makeShell(newValue);\n mid.appendChild(range.cloneContents());\n frag.appendChild(mid);\n\n if (hasRangeContent(right)) {\n const sRight = makeShell(oldValue);\n sRight.appendChild(right.cloneContents());\n frag.appendChild(sRight);\n }\n\n span.replaceWith(frag);\n return mid;\n}\n\nfunction mergeAdjacentStyledSpans(\n root: HTMLElement,\n dataAttr: 'data-rte-color' | 'data-rte-bg',\n cssProp: 'color' | 'backgroundColor'\n) {\n const spans = Array.from(\n root.querySelectorAll<HTMLSpanElement>(`span[${dataAttr}]`)\n );\n\n const valOf = (el: HTMLElement) => (el.style as any)[cssProp];\n\n spans.forEach(s => {\n const nested = Array.from(\n s.querySelectorAll<HTMLSpanElement>(`span[${dataAttr}]`)\n );\n nested.forEach(child => {\n if (valOf(child) === valOf(s)) {\n while (child.firstChild) s.insertBefore(child.firstChild, child);\n child.remove();\n }\n });\n\n const prev = s.previousSibling;\n if (\n prev instanceof HTMLSpanElement &&\n prev.hasAttribute(dataAttr) &&\n valOf(prev) === valOf(s)\n ) {\n while (s.firstChild) prev.appendChild(s.firstChild);\n s.remove();\n return;\n }\n\n const next = s.nextSibling;\n if (\n next instanceof HTMLSpanElement &&\n next.hasAttribute(dataAttr) &&\n valOf(next) === valOf(s)\n ) {\n while (next.firstChild) s.appendChild(next.firstChild);\n next.remove();\n }\n });\n}\n\nexport function setForeColor(editor: HTMLElement, hex: string) {\n applyInlineStyle(editor, 'color', hex, 'data-rte-color');\n}\nexport function setBackColor(editor: HTMLElement, hex: string) {\n applyInlineStyle(editor, 'backgroundColor', hex, 'data-rte-bg');\n}\n\nexport function toggleList(root: HTMLElement, kind: 'ul' | 'ol') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (range.collapsed) {\n const block = closestBlock(range.startContainer, root);\n if (!block || block === root || block.childNodes.length === 0) {\n const list = document.createElement(kind);\n const li = document.createElement('li');\n li.appendChild(document.createElement('br'));\n list.appendChild(li);\n range.insertNode(list);\n const r = document.createRange();\n r.selectNodeContents(li);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n const list = document.createElement(kind);\n const li = document.createElement('li');\n while (block.firstChild) li.appendChild(block.firstChild);\n list.appendChild(li);\n block.replaceWith(list);\n const r = document.createRange();\n r.selectNodeContents(li);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (n) => {\n if (!(n instanceof HTMLElement)) return NodeFilter.FILTER_SKIP;\n if (!/^(P|DIV|LI|H[1-6])$/.test(n.tagName)) return NodeFilter.FILTER_SKIP;\n\n const r = document.createRange();\n r.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n });\n\n let n: Node | null;\n while ((n = walker.nextNode())) blocks.push(n as HTMLElement);\n\n if (blocks.length === 0) {\n const block = closestBlock(range.startContainer, root);\n if (block) blocks.push(block);\n }\n\n const firstLi = blocks[0].closest('li');\n if (firstLi) {\n const currentList = firstLi.closest('ul,ol') as HTMLElement | null;\n if (!currentList) return;\n const currentAlign =\n (firstLi as HTMLElement).style.textAlign ||\n (currentList as HTMLElement).style.textAlign ||\n '';\n\n if (currentList.tagName.toLowerCase() === kind) {\n const frag = document.createDocumentFragment();\n for (const li of Array.from(currentList.querySelectorAll('li'))) {\n const p = document.createElement('p');\n p.style.textAlign = (li as HTMLElement).style.textAlign || currentAlign || '';\n while (li.firstChild) p.appendChild(li.firstChild);\n frag.appendChild(p);\n }\n currentList.replaceWith(frag);\n } else {\n const newList = document.createElement(kind);\n while (currentList.firstChild) {\n const li = currentList.firstChild as HTMLElement;\n li.style.textAlign = li.style.textAlign || currentAlign || '';\n newList.appendChild(li);\n }\n currentList.replaceWith(newList);\n }\n return;\n }\n\n const newList = document.createElement(kind);\n for (const block of blocks) {\n const li = document.createElement('li');\n const align = block.style.textAlign;\n if (align) li.style.textAlign = align;\n while (block.firstChild) li.appendChild(block.firstChild);\n newList.appendChild(li);\n }\n blocks[0].replaceWith(newList);\n for (let i = 1; i < blocks.length; i++) blocks[i].remove();\n}\n\n\n\nexport function insertOrEditLink(root: HTMLElement, href?: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n\n let n: Node | null = range.startContainer;\n let a: HTMLAnchorElement | null = null;\n while (n && n !== root) {\n if (n instanceof HTMLAnchorElement) {\n a = n;\n break;\n }\n n = n.parentNode;\n }\n\n const url =\n href ??\n (typeof window !== 'undefined'\n ? window.prompt('Enter URL', a?.href || 'https://') || ''\n : '');\n if (!url) return;\n\n if (a) {\n a.href = url;\n return;\n }\n\n if (range.collapsed) {\n const link = document.createElement('a');\n link.href = url;\n link.textContent = url;\n range.insertNode(link);\n const r = document.createRange();\n r.setStartAfter(link);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n\n const link = document.createElement('a');\n link.href = url;\n try {\n range.surroundContents(link);\n } catch {\n const frag = range.extractContents();\n link.appendChild(frag);\n range.insertNode(link);\n }\n}\n"],"names":["closestBlock","node","root","_n","HTMLElement","display","getComputedStyle","tagName","match","parentNode","nearestElement","n","rgbToHex","rgb","m","concat","Number","toString","padStart","toggleInlineTag","tag","attrs","_strong$em$u$span$t","sel","window","getSelection","rangeCount","range","getRangeAt","candidates","strong","em","u","span","isMatch","el","includes","toLowerCase","unwrap","p","firstChild","insertBefore","removeChild","removeEmptyAndNested","querySelectorAll","join","forEach","_n$textContent","textContent","trim","remove","Array","from","mergeAdjacent","next","nextSibling","appendChild","collapsed","inside","startContainer","elm","document","createElement","Object","entries","_ref","_ref2","_slicedToArray","k","v","setAttribute","createTextNode","insertNode","setStart","collapse","removeAllRanges","addRange","nodeType","Node","TEXT_NODE","splitText","startOffset","endContainer","endOffset","walker","createTreeWalker","commonAncestorContainer","NodeFilter","SHOW_TEXT","acceptNode","_n$nodeValue","nodeValue","FILTER_REJECT","r","createRange","selectNodeContents","compareBoundaryPoints","Range","END_TO_START","START_TO_END","FILTER_ACCEPT","textNodes","tn","nextNode","push","length","every","txt","_o$parentElement","first","last","common","parentElement","closest","contains","parent","beforeRange","setStartBefore","setEndBefore","before","cloneContents","afterRange","setStartAfter","setEndAfter","after","middleRange","middle","extractContents","frag","createDocumentFragment","childNodes","b","a","skip","wrapper","_ref3","_ref4","setBlockTag","block","nb","replaceWith","setAlignment","alignment","selection","commonAncestor","blocks","SHOW_ELEMENT","intersectsNode","test","FILTER_SKIP","focusNode","style","textAlign","setFontFamily","family","fontFamily","wrap","_ref5","_ref6","surroundContents","_unused","surroundInline","enclosingStyledSpan","editor","dataAttr","HTMLSpanElement","hasAttribute","applyInlineStyle","cssProp","value","r0","cloneRange","enclosing","mergeAdjacentStyledSpans","s","caret","leftEdge","rightEdge","all","START_TO_START","END_TO_END","rangeCoversWholeNode","mid","newValue","oldValue","left","setEnd","right","makeShell","val","hasRangeContent","sLeft","sRight","splitAndRecolorWithinSpan","commonEl","nodeRange","toProcess","t","text","start","end","existing","replaceChild","spans","valOf","child","prev","previousSibling","setForeColor","hex","setBackColor","toggleList","kind","list","li","firstLi","currentList","currentAlign","_i3","_Array$from","newList","_i4","_r7","align","i","_export"],"mappings":"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"}
1
+ {"version":3,"file":"utils.cjs.js","sources":["../../../src/nile-rich-text-editor/utils.ts"],"sourcesContent":["export function closestBlock(\n node: Node | null,\n root: HTMLElement\n): HTMLElement | null {\n while (node && node !== root) {\n if (node instanceof HTMLElement) {\n const display = getComputedStyle(node).display;\n if (\n node.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/) ||\n display === 'block' ||\n display === 'list-item'\n ) {\n return node;\n }\n }\n node = node?.parentNode || null;\n }\n return root;\n}\n\nexport function nearestElement(n: Node | null): HTMLElement | null {\n while (n && !(n instanceof HTMLElement)) n = n.parentNode as Node | null;\n return n as HTMLElement | null;\n}\n\nexport function rgbToHex(rgb: string): string {\n const m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n if (!m) return '#000000';\n const r = Number(m[1]).toString(16).padStart(2, '0');\n const g = Number(m[2]).toString(16).padStart(2, '0');\n const b = Number(m[3]).toString(16).padStart(2, '0');\n return `#${r}${g}${b}`;\n}\n\nexport function unwrap(node: HTMLElement) {\n const p = node.parentNode;\n if (!p) return;\n while (node.firstChild) p.insertBefore(node.firstChild, node);\n p.removeChild(node);\n}\n\nexport function surroundInline(\n range: Range,\n tag: string,\n attrs?: Record<string, string>\n) {\n const wrap = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrap.setAttribute(k, v));\n try {\n range.surroundContents(wrap);\n } catch {\n const frag = range.extractContents();\n wrap.appendChild(frag);\n range.insertNode(wrap);\n }\n}\n\nfunction unwrapAllMatching(\n node: Node,\n root: HTMLElement,\n matcher: (el: HTMLElement) => boolean\n) {\n let n: Node | null = node.parentNode;\n while (n && n !== root) {\n if (n instanceof HTMLElement && matcher(n)) {\n unwrap(n);\n\n n = node.parentNode;\n continue;\n }\n n = n.parentNode;\n }\n}\n\nexport function toggleInlineTag(\n root: HTMLElement,\n tag: 'strong' | 'em' | 'u' | 'span',\n attrs?: Record<string, string>\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) \n return;\n const range = sel.getRangeAt(0);\n const aliases: Record<string, string[]> = {\n strong: ['strong', 'b'],\n em: ['em', 'i'],\n u: ['u'],\n span: ['span'],\n };\n const candidates = aliases[tag] ?? [tag];\n const isMatch = (el: HTMLElement) =>\n candidates.includes(el.tagName.toLowerCase());\n\n function unwrap(el: HTMLElement) {\n const p = el.parentNode;\n if (!p) return;\n while (el.firstChild) p.insertBefore(el.firstChild, el);\n p.removeChild(el);\n }\n\n function removeEmptyAndNested(root: HTMLElement) {\n root.querySelectorAll(candidates.join(',')).forEach(el => {\n if (!el.textContent?.trim()) {\n el.remove();\n return;\n }\n const nested = Array.from(el.querySelectorAll(candidates.join(',')));\n nested.forEach(n => {\n if (n === el) return;\n while (n.firstChild) el.insertBefore(n.firstChild, n);\n n.remove();\n });\n });\n }\n\n function mergeAdjacent(root: HTMLElement) {\n const list = Array.from(root.querySelectorAll(candidates.join(',')));\n list.forEach(el => {\n const next = el.nextSibling;\n if (next instanceof HTMLElement && isMatch(next)) {\n while (next.firstChild) el.appendChild(next.firstChild);\n next.remove();\n }\n });\n }\n if (range.collapsed) {\n let inside = false;\n let n: Node | null = range.startContainer;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n inside = true;\n break;\n }\n n = n.parentNode;\n }\n\n if (inside && n instanceof HTMLElement) {\n unwrap(n);\n } else {\n const elm = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => elm.setAttribute(k, v));\n elm.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(elm);\n range.setStart(elm.firstChild!, 1);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n return;\n }\n if (range.startContainer.nodeType === Node.TEXT_NODE)\n (range.startContainer as Text).splitText(range.startOffset);\n if (range.endContainer.nodeType === Node.TEXT_NODE)\n (range.endContainer as Text).splitText(range.endOffset);\n const walker = document.createTreeWalker(\n range.commonAncestorContainer,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue?.trim()) return NodeFilter.FILTER_REJECT;\n const r = document.createRange();\n r.selectNodeContents(n);\n const inter =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return inter ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const textNodes: Text[] = [];\n let tn: Node | null;\n while ((tn = walker.nextNode())) textNodes.push(tn as Text);\n\n const allInside = textNodes.length > 0 && textNodes.every(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) return true;\n n = n.parentNode;\n }\n return false;\n });\n\n if (allInside) {\n const first = textNodes[0];\n const last = textNodes[textNodes.length - 1];\n const common = first.parentElement?.closest(tag) as HTMLElement | null;\n if (common && common.contains(last)) {\n const parent = common.parentNode;\n if (parent) {\n const beforeRange = document.createRange();\n beforeRange.setStartBefore(common);\n beforeRange.setEndBefore(first);\n const before = beforeRange.cloneContents();\n\n const afterRange = document.createRange();\n afterRange.setStartAfter(last);\n afterRange.setEndAfter(common);\n const after = afterRange.cloneContents();\n\n const middleRange = document.createRange();\n middleRange.setStartBefore(first);\n middleRange.setEndAfter(last);\n const middle = middleRange.extractContents();\n\n const frag = document.createDocumentFragment();\n if (before.childNodes.length) {\n const b = document.createElement(tag);\n while (before.firstChild) b.appendChild(before.firstChild);\n frag.appendChild(b);\n }\n while (middle.firstChild) frag.appendChild(middle.firstChild);\n if (after.childNodes.length) {\n const a = document.createElement(tag);\n while (after.firstChild) a.appendChild(after.firstChild);\n frag.appendChild(a);\n }\n parent.insertBefore(frag, common);\n parent.removeChild(common);\n }\n } else {\n textNodes.forEach(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n unwrap(n);\n break;\n }\n n = n.parentNode;\n }\n });\n }\n } else {\n textNodes.forEach(txt => {\n const skip = txt.parentElement?.closest('a, .mention, nile-mention');\n if (skip) return;\n const wrapper = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrapper.setAttribute(k, v));\n txt.parentNode?.insertBefore(wrapper, txt);\n wrapper.appendChild(txt);\n });\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\nexport function setBlockTag(root: HTMLElement, tag: 'p' | 'h1' | 'h2' | 'h3') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const block = closestBlock(range.startContainer, root);\n if (!block) return;\n if (block.tagName.toLowerCase() === tag) return;\n const nb = document.createElement(tag);\n while (block.firstChild) nb.appendChild(block.firstChild);\n block.replaceWith(nb);\n const r = document.createRange();\n r.selectNodeContents(nb);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n}\n\nexport function setAlignment(root: HTMLElement, alignment: string) {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n\n const range = selection.getRangeAt(0);\n const commonAncestor = range.commonAncestorContainer;\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(\n commonAncestor,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode: (node) => {\n const el = node as HTMLElement;\n if (\n range.intersectsNode(el) &&\n /^(P|DIV|LI|H[1-6])$/.test(el.tagName)\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n },\n }\n );\n\n let node = walker.nextNode();\n while (node) {\n blocks.push(node as HTMLElement);\n node = walker.nextNode();\n }\n\n if (blocks.length === 0) {\n const block = closestBlock(selection.focusNode, root);\n if (block) blocks.push(block);\n }\n blocks.forEach((block) => {\n block.style.textAlign = alignment;\n });\n}\n\n\nexport function setFontFamily(root: HTMLElement, family: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (range.collapsed) {\n const span = document.createElement('span');\n span.style.fontFamily = family;\n span.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(span);\n const r = document.createRange();\n r.setStart(span.firstChild!, 1);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n surroundInline(range, 'span', { style: `font-family:${family}` });\n}\n\nfunction enclosingStyledSpan(\n editor: HTMLElement,\n node: Node | null,\n dataAttr: 'data-rte-color' | 'data-rte-bg'\n): HTMLSpanElement | null {\n while (node && node !== editor) {\n if (node instanceof HTMLSpanElement && node.hasAttribute(dataAttr)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\n\nfunction applyInlineStyle(\n editor: HTMLElement,\n cssProp: 'color' | 'backgroundColor',\n value: string,\n dataAttr: 'data-rte-color' | 'data-rte-bg'\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const r0 = sel.getRangeAt(0);\n if (!editor.contains(r0.commonAncestorContainer)) return;\n\n const range = r0.cloneRange();\n\n if (range.collapsed) {\n const enclosing = enclosingStyledSpan(\n editor,\n range.startContainer,\n dataAttr\n );\n if (enclosing) {\n (enclosing.style as any)[cssProp] = value;\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const s = document.createElement('span');\n s.setAttribute(dataAttr, '1');\n (s.style as any)[cssProp] = value;\n s.appendChild(document.createTextNode('\\u200B'));\n range.insertNode(s);\n\n const caret = document.createRange();\n caret.setStart(s.firstChild!, 1);\n caret.collapse(true);\n sel.removeAllRanges();\n sel.addRange(caret);\n\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const leftEdge = enclosingStyledSpan(editor, range.startContainer, dataAttr);\n const rightEdge = enclosingStyledSpan(editor, range.endContainer, dataAttr);\n if (leftEdge && leftEdge === rightEdge) {\n if (rangeCoversWholeNode(range, leftEdge)) {\n (leftEdge.style as any)[cssProp] = value;\n } else {\n const mid = splitAndRecolorWithinSpan(\n leftEdge,\n range,\n dataAttr,\n cssProp,\n value\n );\n\n const sel = window.getSelection();\n const r = document.createRange();\n r.selectNodeContents(mid);\n sel?.removeAllRanges();\n sel?.addRange(r);\n }\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const commonEl = (() => {\n let n: Node | null = range.commonAncestorContainer;\n while (n && !(n instanceof HTMLElement)) n = n.parentNode;\n return n as HTMLElement | null;\n })();\n\n const walker = document.createTreeWalker(\n commonEl || editor,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue || !n.nodeValue.trim())\n return NodeFilter.FILTER_REJECT;\n const nodeRange = document.createRange();\n nodeRange.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, nodeRange) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, nodeRange) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const toProcess: Text[] = [];\n let t: Node | null;\n while ((t = walker.nextNode())) toProcess.push(t as Text);\n\n toProcess.forEach(text => {\n let start = 0,\n end = text.length;\n if (text === range.startContainer) start = range.startOffset;\n if (text === range.endContainer) end = range.endOffset;\n if (start > 0) text = text.splitText(start);\n if (end < text.length) text.splitText(end);\n\n const existing = enclosingStyledSpan(editor, text, dataAttr);\n if (existing) {\n (existing.style as any)[cssProp] = value;\n return;\n }\n\n const span = document.createElement('span');\n span.setAttribute(dataAttr, '1');\n (span.style as any)[cssProp] = value;\n const parent = text.parentElement!;\n parent.replaceChild(span, text);\n span.appendChild(text);\n });\n\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n\n // restore selection\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\n// Is the range covering the entire node's contents?\nfunction rangeCoversWholeNode(range: Range, node: Node): boolean {\n const all = document.createRange();\n all.selectNodeContents(node);\n return (\n range.compareBoundaryPoints(Range.START_TO_START, all) <= 0 &&\n range.compareBoundaryPoints(Range.END_TO_END, all) >= 0\n );\n}\n\nfunction hasRangeContent(r: Range): boolean {\n if (r.collapsed) return false;\n const text = r.cloneContents().textContent || '';\n return text.length > 0;\n}\n\n// Split one styled span into [left][middle][right]; recolor only middle\nfunction splitAndRecolorWithinSpan(\n span: HTMLSpanElement,\n range: Range,\n dataAttr: 'data-rte-color' | 'data-rte-bg',\n cssProp: 'color' | 'backgroundColor',\n newValue: string\n): HTMLSpanElement {\n const oldValue = (span.style as any)[cssProp];\n\n const left = document.createRange();\n left.setStart(span, 0);\n left.setEnd(range.startContainer, range.startOffset);\n\n const right = document.createRange();\n right.setStart(range.endContainer, range.endOffset);\n right.setEnd(span, span.childNodes.length);\n\n // Build replacement fragment\n const frag = document.createDocumentFragment();\n\n // helper to make a styled clone shell\n const makeShell = (val: string) => {\n const s = document.createElement('span');\n s.setAttribute(dataAttr, '1');\n (s.style as any)[cssProp] = val;\n return s;\n };\n\n if (hasRangeContent(left)) {\n const sLeft = makeShell(oldValue);\n sLeft.appendChild(left.cloneContents());\n frag.appendChild(sLeft);\n }\n\n const mid = makeShell(newValue);\n mid.appendChild(range.cloneContents());\n frag.appendChild(mid);\n\n if (hasRangeContent(right)) {\n const sRight = makeShell(oldValue);\n sRight.appendChild(right.cloneContents());\n frag.appendChild(sRight);\n }\n\n span.replaceWith(frag);\n return mid;\n}\n\nfunction mergeAdjacentStyledSpans(\n root: HTMLElement,\n dataAttr: 'data-rte-color' | 'data-rte-bg',\n cssProp: 'color' | 'backgroundColor'\n) {\n const spans = Array.from(\n root.querySelectorAll<HTMLSpanElement>(`span[${dataAttr}]`)\n );\n\n const valOf = (el: HTMLElement) => (el.style as any)[cssProp];\n\n spans.forEach(s => {\n const nested = Array.from(\n s.querySelectorAll<HTMLSpanElement>(`span[${dataAttr}]`)\n );\n nested.forEach(child => {\n if (valOf(child) === valOf(s)) {\n while (child.firstChild) s.insertBefore(child.firstChild, child);\n child.remove();\n }\n });\n\n const prev = s.previousSibling;\n if (\n prev instanceof HTMLSpanElement &&\n prev.hasAttribute(dataAttr) &&\n valOf(prev) === valOf(s)\n ) {\n while (s.firstChild) prev.appendChild(s.firstChild);\n s.remove();\n return;\n }\n\n const next = s.nextSibling;\n if (\n next instanceof HTMLSpanElement &&\n next.hasAttribute(dataAttr) &&\n valOf(next) === valOf(s)\n ) {\n while (next.firstChild) s.appendChild(next.firstChild);\n next.remove();\n }\n });\n}\n\nexport function setForeColor(editor: HTMLElement, hex: string) {\n applyInlineStyle(editor, 'color', hex, 'data-rte-color');\n}\nexport function setBackColor(editor: HTMLElement, hex: string) {\n applyInlineStyle(editor, 'backgroundColor', hex, 'data-rte-bg');\n}\n\nexport function toggleList(root: HTMLElement, kind: 'ul' | 'ol') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n function styleList(list: HTMLElement) {\n list.style.paddingInlineStart = '0';\n list.style.margin = '0';\n }\n\n function isEmptyBlock(el: HTMLElement) {\n return !el.textContent?.trim() && !el.querySelector('img,br');\n }\n\n function setCursorInside(el: HTMLElement) {\n const selection = document.getSelection();\n if (!selection) return;\n const r = document.createRange();\n r.selectNodeContents(el);\n r.collapse(true);\n selection.removeAllRanges();\n selection.addRange(r);\n }\n\n function closestBlock(node: Node | null): HTMLElement | null {\n while (node && node !== root) {\n if (node instanceof HTMLElement) {\n const display = getComputedStyle(node).display;\n if (\n node.tagName.match(/^(P|DIV|H[1-6]|LI)$/) ||\n display === 'block' ||\n display === 'list-item'\n )\n return node;\n }\n node = node.parentNode;\n }\n return null;\n }\n\n function unwrapList(list: HTMLElement) {\n const frag = document.createDocumentFragment();\n (Array.from(list.querySelectorAll('li')) as HTMLElement[]).forEach((li) => {\n const p = document.createElement('p');\n if (li.style.textAlign) p.style.textAlign = li.style.textAlign; \n while (li.firstChild) p.appendChild(li.firstChild);\n frag.appendChild(p);\n });\n list.replaceWith(frag);\n }\n \n function unwrapListItem(block: HTMLElement) {\n const li = block.closest('li');\n if (!li) return;\n const list = li.parentElement as HTMLElement;\n const p = document.createElement('p');\n if (li.style.textAlign) p.style.textAlign = li.style.textAlign; \n while (li.firstChild) p.appendChild(li.firstChild);\n list.parentNode?.insertBefore(p, list.nextSibling);\n li.remove();\n if (list.childNodes.length === 0) list.remove();\n setCursorInside(p);\n }\n \n\n function switchListType(list: HTMLElement, newType: 'ul' | 'ol') {\n const newList = document.createElement(newType);\n styleList(newList);\n while (list.firstChild) newList.appendChild(list.firstChild);\n list.replaceWith(newList);\n }\n if (range.collapsed) {\n const block = closestBlock(range.startContainer);\n const insideList = block?.closest('ul,ol') as HTMLElement | null;\n if (insideList && insideList.tagName.toLowerCase() === kind) {\n unwrapListItem(block as HTMLElement);\n return;\n }\n\n if (insideList && insideList.tagName.toLowerCase() !== kind) {\n switchListType(insideList, kind);\n return;\n }\n if (!block || block === root || block.childNodes.length === 0 || isEmptyBlock(block)) {\n const list = document.createElement(kind);\n const li = document.createElement('li');\n li.appendChild(document.createElement('br'));\n list.appendChild(li);\n styleList(list);\n range.insertNode(list);\n setCursorInside(li);\n return;\n }\n const list = document.createElement(kind);\n styleList(list);\n const li = document.createElement('li');\n if (block.style.textAlign) li.style.textAlign = block.style.textAlign;\n while (block.firstChild) li.appendChild(block.firstChild);\n list.appendChild(li);\n block.replaceWith(list);\n setCursorInside(li);\n return;\n }\n\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (n) => {\n if (!(n instanceof HTMLElement)) return NodeFilter.FILTER_SKIP;\n if (!/^(P|DIV|LI|H[1-6])$/.test(n.tagName)) return NodeFilter.FILTER_SKIP;\n const r = document.createRange();\n r.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n });\n let n: Node | null;\n while ((n = walker.nextNode())) blocks.push(n as HTMLElement);\n\n if (blocks.length === 0) {\n const block = closestBlock(range.startContainer);\n if (block) blocks.push(block);\n }\n\n const firstLi = blocks[0].closest('li');\n if (firstLi) {\n const currentList = firstLi.closest('ul,ol') as HTMLElement | null;\n if (!currentList) return;\n if (currentList.tagName.toLowerCase() === kind) unwrapList(currentList);\n else switchListType(currentList, kind);\n return;\n }\n const newList = document.createElement(kind);\n styleList(newList);\n for (const block of blocks) {\n const li = document.createElement('li');\n if (block.style.textAlign) li.style.textAlign = block.style.textAlign;\n while (block.firstChild) li.appendChild(block.firstChild);\n newList.appendChild(li);\n }\n blocks[0].replaceWith(newList);\n for (let i = 1; i < blocks.length; i++) blocks[i].remove();\n}\n\n\n\n\n\nexport function insertOrEditLink(root: HTMLElement, href?: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n\n let n: Node | null = range.startContainer;\n let a: HTMLAnchorElement | null = null;\n while (n && n !== root) {\n if (n instanceof HTMLAnchorElement) {\n a = n;\n break;\n }\n n = n.parentNode;\n }\n\n const url =\n href ??\n (typeof window !== 'undefined'\n ? window.prompt('Enter URL', a?.href || 'https://') || ''\n : '');\n if (!url) return;\n\n if (a) {\n a.href = url;\n return;\n }\n\n if (range.collapsed) {\n const link = document.createElement('a');\n link.href = url;\n link.textContent = url;\n range.insertNode(link);\n const r = document.createRange();\n r.setStartAfter(link);\n r.collapse(true);\n sel?.removeAllRanges();\n sel.addRange(r);\n return;\n }\n\n const link = document.createElement('a');\n link.href = url;\n try {\n range.surroundContents(link);\n } catch {\n const frag = range.extractContents();\n link.appendChild(frag);\n range.insertNode(link);\n }\n}\n"],"names":["closestBlock","node","root","_n","HTMLElement","display","getComputedStyle","tagName","match","parentNode","nearestElement","n","rgbToHex","rgb","m","concat","Number","toString","padStart","toggleInlineTag","tag","attrs","sel","window","getSelection","rangeCount","range","getRangeAt","candidates","strong","em","u","span","_strong$em$u$span$t","isMatch","el","includes","toLowerCase","unwrap","p","firstChild","insertBefore","removeChild","removeEmptyAndNested","querySelectorAll","join","forEach","_n$textContent","textContent","trim","remove","Array","from","mergeAdjacent","next","nextSibling","appendChild","collapsed","inside","startContainer","elm","document","createElement","Object","entries","_ref","_ref2","_slicedToArray","k","v","setAttribute","createTextNode","insertNode","setStart","collapse","removeAllRanges","addRange","nodeType","Node","TEXT_NODE","splitText","startOffset","endContainer","endOffset","walker","createTreeWalker","commonAncestorContainer","NodeFilter","SHOW_TEXT","acceptNode","_n$nodeValue","nodeValue","FILTER_REJECT","r","createRange","selectNodeContents","compareBoundaryPoints","Range","END_TO_START","START_TO_END","FILTER_ACCEPT","textNodes","tn","nextNode","push","length","every","txt","_o$parentElement","first","last","common","parentElement","closest","contains","parent","beforeRange","setStartBefore","setEndBefore","before","cloneContents","afterRange","setStartAfter","setEndAfter","after","middleRange","middle","extractContents","frag","createDocumentFragment","childNodes","b","a","_n$parentElement","_n$parentNode","skip","wrapper","_ref3","_ref4","setBlockTag","block","nb","replaceWith","setAlignment","alignment","selection","commonAncestor","blocks","SHOW_ELEMENT","intersectsNode","test","FILTER_SKIP","focusNode","style","textAlign","setFontFamily","family","fontFamily","wrap","_ref5","_ref6","surroundContents","_unused","surroundInline","enclosingStyledSpan","editor","dataAttr","HTMLSpanElement","hasAttribute","applyInlineStyle","cssProp","value","r0","cloneRange","enclosing","mergeAdjacentStyledSpans","s","caret","leftEdge","rightEdge","all","START_TO_START","END_TO_END","rangeCoversWholeNode","mid","newValue","oldValue","left","setEnd","right","makeShell","val","hasRangeContent","sLeft","sRight","splitAndRecolorWithinSpan","commonEl","nodeRange","toProcess","t","text","start","end","existing","replaceChild","spans","valOf","child","prev","previousSibling","setForeColor","hex","setBackColor","toggleList","kind","styleList","list","paddingInlineStart","margin","setCursorInside","switchListType","newType","newList","_f$textContent","insideList","_o$parentNode","li","unwrapListItem","querySelector","firstLi","currentList","unwrapList","_i2","_s4","i","_export"],"mappings":"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"}
@@ -1 +1 @@
1
- function n(n,t){for(;n&&n!==t;){if(n instanceof HTMLElement){const t=getComputedStyle(n).display;if(n.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===t||"list-item"===t)return n}n=n?.parentNode||null}return t}function t(n){for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n}function o(n){const t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return`#${Number(t[1]).toString(16).padStart(2,"0")}${Number(t[2]).toString(16).padStart(2,"0")}${Number(t[3]).toString(16).padStart(2,"0")}`}function e(n,t,o){const e=window.getSelection();if(!e||0===e.rangeCount)return;const c=e.getRangeAt(0),r={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t]??[t],i=n=>r.includes(n.tagName.toLowerCase());function u(n){const t=n.parentNode;if(t){for(;n.firstChild;)t.insertBefore(n.firstChild,n);t.removeChild(n)}}function s(n){n.querySelectorAll(r.join(",")).forEach((n=>{if(!n.textContent?.trim())return void n.remove();Array.from(n.querySelectorAll(r.join(","))).forEach((t=>{if(t!==n){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove()}}))}))}function f(n){Array.from(n.querySelectorAll(r.join(","))).forEach((n=>{const t=n.nextSibling;if(t instanceof HTMLElement&&i(t)){for(;t.firstChild;)n.appendChild(t.firstChild);t.remove()}}))}if(c.collapsed){let r=!1,d=c.startContainer;for(;d&&d!==n;){if(d instanceof HTMLElement&&i(d)){r=!0;break}d=d.parentNode}if(r&&d instanceof HTMLElement)u(d);else{const n=document.createElement(t);o&&Object.entries(o).forEach((([t,o])=>n.setAttribute(t,o))),n.appendChild(document.createTextNode("​")),c.insertNode(n),c.setStart(n.firstChild,1),c.collapse(!0),e.removeAllRanges(),e.addRange(c)}return s(n),void f(n)}c.startContainer.nodeType===Node.TEXT_NODE&&c.startContainer.splitText(c.startOffset),c.endContainer.nodeType===Node.TEXT_NODE&&c.endContainer.splitText(c.endOffset);const d=document.createTreeWalker(c.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:n=>{if(!n.nodeValue?.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(n);return c.compareBoundaryPoints(Range.END_TO_START,t)<0&&c.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),m=[];let a;for(;a=d.nextNode();)m.push(a);if(m.length>0&&m.every((t=>{let o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o))return!0;o=o.parentNode}return!1}))){const o=m[0],e=m[m.length-1],c=o.parentElement?.closest(t);if(c&&c.contains(e)){const n=c.parentNode;if(n){const r=document.createRange();r.setStartBefore(c),r.setEndBefore(o);const i=r.cloneContents(),u=document.createRange();u.setStartAfter(e),u.setEndAfter(c);const s=u.cloneContents(),f=document.createRange();f.setStartBefore(o),f.setEndAfter(e);const d=f.extractContents(),m=document.createDocumentFragment();if(i.childNodes.length){const n=document.createElement(t);for(;i.firstChild;)n.appendChild(i.firstChild);m.appendChild(n)}for(;d.firstChild;)m.appendChild(d.firstChild);if(s.childNodes.length){const n=document.createElement(t);for(;s.firstChild;)n.appendChild(s.firstChild);m.appendChild(n)}n.insertBefore(m,c),n.removeChild(c)}}else m.forEach((t=>{let o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o)){u(o);break}o=o.parentNode}}))}else m.forEach((n=>{const e=n.parentElement?.closest("a, .mention, nile-mention");if(e)return;const c=document.createElement(t);o&&Object.entries(o).forEach((([n,t])=>c.setAttribute(n,t))),n.parentNode?.insertBefore(c,n),c.appendChild(n)}));s(n),f(n),e.removeAllRanges(),e.addRange(c)}function c(t,o){const e=document.getSelection();if(!e||0===e.rangeCount)return;const c=n(e.getRangeAt(0).startContainer,t);if(!c)return;if(c.tagName.toLowerCase()===o)return;const r=document.createElement(o);for(;c.firstChild;)r.appendChild(c.firstChild);c.replaceWith(r);const i=document.createRange();i.selectNodeContents(r),i.collapse(!0),e.removeAllRanges(),e.addRange(i)}function r(t,o){const e=window.getSelection();if(!e||0===e.rangeCount)return;const c=e.getRangeAt(0),r=c.commonAncestorContainer,i=[],u=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const t=n;return c.intersectsNode(t)&&/^(P|DIV|LI|H[1-6])$/.test(t.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});let s=u.nextNode();for(;s;)i.push(s),s=u.nextNode();if(0===i.length){const o=n(e.focusNode,t);o&&i.push(o)}i.forEach((n=>{n.style.textAlign=o}))}function i(n,t){const o=document.getSelection();if(!o||0===o.rangeCount)return;const e=o.getRangeAt(0);if(e.collapsed){const n=document.createElement("span");n.style.fontFamily=t,n.appendChild(document.createTextNode("​")),e.insertNode(n);const c=document.createRange();return c.setStart(n.firstChild,1),c.collapse(!0),o.removeAllRanges(),void o.addRange(c)}!function(n,t,o){const e=document.createElement(t);o&&Object.entries(o).forEach((([n,t])=>e.setAttribute(n,t)));try{n.surroundContents(e)}catch{const t=n.extractContents();e.appendChild(t),n.insertNode(e)}}(e,"span",{style:`font-family:${t}`})}function u(n,t,o){for(;t&&t!==n;){if(t instanceof HTMLSpanElement&&t.hasAttribute(o))return t;t=t.parentNode}return null}function s(n,t,o,e){const c=window.getSelection();if(!c||0===c.rangeCount)return;const r=c.getRangeAt(0);if(!n.contains(r.commonAncestorContainer))return;const i=r.cloneRange();if(i.collapsed){const r=u(n,i.startContainer,e);if(r)return r.style[t]=o,void d(n,e,t);const s=document.createElement("span");s.setAttribute(e,"1"),s.style[t]=o,s.appendChild(document.createTextNode("​")),i.insertNode(s);const f=document.createRange();return f.setStart(s.firstChild,1),f.collapse(!0),c.removeAllRanges(),c.addRange(f),void d(n,e,t)}const s=u(n,i.startContainer,e),m=u(n,i.endContainer,e);if(s&&s===m){if(function(n,t){const o=document.createRange();return o.selectNodeContents(t),n.compareBoundaryPoints(Range.START_TO_START,o)<=0&&n.compareBoundaryPoints(Range.END_TO_END,o)>=0}(i,s))s.style[t]=o;else{const n=function(n,t,o,e,c){const r=n.style[e],i=document.createRange();i.setStart(n,0),i.setEnd(t.startContainer,t.startOffset);const u=document.createRange();u.setStart(t.endContainer,t.endOffset),u.setEnd(n,n.childNodes.length);const s=document.createDocumentFragment(),d=n=>{const t=document.createElement("span");return t.setAttribute(o,"1"),t.style[e]=n,t};if(f(i)){const n=d(r);n.appendChild(i.cloneContents()),s.appendChild(n)}const m=d(c);if(m.appendChild(t.cloneContents()),s.appendChild(m),f(u)){const n=d(r);n.appendChild(u.cloneContents()),s.appendChild(n)}return n.replaceWith(s),m}(s,i,e,t,o),c=window.getSelection(),r=document.createRange();r.selectNodeContents(n),c?.removeAllRanges(),c?.addRange(r)}return void d(n,e,t)}const a=(()=>{let n=i.commonAncestorContainer;for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n})(),l=document.createTreeWalker(a||n,NodeFilter.SHOW_TEXT,{acceptNode:n=>{if(!n.nodeValue||!n.nodeValue.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(n);return i.compareBoundaryPoints(Range.END_TO_START,t)<0&&i.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),N=[];let H;for(;H=l.nextNode();)N.push(H);N.forEach((c=>{let r=0,s=c.length;c===i.startContainer&&(r=i.startOffset),c===i.endContainer&&(s=i.endOffset),r>0&&(c=c.splitText(r)),s<c.length&&c.splitText(s);const f=u(n,c,e);if(f)return void(f.style[t]=o);const d=document.createElement("span");d.setAttribute(e,"1"),d.style[t]=o;c.parentElement.replaceChild(d,c),d.appendChild(c)})),d(n,e,t),c.removeAllRanges(),c.addRange(i)}function f(n){if(n.collapsed)return!1;return(n.cloneContents().textContent||"").length>0}function d(n,t,o){const e=Array.from(n.querySelectorAll(`span[${t}]`)),c=n=>n.style[o];e.forEach((n=>{Array.from(n.querySelectorAll(`span[${t}]`)).forEach((t=>{if(c(t)===c(n)){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove()}}));const o=n.previousSibling;if(o instanceof HTMLSpanElement&&o.hasAttribute(t)&&c(o)===c(n)){for(;n.firstChild;)o.appendChild(n.firstChild);return void n.remove()}const e=n.nextSibling;if(e instanceof HTMLSpanElement&&e.hasAttribute(t)&&c(e)===c(n)){for(;e.firstChild;)n.appendChild(e.firstChild);e.remove()}}))}function m(n,t){s(n,"color",t,"data-rte-color")}function a(n,t){s(n,"backgroundColor",t,"data-rte-bg")}function l(t,o){const e=document.getSelection();if(!e||0===e.rangeCount)return;const c=e.getRangeAt(0);if(c.collapsed){const r=n(c.startContainer,t);if(!r||r===t||0===r.childNodes.length){const n=document.createElement(o),t=document.createElement("li");t.appendChild(document.createElement("br")),n.appendChild(t),c.insertNode(n);const r=document.createRange();return r.selectNodeContents(t),r.collapse(!0),e.removeAllRanges(),void e.addRange(r)}const i=document.createElement(o),u=document.createElement("li");for(;r.firstChild;)u.appendChild(r.firstChild);i.appendChild(u),r.replaceWith(i);const s=document.createRange();return s.selectNodeContents(u),s.collapse(!0),e.removeAllRanges(),void e.addRange(s)}const r=[],i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{if(!(n instanceof HTMLElement))return NodeFilter.FILTER_SKIP;if(!/^(P|DIV|LI|H[1-6])$/.test(n.tagName))return NodeFilter.FILTER_SKIP;const t=document.createRange();t.selectNodeContents(n);return c.compareBoundaryPoints(Range.END_TO_START,t)<0&&c.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let u;for(;u=i.nextNode();)r.push(u);if(0===r.length){const o=n(c.startContainer,t);o&&r.push(o)}const s=r[0].closest("li");if(s){const n=s.closest("ul,ol");if(!n)return;const t=s.style.textAlign||n.style.textAlign||"";if(n.tagName.toLowerCase()===o){const o=document.createDocumentFragment();for(const e of Array.from(n.querySelectorAll("li"))){const n=document.createElement("p");for(n.style.textAlign=e.style.textAlign||t||"";e.firstChild;)n.appendChild(e.firstChild);o.appendChild(n)}n.replaceWith(o)}else{const e=document.createElement(o);for(;n.firstChild;){const o=n.firstChild;o.style.textAlign=o.style.textAlign||t||"",e.appendChild(o)}n.replaceWith(e)}return}const f=document.createElement(o);for(const n of r){const t=document.createElement("li"),o=n.style.textAlign;for(o&&(t.style.textAlign=o);n.firstChild;)t.appendChild(n.firstChild);f.appendChild(t)}r[0].replaceWith(f);for(let n=1;n<r.length;n++)r[n].remove()}export{c as a,i as b,a as c,m as d,l as e,n as f,t as n,o as r,r as s,e as t};
1
+ function n(n,t){for(;n&&n!==t;){if(n instanceof HTMLElement){const t=getComputedStyle(n).display;if(n.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===t||"list-item"===t)return n}n=n?.parentNode||null}return t}function t(n){for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n}function o(n){const t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return`#${Number(t[1]).toString(16).padStart(2,"0")}${Number(t[2]).toString(16).padStart(2,"0")}${Number(t[3]).toString(16).padStart(2,"0")}`}function e(n,t,o){const e=window.getSelection();if(!e||0===e.rangeCount)return;const c=e.getRangeAt(0),r={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t]??[t],i=n=>r.includes(n.tagName.toLowerCase());function u(n){const t=n.parentNode;if(t){for(;n.firstChild;)t.insertBefore(n.firstChild,n);t.removeChild(n)}}function f(n){n.querySelectorAll(r.join(",")).forEach((n=>{if(!n.textContent?.trim())return void n.remove();Array.from(n.querySelectorAll(r.join(","))).forEach((t=>{if(t!==n){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove()}}))}))}function s(n){Array.from(n.querySelectorAll(r.join(","))).forEach((n=>{const t=n.nextSibling;if(t instanceof HTMLElement&&i(t)){for(;t.firstChild;)n.appendChild(t.firstChild);t.remove()}}))}if(c.collapsed){let r=!1,d=c.startContainer;for(;d&&d!==n;){if(d instanceof HTMLElement&&i(d)){r=!0;break}d=d.parentNode}if(r&&d instanceof HTMLElement)u(d);else{const n=document.createElement(t);o&&Object.entries(o).forEach((([t,o])=>n.setAttribute(t,o))),n.appendChild(document.createTextNode("​")),c.insertNode(n),c.setStart(n.firstChild,1),c.collapse(!0),e.removeAllRanges(),e.addRange(c)}return f(n),void s(n)}c.startContainer.nodeType===Node.TEXT_NODE&&c.startContainer.splitText(c.startOffset),c.endContainer.nodeType===Node.TEXT_NODE&&c.endContainer.splitText(c.endOffset);const d=document.createTreeWalker(c.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode:n=>{if(!n.nodeValue?.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(n);return c.compareBoundaryPoints(Range.END_TO_START,t)<0&&c.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),m=[];let l;for(;l=d.nextNode();)m.push(l);if(m.length>0&&m.every((t=>{let o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o))return!0;o=o.parentNode}return!1}))){const o=m[0],e=m[m.length-1],c=o.parentElement?.closest(t);if(c&&c.contains(e)){const n=c.parentNode;if(n){const r=document.createRange();r.setStartBefore(c),r.setEndBefore(o);const i=r.cloneContents(),u=document.createRange();u.setStartAfter(e),u.setEndAfter(c);const f=u.cloneContents(),s=document.createRange();s.setStartBefore(o),s.setEndAfter(e);const d=s.extractContents(),m=document.createDocumentFragment();if(i.childNodes.length){const n=document.createElement(t);for(;i.firstChild;)n.appendChild(i.firstChild);m.appendChild(n)}for(;d.firstChild;)m.appendChild(d.firstChild);if(f.childNodes.length){const n=document.createElement(t);for(;f.firstChild;)n.appendChild(f.firstChild);m.appendChild(n)}n.insertBefore(m,c),n.removeChild(c)}}else m.forEach((t=>{let o=t;for(;o&&o!==n;){if(o instanceof HTMLElement&&i(o)){u(o);break}o=o.parentNode}}))}else m.forEach((n=>{const e=n.parentElement?.closest("a, .mention, nile-mention");if(e)return;const c=document.createElement(t);o&&Object.entries(o).forEach((([n,t])=>c.setAttribute(n,t))),n.parentNode?.insertBefore(c,n),c.appendChild(n)}));f(n),s(n),e.removeAllRanges(),e.addRange(c)}function c(t,o){const e=document.getSelection();if(!e||0===e.rangeCount)return;const c=n(e.getRangeAt(0).startContainer,t);if(!c)return;if(c.tagName.toLowerCase()===o)return;const r=document.createElement(o);for(;c.firstChild;)r.appendChild(c.firstChild);c.replaceWith(r);const i=document.createRange();i.selectNodeContents(r),i.collapse(!0),e.removeAllRanges(),e.addRange(i)}function r(t,o){const e=window.getSelection();if(!e||0===e.rangeCount)return;const c=e.getRangeAt(0),r=c.commonAncestorContainer,i=[],u=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const t=n;return c.intersectsNode(t)&&/^(P|DIV|LI|H[1-6])$/.test(t.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});let f=u.nextNode();for(;f;)i.push(f),f=u.nextNode();if(0===i.length){const o=n(e.focusNode,t);o&&i.push(o)}i.forEach((n=>{n.style.textAlign=o}))}function i(n,t){const o=document.getSelection();if(!o||0===o.rangeCount)return;const e=o.getRangeAt(0);if(e.collapsed){const n=document.createElement("span");n.style.fontFamily=t,n.appendChild(document.createTextNode("​")),e.insertNode(n);const c=document.createRange();return c.setStart(n.firstChild,1),c.collapse(!0),o.removeAllRanges(),void o.addRange(c)}!function(n,t,o){const e=document.createElement(t);o&&Object.entries(o).forEach((([n,t])=>e.setAttribute(n,t)));try{n.surroundContents(e)}catch{const t=n.extractContents();e.appendChild(t),n.insertNode(e)}}(e,"span",{style:`font-family:${t}`})}function u(n,t,o){for(;t&&t!==n;){if(t instanceof HTMLSpanElement&&t.hasAttribute(o))return t;t=t.parentNode}return null}function f(n,t,o,e){const c=window.getSelection();if(!c||0===c.rangeCount)return;const r=c.getRangeAt(0);if(!n.contains(r.commonAncestorContainer))return;const i=r.cloneRange();if(i.collapsed){const r=u(n,i.startContainer,e);if(r)return r.style[t]=o,void d(n,e,t);const f=document.createElement("span");f.setAttribute(e,"1"),f.style[t]=o,f.appendChild(document.createTextNode("​")),i.insertNode(f);const s=document.createRange();return s.setStart(f.firstChild,1),s.collapse(!0),c.removeAllRanges(),c.addRange(s),void d(n,e,t)}const f=u(n,i.startContainer,e),m=u(n,i.endContainer,e);if(f&&f===m){if(function(n,t){const o=document.createRange();return o.selectNodeContents(t),n.compareBoundaryPoints(Range.START_TO_START,o)<=0&&n.compareBoundaryPoints(Range.END_TO_END,o)>=0}(i,f))f.style[t]=o;else{const n=function(n,t,o,e,c){const r=n.style[e],i=document.createRange();i.setStart(n,0),i.setEnd(t.startContainer,t.startOffset);const u=document.createRange();u.setStart(t.endContainer,t.endOffset),u.setEnd(n,n.childNodes.length);const f=document.createDocumentFragment(),d=n=>{const t=document.createElement("span");return t.setAttribute(o,"1"),t.style[e]=n,t};if(s(i)){const n=d(r);n.appendChild(i.cloneContents()),f.appendChild(n)}const m=d(c);if(m.appendChild(t.cloneContents()),f.appendChild(m),s(u)){const n=d(r);n.appendChild(u.cloneContents()),f.appendChild(n)}return n.replaceWith(f),m}(f,i,e,t,o),c=window.getSelection(),r=document.createRange();r.selectNodeContents(n),c?.removeAllRanges(),c?.addRange(r)}return void d(n,e,t)}const l=(()=>{let n=i.commonAncestorContainer;for(;n&&!(n instanceof HTMLElement);)n=n.parentNode;return n})(),a=document.createTreeWalker(l||n,NodeFilter.SHOW_TEXT,{acceptNode:n=>{if(!n.nodeValue||!n.nodeValue.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(n);return i.compareBoundaryPoints(Range.END_TO_START,t)<0&&i.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),N=[];let H;for(;H=a.nextNode();)N.push(H);N.forEach((c=>{let r=0,f=c.length;c===i.startContainer&&(r=i.startOffset),c===i.endContainer&&(f=i.endOffset),r>0&&(c=c.splitText(r)),f<c.length&&c.splitText(f);const s=u(n,c,e);if(s)return void(s.style[t]=o);const d=document.createElement("span");d.setAttribute(e,"1"),d.style[t]=o;c.parentElement.replaceChild(d,c),d.appendChild(c)})),d(n,e,t),c.removeAllRanges(),c.addRange(i)}function s(n){if(n.collapsed)return!1;return(n.cloneContents().textContent||"").length>0}function d(n,t,o){const e=Array.from(n.querySelectorAll(`span[${t}]`)),c=n=>n.style[o];e.forEach((n=>{Array.from(n.querySelectorAll(`span[${t}]`)).forEach((t=>{if(c(t)===c(n)){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove()}}));const o=n.previousSibling;if(o instanceof HTMLSpanElement&&o.hasAttribute(t)&&c(o)===c(n)){for(;n.firstChild;)o.appendChild(n.firstChild);return void n.remove()}const e=n.nextSibling;if(e instanceof HTMLSpanElement&&e.hasAttribute(t)&&c(e)===c(n)){for(;e.firstChild;)n.appendChild(e.firstChild);e.remove()}}))}function m(n,t){f(n,"color",t,"data-rte-color")}function l(n,t){f(n,"backgroundColor",t,"data-rte-bg")}function a(n,t){const o=document.getSelection();if(!o||0===o.rangeCount)return;const e=o.getRangeAt(0);function c(n){n.style.paddingInlineStart="0",n.style.margin="0"}function r(n){const t=document.getSelection();if(!t)return;const o=document.createRange();o.selectNodeContents(n),o.collapse(!0),t.removeAllRanges(),t.addRange(o)}function i(t){for(;t&&t!==n;){if(t instanceof HTMLElement){const n=getComputedStyle(t).display;if(t.tagName.match(/^(P|DIV|H[1-6]|LI)$/)||"block"===n||"list-item"===n)return t}t=t.parentNode}return null}function u(n,t){const o=document.createElement(t);for(c(o);n.firstChild;)o.appendChild(n.firstChild);n.replaceWith(o)}if(e.collapsed){const o=i(e.startContainer),s=o?.closest("ul,ol");if(s&&s.tagName.toLowerCase()===t)return void function(n){const t=n.closest("li");if(!t)return;const o=t.parentElement,e=document.createElement("p");for(t.style.textAlign&&(e.style.textAlign=t.style.textAlign);t.firstChild;)e.appendChild(t.firstChild);o.parentNode?.insertBefore(e,o.nextSibling),t.remove(),0===o.childNodes.length&&o.remove(),r(e)}(o);if(s&&s.tagName.toLowerCase()!==t)return void u(s,t);if(!o||o===n||0===o.childNodes.length||(f=o,!f.textContent?.trim()&&!f.querySelector("img,br"))){const n=document.createElement(t),o=document.createElement("li");return o.appendChild(document.createElement("br")),n.appendChild(o),c(n),e.insertNode(n),void r(o)}const d=document.createElement(t);c(d);const m=document.createElement("li");for(o.style.textAlign&&(m.style.textAlign=o.style.textAlign);o.firstChild;)m.appendChild(o.firstChild);return d.appendChild(m),o.replaceWith(d),void r(m)}var f;const s=[],d=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{if(!(n instanceof HTMLElement))return NodeFilter.FILTER_SKIP;if(!/^(P|DIV|LI|H[1-6])$/.test(n.tagName))return NodeFilter.FILTER_SKIP;const t=document.createRange();t.selectNodeContents(n);return e.compareBoundaryPoints(Range.END_TO_START,t)<0&&e.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let m;for(;m=d.nextNode();)s.push(m);if(0===s.length){const n=i(e.startContainer);n&&s.push(n)}const l=s[0].closest("li");if(l){const n=l.closest("ul,ol");if(!n)return;return void(n.tagName.toLowerCase()===t?function(n){const t=document.createDocumentFragment();Array.from(n.querySelectorAll("li")).forEach((n=>{const o=document.createElement("p");for(n.style.textAlign&&(o.style.textAlign=n.style.textAlign);n.firstChild;)o.appendChild(n.firstChild);t.appendChild(o)})),n.replaceWith(t)}(n):u(n,t))}const a=document.createElement(t);c(a);for(const n of s){const t=document.createElement("li");for(n.style.textAlign&&(t.style.textAlign=n.style.textAlign);n.firstChild;)t.appendChild(n.firstChild);a.appendChild(t)}s[0].replaceWith(a);for(let n=1;n<s.length;n++)s[n].remove()}export{c as a,i as b,l as c,m as d,a as e,n as f,t as n,o as r,r as s,e as t};