@lexical/link 0.6.5 → 0.7.1

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.
@@ -141,8 +141,8 @@ class LinkNode extends lexical.ElementNode {
141
141
  writable.__rel = rel;
142
142
  }
143
143
 
144
- insertNewAfter(selection) {
145
- const element = this.getParentOrThrow().insertNewAfter(selection);
144
+ insertNewAfter(selection, restoreSelection = true) {
145
+ const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);
146
146
 
147
147
  if (lexical.$isElementNode(element)) {
148
148
  const linkNode = $createLinkNode(this.__url, {
@@ -246,8 +246,8 @@ class AutoLinkNode extends LinkNode {
246
246
  };
247
247
  }
248
248
 
249
- insertNewAfter(selection) {
250
- const element = this.getParentOrThrow().insertNewAfter(selection);
249
+ insertNewAfter(selection, restoreSelection = true) {
250
+ const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);
251
251
 
252
252
  if (lexical.$isElementNode(element)) {
253
253
  const linkNode = $createAutoLinkNode(this.__url, {
@@ -47,7 +47,10 @@ declare export class LinkNode extends ElementNode {
47
47
  setTarget(target: null | string): void;
48
48
  getRel(): null | string;
49
49
  setRel(rel: null | string): void;
50
- insertNewAfter(selection: RangeSelection): null | ElementNode;
50
+ insertNewAfter(
51
+ selection: RangeSelection,
52
+ restoreSelection?: boolean,
53
+ ): null | ElementNode;
51
54
  canInsertTextBefore(): false;
52
55
  canInsertTextAfter(): false;
53
56
  canBeEmpty(): false;
@@ -64,7 +67,10 @@ declare export class AutoLinkNode extends LinkNode {
64
67
  static getType(): string;
65
68
  // $FlowFixMe clone method inheritance
66
69
  static clone(node: AutoLinkNode): AutoLinkNode;
67
- insertNewAfter(selection: RangeSelection): null | ElementNode;
70
+ insertNewAfter(
71
+ selection: RangeSelection,
72
+ restoreSelection?: boolean,
73
+ ): null | ElementNode;
68
74
  }
69
75
  declare export function $createAutoLinkNode(
70
76
  url: string,
@@ -7,9 +7,9 @@
7
7
  'use strict';var l=require("@lexical/utils"),m=require("lexical");
8
8
  class n extends m.ElementNode{static getType(){return"link"}static clone(a){return new n(a.__url,{rel:a.__rel,target:a.__target},a.__key)}constructor(a,b={},c){super(c);let {target:h=null,rel:e=null}=b;this.__url=a;this.__target=h;this.__rel=e}createDOM(a){let b=document.createElement("a");b.href=this.__url;null!==this.__target&&(b.target=this.__target);null!==this.__rel&&(b.rel=this.__rel);l.addClassNamesToElement(b,a.theme.link);return b}updateDOM(a,b){let c=this.__url,h=this.__target,e=this.__rel;
9
9
  c!==a.__url&&(b.href=c);h!==a.__target&&(h?b.target=h:b.removeAttribute("target"));e!==a.__rel&&(e?b.rel=e:b.removeAttribute("rel"));return!1}static importDOM(){return{a:()=>({conversion:p,priority:1})}}static importJSON(a){let b=q(a.url,{rel:a.rel,target:a.target});b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);return b}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(a){this.getWritable().__url=
10
- a}getTarget(){return this.getLatest().__target}setTarget(a){this.getWritable().__target=a}getRel(){return this.getLatest().__rel}setRel(a){this.getWritable().__rel=a}insertNewAfter(a){a=this.getParentOrThrow().insertNewAfter(a);if(m.$isElementNode(a)){let b=q(this.__url,{rel:this.__rel,target:this.__target});a.append(b);return b}return null}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(a,b){if(!m.$isRangeSelection(b))return!1;
11
- a=b.anchor.getNode();let c=b.focus.getNode();return this.isParentOf(a)&&this.isParentOf(c)&&0<b.getTextContent().length}}function p(a){let b=null;if(a instanceof HTMLAnchorElement){let c=a.textContent;null!==c&&""!==c&&(b=q(a.getAttribute("href")||"",{rel:a.getAttribute("rel"),target:a.getAttribute("target")}))}return{node:b}}function q(a,b){return new n(a,b)}function r(a){return a instanceof n}
12
- class u extends n{static getType(){return"autolink"}static clone(a){return new u(a.__url,{rel:a.__rel,target:a.__target},a.__key)}static importJSON(a){let b=v(a.url,{rel:a.rel,target:a.target});b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);return b}static importDOM(){return null}exportJSON(){return{...super.exportJSON(),type:"autolink",version:1}}insertNewAfter(a){a=this.getParentOrThrow().insertNewAfter(a);if(m.$isElementNode(a)){let b=v(this.__url,{rel:this._rel,target:this.__target});
13
- a.append(b);return b}return null}}function v(a,b){return new u(a,b)}let w=m.createCommand("TOGGLE_LINK_COMMAND");function x(a){return y(a,b=>r(b))}function y(a,b){for(;null!==a&&null!==(a=a.getParent())&&!b(a););return a}exports.$createAutoLinkNode=v;exports.$createLinkNode=q;exports.$isAutoLinkNode=function(a){return a instanceof u};exports.$isLinkNode=r;exports.AutoLinkNode=u;exports.LinkNode=n;exports.TOGGLE_LINK_COMMAND=w;
10
+ a}getTarget(){return this.getLatest().__target}setTarget(a){this.getWritable().__target=a}getRel(){return this.getLatest().__rel}setRel(a){this.getWritable().__rel=a}insertNewAfter(a,b=!0){a=this.getParentOrThrow().insertNewAfter(a,b);return m.$isElementNode(a)?(b=q(this.__url,{rel:this.__rel,target:this.__target}),a.append(b),b):null}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(a,b){if(!m.$isRangeSelection(b))return!1;a=b.anchor.getNode();
11
+ let c=b.focus.getNode();return this.isParentOf(a)&&this.isParentOf(c)&&0<b.getTextContent().length}}function p(a){let b=null;if(a instanceof HTMLAnchorElement){let c=a.textContent;null!==c&&""!==c&&(b=q(a.getAttribute("href")||"",{rel:a.getAttribute("rel"),target:a.getAttribute("target")}))}return{node:b}}function q(a,b){return new n(a,b)}function r(a){return a instanceof n}
12
+ class u extends n{static getType(){return"autolink"}static clone(a){return new u(a.__url,{rel:a.__rel,target:a.__target},a.__key)}static importJSON(a){let b=v(a.url,{rel:a.rel,target:a.target});b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);return b}static importDOM(){return null}exportJSON(){return{...super.exportJSON(),type:"autolink",version:1}}insertNewAfter(a,b=!0){a=this.getParentOrThrow().insertNewAfter(a,b);return m.$isElementNode(a)?(b=v(this.__url,{rel:this._rel,
13
+ target:this.__target}),a.append(b),b):null}}function v(a,b){return new u(a,b)}let w=m.createCommand("TOGGLE_LINK_COMMAND");function x(a){return y(a,b=>r(b))}function y(a,b){for(;null!==a&&null!==(a=a.getParent())&&!b(a););return a}exports.$createAutoLinkNode=v;exports.$createLinkNode=q;exports.$isAutoLinkNode=function(a){return a instanceof u};exports.$isLinkNode=r;exports.AutoLinkNode=u;exports.LinkNode=n;exports.TOGGLE_LINK_COMMAND=w;
14
14
  exports.toggleLink=function(a,b={}){let {target:c}=b,h=void 0===b.rel?"noopener":b.rel;b=m.$getSelection();if(m.$isRangeSelection(b))if(b=b.extract(),null===a)b.forEach(k=>{k=k.getParent();if(r(k)){let d=k.getChildren();for(let f=0;f<d.length;f++)k.insertBefore(d[f]);k.remove()}});else{if(1===b.length){var e=b[0];e=r(e)?e:x(e);if(null!==e){e.setURL(a);void 0!==c&&e.setTarget(c);null!==h&&e.setRel(h);return}}let k=null,d=null;b.forEach(f=>{var g=f.getParent();if(g!==d&&null!==g&&(!m.$isElementNode(f)||
15
15
  f.isInline()))if(r(g))d=g,g.setURL(a),void 0!==c&&g.setTarget(c),null!==h&&d.setRel(h);else if(g.is(k)||(k=g,d=q(a,{rel:h,target:c}),r(g)?null===f.getPreviousSibling()?g.insertBefore(d):g.insertAfter(d):f.insertBefore(d)),r(f)){if(!f.is(d)){if(null!==d){g=f.getChildren();for(let t=0;t<g.length;t++)d.append(g[t])}f.remove()}}else null!==d&&d.append(f)})}}
package/index.d.ts CHANGED
@@ -39,7 +39,7 @@ export declare class LinkNode extends ElementNode {
39
39
  setTarget(target: null | string): void;
40
40
  getRel(): null | string;
41
41
  setRel(rel: null | string): void;
42
- insertNewAfter(selection: RangeSelection): null | ElementNode;
42
+ insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): null | ElementNode;
43
43
  canInsertTextBefore(): false;
44
44
  canInsertTextAfter(): false;
45
45
  canBeEmpty(): false;
@@ -58,7 +58,7 @@ export declare class AutoLinkNode extends LinkNode {
58
58
  static importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode;
59
59
  static importDOM(): null;
60
60
  exportJSON(): SerializedAutoLinkNode;
61
- insertNewAfter(selection: RangeSelection): null | ElementNode;
61
+ insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): null | ElementNode;
62
62
  }
63
63
  export declare function $createAutoLinkNode(url: string, attributes?: LinkAttributes): AutoLinkNode;
64
64
  export declare function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode;
package/package.json CHANGED
@@ -8,13 +8,13 @@
8
8
  "link"
9
9
  ],
10
10
  "license": "MIT",
11
- "version": "0.6.5",
11
+ "version": "0.7.1",
12
12
  "main": "LexicalLink.js",
13
13
  "peerDependencies": {
14
- "lexical": "0.6.5"
14
+ "lexical": "0.7.1"
15
15
  },
16
16
  "dependencies": {
17
- "@lexical/utils": "0.6.5"
17
+ "@lexical/utils": "0.7.1"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",