prosemirror-link-preview 2.1.2 → 2.1.4

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.es.js CHANGED
@@ -1 +1 @@
1
- import{PluginKey as t,Plugin as e}from"prosemirror-state";import{Fragment as r,Slice as i}from"prosemirror-model";import{DecorationSet as n,Decoration as s}from"prosemirror-view";import{ySyncPluginKey as o,relativePositionToAbsolutePosition as l,absolutePositionToRelativePosition as a}from"y-prosemirror";const d=(t,e,r,i)=>{const n=document.createElement("div");n.className="preview-root";const s=document.createElement("img");s.classList.add("preview-img"),s.src=t.attrs.src,s.alt=t.attrs.alt;const o=document.createElement("div");o.classList.add("preview-title"),o.textContent=t.attrs.title;const l=document.createElement("div");l.classList.add("preview-description"),l.textContent=t.attrs.description;const a=document.createElement("a");a.href=t.attrs.url,a.textContent=t.attrs.url,a.classList.add("preview-url"),n.appendChild(s),n.appendChild(o),n.appendChild(l),n.appendChild(a),n.addEventListener("click",(()=>{i.openLinkOnClick&&window.open(t.attrs.url,"_blank")})),n.style.cursor=i.openLinkOnClick?"pointer":"default",s.style.cursor=i.openLinkOnClick?"pointer":"default";const d=n;return{dom:d,update:t=>{const e=d.querySelector("img"),r=d.querySelector(".preview-title"),i=d.querySelector(".preview-description");return!!(e&&r&&i)&&(e.src=t.attrs.src,e.alt=t.attrs.alt,i.textContent=t.attrs.description,r.textContent=t.attrs.title,!0)},selectNode:()=>{const{state:t,dispatch:i}=e;i(t.tr.setMeta("selectedNode",r()))},deselectNode:()=>{const{state:t,dispatch:r}=e;r(t.tr.setMeta("selectedNode",null))},destroy:()=>{d.remove()}}},c=new t("previewPlugin"),p={openLinkOnClick:!0,pasteLink:!1},u=t=>{const e=c.getState(t);if(!e)return n.empty;const r=o.getState(t),i=e.map((t=>{const e=l(r.doc,r.type,t.pos,r.binding.mapping),i=document.createElement("placeholder");return"number"==typeof e?s.widget(e,i,{id:t.id}):void 0}));return n.create(t.doc,i.filter((t=>t)))||n.empty},m=t=>{const e=c.getState(t);if(!e)return n.empty;const r=e.map((t=>{const e=document.createElement("placeholder");return"number"==typeof t.pos?s.widget(t.pos,e,{id:t.id}):void 0}));return n.create(t.doc,r.filter((t=>t)))||n.empty},v=(t,e,r,i)=>{const n=t.getMeta(c);if(n&&"add"===n.type){const t=o.getState(i),r=a(n.pos,t.type,t.binding.mapping);return[...e,{id:n.id,pos:r}]}return n&&"remove"===n.type?e.filter((t=>t.id!==n.id)):e},g=(t,e)=>{const r=t.getMeta(c),i=e.map((e=>{const r=t.mapping.map(e.pos);return Object.assign(Object.assign({},e),{pos:r})}));return r&&"add"===r.type?[...i,{id:r.id,pos:r.pos}]:r&&"remove"===r.type?i.filter((t=>t.id!==r.id)):i},f=(t,e)=>{const r=c.getState(t);if(!r)return null;const i=o.getState(t),n=r.find((t=>t.id===e));if(!(null==n?void 0:n.pos))return null;return l(i.doc,i.type,n.pos,i.binding.mapping)},y=(t,e)=>{const r=c.getState(t);if(!r)return null;const i=r.find((t=>t.id===e));return(null==i?void 0:i.pos)||null},w=(t,n,s,o,l=p)=>new e({key:c,state:{init:()=>[],apply:n},props:{decorations:t=>s(t),transformPasted:(e,n)=>{var s;if(!l.pasteLink)return e;const a={},{tr:d}=n.state,p=null===(s=e.content.firstChild)||void 0===s?void 0:s.textContent;let u=null;try{u=new URL(p||"").origin,d.selection.empty||d.deleteSelection(),d.setMeta(c,{id:a,pos:d.selection.from,type:"add"}),n.dispatch(d)}catch(t){return e}if(p&&u){t(p).then((t=>{const{title:e,description:r,images:i}=t;if(!(null==i?void 0:i[0])){const t=n.state.schema.text(p);return void n.dispatch(n.state.tr.replaceSelectionWith(t))}const s={title:e,description:r,src:i[0],alt:e,url:p},l=n.state.schema.nodes.preview.create(s),d=o(n.state,a);d&&n.dispatch(n.state.tr.replaceWith(d,d,l).setMeta(c,{type:"remove",id:a}))}),(()=>{n.dispatch(d.setMeta(c,{type:"remove",id:a}))}));const e=r.empty;return new i(e,0,0)}return e},nodeViews:{preview:(t,e,r)=>d(t,e,r,l)}}}),h=t=>t.addToEnd("preview",{inline:!0,group:"inline",atom:!1,attrs:{src:{default:null},alt:{default:null},title:{default:null},description:{default:null},url:{default:null}},parseDOM:[{tag:"div.preview-root",getAttrs(t){var e,r,i,n;return t instanceof HTMLElement?{src:null===(e=t.querySelector(".preview-img"))||void 0===e?void 0:e.getAttribute("src"),alt:null===(r=t.querySelector(".preview-img"))||void 0===r?void 0:r.getAttribute("alt"),title:null===(i=t.querySelector(".preview-title"))||void 0===i?void 0:i.textContent,description:null===(n=t.querySelector(".preview-description"))||void 0===n?void 0:n.textContent}:{}}}],toDOM:t=>["div",{class:"preview-root"},["img",{class:"preview-img",src:t.attrs.src,alt:t.attrs.alt}],["div",{class:"preview-title"},t.attrs.title],["div",{class:"preview-description"},t.attrs.description]]}),C=(t,e,r,i,n)=>{i&&n(e).then((n=>{const{title:s,description:o,images:l}=n;if(!(null==l?void 0:l[0])){const r=t.state.schema.text(e);return void t.dispatch(t.state.tr.replaceSelectionWith(r))}const a={title:s,description:o,src:l[0],alt:s,url:e},d=t.state.schema.nodes.preview.create(a);r&&t.dispatch(t.state.tr.replaceWith(r,r+e.length,d).setMeta(c,{type:"remove",id:i}))}))};export{h as addPreviewNode,g as apply,v as applyYjs,m as createDecorations,u as createDecorationsYjs,p as defaultOptions,y as findPlaceholder,f as findPlaceholderYjs,C as insertPreview,d as previewNodeView,w as previewPlugin,c as previewPluginKey};
1
+ import{PluginKey as t,Plugin as e}from"prosemirror-state";import{Fragment as r,Slice as i}from"prosemirror-model";import{DecorationSet as n,Decoration as s}from"prosemirror-view";import{ySyncPluginKey as o,relativePositionToAbsolutePosition as a,absolutePositionToRelativePosition as l}from"y-prosemirror";const c=(t,e,r,i)=>{const n=document.createElement("div");n.className="preview-root";const s=document.createElement("img");s.classList.add("preview-img"),s.src=t.attrs.src,s.alt=t.attrs.alt;const o=document.createElement("div");o.classList.add("preview-title"),o.textContent=t.attrs.title;const a=document.createElement("div");a.classList.add("preview-description"),a.textContent=t.attrs.description;const l=document.createElement("a");l.href=t.attrs.url,l.textContent=t.attrs.url,l.classList.add("preview-url"),n.appendChild(s),n.appendChild(o),n.appendChild(a),n.appendChild(l),n.addEventListener("click",(()=>{i.openLinkOnClick&&window.open(t.attrs.url,"_blank")})),n.style.cursor=i.openLinkOnClick?"pointer":"default",s.style.cursor=i.openLinkOnClick?"pointer":"default";const c=n;return{dom:c,update:t=>{const e=c.querySelector("img"),r=c.querySelector(".preview-title"),i=c.querySelector(".preview-description");return!!(e&&r&&i)&&(e.src=t.attrs.src,e.alt=t.attrs.alt,i.textContent=t.attrs.description,r.textContent=t.attrs.title,!0)},selectNode:()=>{const{state:t,dispatch:i}=e;i(t.tr.setMeta("selectedNode",r()))},deselectNode:()=>{const{state:t,dispatch:r}=e;r(t.tr.setMeta("selectedNode",null))},destroy:()=>{c.remove()}}},d=new t("previewPlugin"),p={openLinkOnClick:!0,pasteLink:!1},u=t=>{const e=d.getState(t);if(!e)return n.empty;const r=o.getState(t),i=e.map((t=>{const e=a(r.doc,r.type,t.pos,r.binding.mapping),i=document.createElement("placeholder");return"number"==typeof e?s.widget(e,i,{id:t.id}):void 0}));return n.create(t.doc,i.filter((t=>t)))||n.empty},m=t=>{const e=d.getState(t);if(!e)return n.empty;const r=e.map((t=>{const e=document.createElement("placeholder");return"number"==typeof t.pos?s.widget(t.pos,e,{id:t.id}):void 0}));return n.create(t.doc,r.filter((t=>t)))||n.empty},v=(t,e,r,i)=>{const n=t.getMeta(d);if(n&&"add"===n.type){const t=o.getState(i),r=l(n.pos,t.type,t.binding.mapping);return[...e,{id:n.id,pos:r}]}return n&&"remove"===n.type?e.filter((t=>t.id!==n.id)):e},g=(t,e)=>{const r=t.getMeta(d),i=e.map((e=>{const r=t.mapping.map(e.pos);return Object.assign(Object.assign({},e),{pos:r})}));return r&&"add"===r.type?[...i,{id:r.id,pos:r.pos}]:r&&"remove"===r.type?i.filter((t=>t.id!==r.id)):i},f=(t,e)=>{const r=d.getState(t);if(!r)return null;const i=o.getState(t),n=r.find((t=>t.id===e));if(!(null==n?void 0:n.pos))return null;return a(i.doc,i.type,n.pos,i.binding.mapping)},y=(t,e)=>{const r=d.getState(t);if(!r)return null;const i=r.find((t=>t.id===e));return(null==i?void 0:i.pos)||null},h=(t,n,s,o,a=p)=>new e({key:d,state:{init:()=>[],apply:n},props:{decorations:t=>s(t),transformPasted:(e,n)=>{var s;if(!a.pasteLink)return e;const l={},{tr:c}=n.state,p=null===(s=e.content.firstChild)||void 0===s?void 0:s.textContent;let u=null;try{u=new URL(p||"").origin,c.selection.empty||c.deleteSelection(),c.setMeta(d,{id:l,pos:c.selection.from,type:"add"}),n.dispatch(c)}catch(t){return e}if(p&&u){t(p).then((t=>{const{title:e,description:r,images:i}=t;if(!(null==i?void 0:i[0])){const t=n.state.schema.text(p);return void n.dispatch(n.state.tr.replaceSelectionWith(t))}const s={title:e,description:r,src:i[0],alt:e,url:p},a=n.state.schema.nodes.preview.create(s),c=o(n.state,l);c&&n.dispatch(n.state.tr.replaceWith(c,c,a).setMeta(d,{type:"remove",id:l}))}),(()=>{n.dispatch(c.setMeta(d,{type:"remove",id:l}))})).catch((()=>{n.dispatch(c.setMeta(d,{type:"remove",id:l}))}));const e=r.empty;return new i(e,0,0)}return e},nodeViews:{preview:(t,e,r)=>c(t,e,r,a)}}}),w=t=>t.addToEnd("preview",{inline:!0,group:"inline",atom:!1,attrs:{src:{default:null},alt:{default:null},title:{default:null},description:{default:null},url:{default:null}},parseDOM:[{tag:"div.preview-root",getAttrs(t){var e,r,i,n;return t instanceof HTMLElement?{src:null===(e=t.querySelector(".preview-img"))||void 0===e?void 0:e.getAttribute("src"),alt:null===(r=t.querySelector(".preview-img"))||void 0===r?void 0:r.getAttribute("alt"),title:null===(i=t.querySelector(".preview-title"))||void 0===i?void 0:i.textContent,description:null===(n=t.querySelector(".preview-description"))||void 0===n?void 0:n.textContent}:{}}}],toDOM:t=>["div",{class:"preview-root"},["img",{class:"preview-img",src:t.attrs.src,alt:t.attrs.alt}],["div",{class:"preview-title"},t.attrs.title],["div",{class:"preview-description"},t.attrs.description]]}),C=(t,e,r,i,n)=>{i&&n(e).then((n=>{const{title:s,description:o,images:a}=n;if(!(null==a?void 0:a[0])){const r=t.state.schema.text(e).mark([t.state.schema.marks.link.create({href:e})]);return t.dispatch(t.state.tr.replaceSelectionWith(r)),void t.dispatch(t.state.tr.setMeta(d,{type:"remove",id:i}))}const l={title:s,description:o,src:a[0],alt:s,url:e},c=t.state.schema.nodes.preview.create(l);r&&t.dispatch(t.state.tr.replaceWith(r,r+e.length,c).setMeta(d,{type:"remove",id:i}))}))};export{w as addPreviewNode,g as apply,v as applyYjs,m as createDecorations,u as createDecorationsYjs,p as defaultOptions,y as findPlaceholder,f as findPlaceholderYjs,C as insertPreview,c as previewNodeView,h as previewPlugin,d as previewPluginKey};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("prosemirror-state"),t=require("prosemirror-model"),r=require("prosemirror-view"),i=require("y-prosemirror");const n=(e,t,r,i)=>{const n=document.createElement("div");n.className="preview-root";const o=document.createElement("img");o.classList.add("preview-img"),o.src=e.attrs.src,o.alt=e.attrs.alt;const s=document.createElement("div");s.classList.add("preview-title"),s.textContent=e.attrs.title;const a=document.createElement("div");a.classList.add("preview-description"),a.textContent=e.attrs.description;const l=document.createElement("a");l.href=e.attrs.url,l.textContent=e.attrs.url,l.classList.add("preview-url"),n.appendChild(o),n.appendChild(s),n.appendChild(a),n.appendChild(l),n.addEventListener("click",(()=>{i.openLinkOnClick&&window.open(e.attrs.url,"_blank")})),n.style.cursor=i.openLinkOnClick?"pointer":"default",o.style.cursor=i.openLinkOnClick?"pointer":"default";const c=n;return{dom:c,update:e=>{const t=c.querySelector("img"),r=c.querySelector(".preview-title"),i=c.querySelector(".preview-description");return!!(t&&r&&i)&&(t.src=e.attrs.src,t.alt=e.attrs.alt,i.textContent=e.attrs.description,r.textContent=e.attrs.title,!0)},selectNode:()=>{const{state:e,dispatch:i}=t;i(e.tr.setMeta("selectedNode",r()))},deselectNode:()=>{const{state:e,dispatch:r}=t;r(e.tr.setMeta("selectedNode",null))},destroy:()=>{c.remove()}}},o=new e.PluginKey("previewPlugin"),s={openLinkOnClick:!0,pasteLink:!1};exports.addPreviewNode=e=>e.addToEnd("preview",{inline:!0,group:"inline",atom:!1,attrs:{src:{default:null},alt:{default:null},title:{default:null},description:{default:null},url:{default:null}},parseDOM:[{tag:"div.preview-root",getAttrs(e){var t,r,i,n;return e instanceof HTMLElement?{src:null===(t=e.querySelector(".preview-img"))||void 0===t?void 0:t.getAttribute("src"),alt:null===(r=e.querySelector(".preview-img"))||void 0===r?void 0:r.getAttribute("alt"),title:null===(i=e.querySelector(".preview-title"))||void 0===i?void 0:i.textContent,description:null===(n=e.querySelector(".preview-description"))||void 0===n?void 0:n.textContent}:{}}}],toDOM:e=>["div",{class:"preview-root"},["img",{class:"preview-img",src:e.attrs.src,alt:e.attrs.alt}],["div",{class:"preview-title"},e.attrs.title],["div",{class:"preview-description"},e.attrs.description]]}),exports.apply=(e,t)=>{const r=e.getMeta(o),i=t.map((t=>{const r=e.mapping.map(t.pos);return Object.assign(Object.assign({},t),{pos:r})}));return r&&"add"===r.type?[...i,{id:r.id,pos:r.pos}]:r&&"remove"===r.type?i.filter((e=>e.id!==r.id)):i},exports.applyYjs=(e,t,r,n)=>{const s=e.getMeta(o);if(s&&"add"===s.type){const e=i.ySyncPluginKey.getState(n),r=i.absolutePositionToRelativePosition(s.pos,e.type,e.binding.mapping);return[...t,{id:s.id,pos:r}]}return s&&"remove"===s.type?t.filter((e=>e.id!==s.id)):t},exports.createDecorations=e=>{const t=o.getState(e);if(!t)return r.DecorationSet.empty;const i=t.map((e=>{const t=document.createElement("placeholder");return"number"==typeof e.pos?r.Decoration.widget(e.pos,t,{id:e.id}):void 0}));return r.DecorationSet.create(e.doc,i.filter((e=>e)))||r.DecorationSet.empty},exports.createDecorationsYjs=e=>{const t=o.getState(e);if(!t)return r.DecorationSet.empty;const n=i.ySyncPluginKey.getState(e),s=t.map((e=>{const t=i.relativePositionToAbsolutePosition(n.doc,n.type,e.pos,n.binding.mapping),o=document.createElement("placeholder");return"number"==typeof t?r.Decoration.widget(t,o,{id:e.id}):void 0}));return r.DecorationSet.create(e.doc,s.filter((e=>e)))||r.DecorationSet.empty},exports.defaultOptions=s,exports.findPlaceholder=(e,t)=>{const r=o.getState(e);if(!r)return null;const i=r.find((e=>e.id===t));return(null==i?void 0:i.pos)||null},exports.findPlaceholderYjs=(e,t)=>{const r=o.getState(e);if(!r)return null;const n=i.ySyncPluginKey.getState(e),s=r.find((e=>e.id===t));if(!(null==s?void 0:s.pos))return null;return i.relativePositionToAbsolutePosition(n.doc,n.type,s.pos,n.binding.mapping)},exports.insertPreview=(e,t,r,i,n)=>{i&&n(t).then((n=>{const{title:s,description:a,images:l}=n;if(!(null==l?void 0:l[0])){const r=e.state.schema.text(t);return void e.dispatch(e.state.tr.replaceSelectionWith(r))}const c={title:s,description:a,src:l[0],alt:s,url:t},d=e.state.schema.nodes.preview.create(c);r&&e.dispatch(e.state.tr.replaceWith(r,r+t.length,d).setMeta(o,{type:"remove",id:i}))}))},exports.previewNodeView=n,exports.previewPlugin=(r,i,a,l,c=s)=>new e.Plugin({key:o,state:{init:()=>[],apply:i},props:{decorations:e=>a(e),transformPasted:(e,i)=>{var n;if(!c.pasteLink)return e;const s={},{tr:a}=i.state,d=null===(n=e.content.firstChild)||void 0===n?void 0:n.textContent;let p=null;try{p=new URL(d||"").origin,a.selection.empty||a.deleteSelection(),a.setMeta(o,{id:s,pos:a.selection.from,type:"add"}),i.dispatch(a)}catch(t){return e}if(d&&p){r(d).then((e=>{const{title:t,description:r,images:n}=e;if(!(null==n?void 0:n[0])){const e=i.state.schema.text(d);return void i.dispatch(i.state.tr.replaceSelectionWith(e))}const a={title:t,description:r,src:n[0],alt:t,url:d},c=i.state.schema.nodes.preview.create(a),p=l(i.state,s);p&&i.dispatch(i.state.tr.replaceWith(p,p,c).setMeta(o,{type:"remove",id:s}))}),(()=>{i.dispatch(a.setMeta(o,{type:"remove",id:s}))}));const e=t.Fragment.empty;return new t.Slice(e,0,0)}return e},nodeViews:{preview:(e,t,r)=>n(e,t,r,c)}}}),exports.previewPluginKey=o;
1
+ "use strict";var e=require("prosemirror-state"),t=require("prosemirror-model"),r=require("prosemirror-view"),i=require("y-prosemirror");const n=(e,t,r,i)=>{const n=document.createElement("div");n.className="preview-root";const o=document.createElement("img");o.classList.add("preview-img"),o.src=e.attrs.src,o.alt=e.attrs.alt;const s=document.createElement("div");s.classList.add("preview-title"),s.textContent=e.attrs.title;const a=document.createElement("div");a.classList.add("preview-description"),a.textContent=e.attrs.description;const l=document.createElement("a");l.href=e.attrs.url,l.textContent=e.attrs.url,l.classList.add("preview-url"),n.appendChild(o),n.appendChild(s),n.appendChild(a),n.appendChild(l),n.addEventListener("click",(()=>{i.openLinkOnClick&&window.open(e.attrs.url,"_blank")})),n.style.cursor=i.openLinkOnClick?"pointer":"default",o.style.cursor=i.openLinkOnClick?"pointer":"default";const c=n;return{dom:c,update:e=>{const t=c.querySelector("img"),r=c.querySelector(".preview-title"),i=c.querySelector(".preview-description");return!!(t&&r&&i)&&(t.src=e.attrs.src,t.alt=e.attrs.alt,i.textContent=e.attrs.description,r.textContent=e.attrs.title,!0)},selectNode:()=>{const{state:e,dispatch:i}=t;i(e.tr.setMeta("selectedNode",r()))},deselectNode:()=>{const{state:e,dispatch:r}=t;r(e.tr.setMeta("selectedNode",null))},destroy:()=>{c.remove()}}},o=new e.PluginKey("previewPlugin"),s={openLinkOnClick:!0,pasteLink:!1};exports.addPreviewNode=e=>e.addToEnd("preview",{inline:!0,group:"inline",atom:!1,attrs:{src:{default:null},alt:{default:null},title:{default:null},description:{default:null},url:{default:null}},parseDOM:[{tag:"div.preview-root",getAttrs(e){var t,r,i,n;return e instanceof HTMLElement?{src:null===(t=e.querySelector(".preview-img"))||void 0===t?void 0:t.getAttribute("src"),alt:null===(r=e.querySelector(".preview-img"))||void 0===r?void 0:r.getAttribute("alt"),title:null===(i=e.querySelector(".preview-title"))||void 0===i?void 0:i.textContent,description:null===(n=e.querySelector(".preview-description"))||void 0===n?void 0:n.textContent}:{}}}],toDOM:e=>["div",{class:"preview-root"},["img",{class:"preview-img",src:e.attrs.src,alt:e.attrs.alt}],["div",{class:"preview-title"},e.attrs.title],["div",{class:"preview-description"},e.attrs.description]]}),exports.apply=(e,t)=>{const r=e.getMeta(o),i=t.map((t=>{const r=e.mapping.map(t.pos);return Object.assign(Object.assign({},t),{pos:r})}));return r&&"add"===r.type?[...i,{id:r.id,pos:r.pos}]:r&&"remove"===r.type?i.filter((e=>e.id!==r.id)):i},exports.applyYjs=(e,t,r,n)=>{const s=e.getMeta(o);if(s&&"add"===s.type){const e=i.ySyncPluginKey.getState(n),r=i.absolutePositionToRelativePosition(s.pos,e.type,e.binding.mapping);return[...t,{id:s.id,pos:r}]}return s&&"remove"===s.type?t.filter((e=>e.id!==s.id)):t},exports.createDecorations=e=>{const t=o.getState(e);if(!t)return r.DecorationSet.empty;const i=t.map((e=>{const t=document.createElement("placeholder");return"number"==typeof e.pos?r.Decoration.widget(e.pos,t,{id:e.id}):void 0}));return r.DecorationSet.create(e.doc,i.filter((e=>e)))||r.DecorationSet.empty},exports.createDecorationsYjs=e=>{const t=o.getState(e);if(!t)return r.DecorationSet.empty;const n=i.ySyncPluginKey.getState(e),s=t.map((e=>{const t=i.relativePositionToAbsolutePosition(n.doc,n.type,e.pos,n.binding.mapping),o=document.createElement("placeholder");return"number"==typeof t?r.Decoration.widget(t,o,{id:e.id}):void 0}));return r.DecorationSet.create(e.doc,s.filter((e=>e)))||r.DecorationSet.empty},exports.defaultOptions=s,exports.findPlaceholder=(e,t)=>{const r=o.getState(e);if(!r)return null;const i=r.find((e=>e.id===t));return(null==i?void 0:i.pos)||null},exports.findPlaceholderYjs=(e,t)=>{const r=o.getState(e);if(!r)return null;const n=i.ySyncPluginKey.getState(e),s=r.find((e=>e.id===t));if(!(null==s?void 0:s.pos))return null;return i.relativePositionToAbsolutePosition(n.doc,n.type,s.pos,n.binding.mapping)},exports.insertPreview=(e,t,r,i,n)=>{i&&n(t).then((n=>{const{title:s,description:a,images:l}=n;if(!(null==l?void 0:l[0])){const r=e.state.schema.text(t).mark([e.state.schema.marks.link.create({href:t})]);return e.dispatch(e.state.tr.replaceSelectionWith(r)),void e.dispatch(e.state.tr.setMeta(o,{type:"remove",id:i}))}const c={title:s,description:a,src:l[0],alt:s,url:t},d=e.state.schema.nodes.preview.create(c);r&&e.dispatch(e.state.tr.replaceWith(r,r+t.length,d).setMeta(o,{type:"remove",id:i}))}))},exports.previewNodeView=n,exports.previewPlugin=(r,i,a,l,c=s)=>new e.Plugin({key:o,state:{init:()=>[],apply:i},props:{decorations:e=>a(e),transformPasted:(e,i)=>{var n;if(!c.pasteLink)return e;const s={},{tr:a}=i.state,d=null===(n=e.content.firstChild)||void 0===n?void 0:n.textContent;let p=null;try{p=new URL(d||"").origin,a.selection.empty||a.deleteSelection(),a.setMeta(o,{id:s,pos:a.selection.from,type:"add"}),i.dispatch(a)}catch(t){return e}if(d&&p){r(d).then((e=>{const{title:t,description:r,images:n}=e;if(!(null==n?void 0:n[0])){const e=i.state.schema.text(d);return void i.dispatch(i.state.tr.replaceSelectionWith(e))}const a={title:t,description:r,src:n[0],alt:t,url:d},c=i.state.schema.nodes.preview.create(a),p=l(i.state,s);p&&i.dispatch(i.state.tr.replaceWith(p,p,c).setMeta(o,{type:"remove",id:s}))}),(()=>{i.dispatch(a.setMeta(o,{type:"remove",id:s}))})).catch((()=>{i.dispatch(a.setMeta(o,{type:"remove",id:s}))}));const e=t.Fragment.empty;return new t.Slice(e,0,0)}return e},nodeViews:{preview:(e,t,r)=>n(e,t,r,c)}}}),exports.previewPluginKey=o;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prosemirror-link-preview",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "prosemirror-link-preview adds link preview node to your editor",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.es.js",