@chayns-components/emoji-input 5.0.0-beta.135 → 5.0.0-beta.137

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.
@@ -29,7 +29,7 @@ const saveSelection = function (element) {
29
29
  nodeType,
30
30
  nodeValue
31
31
  } = _ref;
32
- return nodeType !== Node.TEXT_NODE || nodeValue !== '';
32
+ return nodeType !== Node.TEXT_NODE || nodeValue !== '' && nodeValue !== '\u200B';
33
33
  });
34
34
  }
35
35
  childIndex = childNodesArray.indexOf(anchorNode);
@@ -38,23 +38,24 @@ const saveSelection = function (element) {
38
38
  };
39
39
  exports.saveSelection = saveSelection;
40
40
  const restoreSelection = element => {
41
+ var _childNode;
41
42
  let childNode = element.childNodes[childIndex];
42
43
  const selection = window.getSelection();
43
44
  console.debug('restoreSelection', {
44
- childIndex,
45
45
  childNode,
46
46
  childNodes: element.childNodes,
47
+ childIndex,
47
48
  element,
48
49
  endOffset,
49
- selection,
50
- startOffset
50
+ typeOfNodeValue: typeof ((_childNode = childNode) === null || _childNode === void 0 ? void 0 : _childNode.nodeValue),
51
+ selection
51
52
  });
52
53
  if (!childNode || !element || !selection) {
53
54
  return;
54
55
  }
55
56
  if (typeof childNode.nodeValue !== 'string') {
56
57
  var _childNode$parentNode;
57
- const textNode = document.createTextNode('');
58
+ const textNode = document.createTextNode('\u200B');
58
59
  (_childNode$parentNode = childNode.parentNode) === null || _childNode$parentNode === void 0 ? void 0 : _childNode$parentNode.insertBefore(textNode, childNode.nextSibling);
59
60
  childNode = textNode;
60
61
  endOffset = 0;
@@ -67,7 +68,7 @@ const restoreSelection = element => {
67
68
  startOffset = childNode.nodeValue.length;
68
69
  } else {
69
70
  var _childNode$parentNode2;
70
- const textNode = document.createTextNode('');
71
+ const textNode = document.createTextNode('\u200B');
71
72
  (_childNode$parentNode2 = childNode.parentNode) === null || _childNode$parentNode2 === void 0 ? void 0 : _childNode$parentNode2.insertBefore(textNode, childNode.nextSibling);
72
73
  childNode = textNode;
73
74
  endOffset = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"selection.js","names":["childIndex","endOffset","startOffset","saveSelection","element","shouldIgnoreEmptyTextNodes","arguments","length","undefined","selection","window","getSelection","anchorNode","range","getRangeAt","childNodesArray","Array","from","childNodes","filter","_ref","nodeType","nodeValue","Node","TEXT_NODE","indexOf","exports","restoreSelection","childNode","console","debug","_childNode$parentNode","textNode","document","createTextNode","parentNode","insertBefore","nextSibling","_childNode$parentNode2","createRange","setStart","setEnd","removeAllRanges","addRange","collapse","moveSelectionOffset","distance","setChildIndex","index"],"sources":["../../src/utils/selection.ts"],"sourcesContent":["let childIndex = -1;\nlet endOffset = -1;\nlet startOffset = -1;\n\ninterface SaveSelectionOptions {\n shouldIgnoreEmptyTextNodes?: boolean;\n}\n\nexport const saveSelection = (\n element: HTMLDivElement,\n { shouldIgnoreEmptyTextNodes }: SaveSelectionOptions = {}\n) => {\n const selection = window.getSelection();\n\n if (!selection) {\n return;\n }\n\n const { anchorNode } = selection;\n\n if (!anchorNode) {\n return;\n }\n\n const range = selection.getRangeAt(0);\n\n let childNodesArray = Array.from(element.childNodes);\n\n if (shouldIgnoreEmptyTextNodes) {\n childNodesArray = childNodesArray.filter(\n ({ nodeType, nodeValue }) => nodeType !== Node.TEXT_NODE || nodeValue !== ''\n );\n }\n\n childIndex = childNodesArray.indexOf(anchorNode as ChildNode);\n\n endOffset = range.endOffset;\n startOffset = range.startOffset;\n};\n\nexport const restoreSelection = (element: HTMLDivElement) => {\n let childNode = element.childNodes[childIndex];\n\n const selection = window.getSelection();\n\n console.debug('restoreSelection', {\n childIndex,\n childNode,\n childNodes: element.childNodes,\n element,\n endOffset,\n selection,\n startOffset,\n });\n\n if (!childNode || !element || !selection) {\n return;\n }\n\n if (typeof childNode.nodeValue !== 'string') {\n const textNode = document.createTextNode('');\n\n childNode.parentNode?.insertBefore(textNode, childNode.nextSibling);\n\n childNode = textNode;\n\n endOffset = 0;\n startOffset = 0;\n } else if (childNode.nodeValue && endOffset > childNode.nodeValue.length) {\n if (childNode.nextSibling) {\n childNode = childNode.nextSibling;\n\n if (childNode.nodeType === Node.TEXT_NODE && childNode.nodeValue) {\n endOffset = childNode.nodeValue.length;\n startOffset = childNode.nodeValue.length;\n } else {\n const textNode = document.createTextNode('');\n\n childNode.parentNode?.insertBefore(textNode, childNode.nextSibling);\n\n childNode = textNode;\n\n endOffset = 0;\n startOffset = 0;\n }\n } else {\n endOffset = childNode.nodeValue.length;\n startOffset = childNode.nodeValue.length;\n }\n }\n\n const range = document.createRange();\n\n range.setStart(childNode, startOffset);\n range.setEnd(childNode, endOffset);\n\n selection.removeAllRanges();\n selection.addRange(range);\n\n range.collapse(true);\n};\n\nexport const moveSelectionOffset = (distance: number) => {\n endOffset += distance;\n startOffset += distance;\n};\n\nexport const setChildIndex = (index: number) => {\n childIndex = index;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"selection.js","names":["childIndex","endOffset","startOffset","saveSelection","element","shouldIgnoreEmptyTextNodes","arguments","length","undefined","selection","window","getSelection","anchorNode","range","getRangeAt","childNodesArray","Array","from","childNodes","filter","_ref","nodeType","nodeValue","Node","TEXT_NODE","indexOf","exports","restoreSelection","_childNode","childNode","console","debug","typeOfNodeValue","_childNode$parentNode","textNode","document","createTextNode","parentNode","insertBefore","nextSibling","_childNode$parentNode2","createRange","setStart","setEnd","removeAllRanges","addRange","collapse","moveSelectionOffset","distance","setChildIndex","index"],"sources":["../../src/utils/selection.ts"],"sourcesContent":["let childIndex = -1;\nlet endOffset = -1;\nlet startOffset = -1;\n\ninterface SaveSelectionOptions {\n shouldIgnoreEmptyTextNodes?: boolean;\n}\n\nexport const saveSelection = (\n element: HTMLDivElement,\n { shouldIgnoreEmptyTextNodes }: SaveSelectionOptions = {}\n) => {\n const selection = window.getSelection();\n\n if (!selection) {\n return;\n }\n\n const { anchorNode } = selection;\n\n if (!anchorNode) {\n return;\n }\n\n const range = selection.getRangeAt(0);\n\n let childNodesArray = Array.from(element.childNodes);\n\n if (shouldIgnoreEmptyTextNodes) {\n childNodesArray = childNodesArray.filter(\n ({ nodeType, nodeValue }) =>\n nodeType !== Node.TEXT_NODE || (nodeValue !== '' && nodeValue !== '\\u200B')\n );\n }\n\n childIndex = childNodesArray.indexOf(anchorNode as ChildNode);\n\n endOffset = range.endOffset;\n startOffset = range.startOffset;\n};\n\nexport const restoreSelection = (element: HTMLDivElement) => {\n let childNode = element.childNodes[childIndex];\n\n const selection = window.getSelection();\n\n console.debug('restoreSelection', {\n childNode,\n childNodes: element.childNodes,\n childIndex,\n element,\n endOffset,\n typeOfNodeValue: typeof childNode?.nodeValue,\n selection,\n });\n\n if (!childNode || !element || !selection) {\n return;\n }\n\n if (typeof childNode.nodeValue !== 'string') {\n const textNode = document.createTextNode('\\u200B');\n\n childNode.parentNode?.insertBefore(textNode, childNode.nextSibling);\n\n childNode = textNode;\n\n endOffset = 0;\n startOffset = 0;\n } else if (childNode.nodeValue && endOffset > childNode.nodeValue.length) {\n if (childNode.nextSibling) {\n childNode = childNode.nextSibling;\n\n if (childNode.nodeType === Node.TEXT_NODE && childNode.nodeValue) {\n endOffset = childNode.nodeValue.length;\n startOffset = childNode.nodeValue.length;\n } else {\n const textNode = document.createTextNode('\\u200B');\n\n childNode.parentNode?.insertBefore(textNode, childNode.nextSibling);\n\n childNode = textNode;\n\n endOffset = 0;\n startOffset = 0;\n }\n } else {\n endOffset = childNode.nodeValue.length;\n startOffset = childNode.nodeValue.length;\n }\n }\n\n const range = document.createRange();\n\n range.setStart(childNode, startOffset);\n range.setEnd(childNode, endOffset);\n\n selection.removeAllRanges();\n selection.addRange(range);\n\n range.collapse(true);\n};\n\nexport const moveSelectionOffset = (distance: number) => {\n endOffset += distance;\n startOffset += distance;\n};\n\nexport const setChildIndex = (index: number) => {\n childIndex = index;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/emoji-input",
3
- "version": "5.0.0-beta.135",
3
+ "version": "5.0.0-beta.137",
4
4
  "description": "Input field that supports HTML elements and emojis",
5
5
  "keywords": [
6
6
  "chayns",
@@ -68,5 +68,5 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "3a9473301f8e5f81e82778b698328283a6953774"
71
+ "gitHead": "a5fe11f4ae57362726b46828a47ae15af90a512c"
72
72
  }