@chayns-components/emoji-input 5.0.0-beta.150 → 5.0.0-beta.151
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/lib/utils/selection.js
CHANGED
|
@@ -14,7 +14,6 @@ const saveSelection = function (element) {
|
|
|
14
14
|
const selection = window.getSelection();
|
|
15
15
|
console.debug('saveSelection 1', {
|
|
16
16
|
anchorNode: selection === null || selection === void 0 ? void 0 : selection.anchorNode,
|
|
17
|
-
range: selection === null || selection === void 0 ? void 0 : selection.getRangeAt(0),
|
|
18
17
|
selection,
|
|
19
18
|
shouldIgnoreEmptyTextNodes
|
|
20
19
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","names":["childIndex","endOffset","startOffset","saveSelection","element","shouldIgnoreEmptyTextNodes","arguments","length","undefined","selection","window","getSelection","console","debug","anchorNode","range","getRangeAt","childNodesArray","Array","from","childNodes","filter","_ref","nodeType","nodeValue","Node","TEXT_NODE","indexOf","exports","restoreSelection","_childNode","childNode","_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 console.debug('saveSelection 1', {\n anchorNode: selection?.anchorNode,\n
|
|
1
|
+
{"version":3,"file":"selection.js","names":["childIndex","endOffset","startOffset","saveSelection","element","shouldIgnoreEmptyTextNodes","arguments","length","undefined","selection","window","getSelection","console","debug","anchorNode","range","getRangeAt","childNodesArray","Array","from","childNodes","filter","_ref","nodeType","nodeValue","Node","TEXT_NODE","indexOf","exports","restoreSelection","_childNode","childNode","_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 console.debug('saveSelection 1', {\n anchorNode: selection?.anchorNode,\n selection,\n shouldIgnoreEmptyTextNodes,\n });\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 console.debug('saveSelection 2', { childIndex, endOffset, 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 1', {\n childIndex,\n childNode,\n childNodes: element.childNodes,\n element,\n endOffset,\n nodeValue: childNode?.nodeValue,\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('\\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 console.debug('restoreSelection 2', {\n childNode,\n endOffset,\n range,\n startOffset,\n });\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.
|
|
3
|
+
"version": "5.0.0-beta.151",
|
|
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": "
|
|
71
|
+
"gitHead": "2a68eb8b2355950c5706d5c854c5d24d0e3bc114"
|
|
72
72
|
}
|