From 5e6bb241adf995f77987b8d1932186b7ce35bf94 Mon Sep 17 00:00:00 2001 From: Michael Sharman Date: Wed, 20 Mar 2024 15:44:23 +1100 Subject: [PATCH] Fixed range selection and added emoji. --- package-lock.json | 54 +++++++++---------- package.json | 2 +- .../extensions/ui/ssmlEditor/index.js | 10 ++-- 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index db2dd4c..61e8d0b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@caspingus/lt", - "version": "2.7.2", + "version": "2.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@caspingus/lt", - "version": "2.7.2", + "version": "2.8.0", "license": "MIT", "dependencies": { "entities": "^4.5.0", @@ -1285,9 +1285,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "20.11.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", + "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1949,9 +1949,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001597", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", - "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "version": "1.0.30001599", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", + "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", "dev": true, "funding": [ { @@ -2314,9 +2314,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.706", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.706.tgz", - "integrity": "sha512-fO01fufoGd6jKK3HR8ofBapF3ZPfgxNJ/ua9xQAhFu93TwWIs4d+weDn3kje3GB4S7aGUTfk5nvdU5F7z5mF9Q==", + "version": "1.4.708", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", + "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==", "dev": true }, "node_modules/emitter-component": { @@ -4377,9 +4377,9 @@ } }, "node_modules/parchment": { - "version": "3.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0-alpha.2.tgz", - "integrity": "sha512-r/DoIj7e8efiTWUg+BHUlolpdE9/iNVtcFg8i7SvdlF7a7fgTAAwcXrpamNrf49IsGykyDcsfUZKGFVwMXZcyg==" + "version": "3.0.0-beta.0", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0-beta.0.tgz", + "integrity": "sha512-5TELdlKhfAFJ7TNUiGPZk8pVi8UPZ0qAffaZsMwIpGe3+JngGJjYW7hB7VaUTL3cSW1iZ+HEHixOdf+U58/HWA==" }, "node_modules/parse-json": { "version": "5.2.0", @@ -4519,9 +4519,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz", + "integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==", "dev": true, "funding": [ { @@ -4540,7 +4540,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.1.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -4731,13 +4731,13 @@ ] }, "node_modules/quill": { - "version": "2.0.0-rc.2", - "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.0-rc.2.tgz", - "integrity": "sha512-3uh7uZqXpN4t0HmHCjBHXSaeSgYNij6LP1t8ncEjr6+JMq5zR6svpH5Frx7Lxmxv1DUHYDE28eV7R3f4r8Z2Kw==", + "version": "2.0.0-rc.3", + "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.0-rc.3.tgz", + "integrity": "sha512-v81wWKo17t60aZnG0EZ6R3I0JRECtnx/dZnzUJtAMV704uNQ+/Mwv8oYedfwYw75N3Aj2ZC/bMi56YxvKho3qw==", "dependencies": { "eventemitter3": "^5.0.1", "lodash-es": "^4.17.21", - "parchment": "^3.0.0-alpha.2", + "parchment": "3.0.0-beta.0", "quill-delta": "^5.1.0" }, "engines": { @@ -5099,9 +5099,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz", + "integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5154,8 +5154,8 @@ } }, "node_modules/ssml-editor": { - "version": "0.1.0", - "resolved": "git+ssh://git@github.com/michaelsharman/ssml-editor.git#c8a79f8814e12fe5862f6c33a89344ba43401f4f", + "version": "0.1.1", + "resolved": "git+ssh://git@github.com/michaelsharman/ssml-editor.git#2d10969318f1802b2e899172b1583519d4c86545", "license": "MIT", "dependencies": { "buffer": "^6.0.3", diff --git a/package.json b/package.json index c56ab5e..5b5f303 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@caspingus/lt", - "version": "2.8.0", + "version": "2.8.1", "description": "A utility library of helpers and tools for working with Learnosity APIs.", "main": "src/index.js", "author": "michael@learnosity.com", diff --git a/src/authoring/extensions/ui/ssmlEditor/index.js b/src/authoring/extensions/ui/ssmlEditor/index.js index 17d2e06..cceb294 100644 --- a/src/authoring/extensions/ui/ssmlEditor/index.js +++ b/src/authoring/extensions/ui/ssmlEditor/index.js @@ -121,7 +121,11 @@ export function run() { * @since 2.8.0 */ export function launchSsmlEditor(attribute, callback) { - const currentSelectedText = getSelection().toString(); + const currentSelectedText = window.getSelection().toString(); + const rangeSelectedHTML = window.getSelection().getRangeAt(0); + const container = document.createElement('div'); + container.appendChild(rangeSelectedHTML.cloneContents()); + const currentSelectedHTML = container.innerHTML; const templateSsmlEditor = `
@@ -150,7 +154,7 @@ export function launchSsmlEditor(attribute, callback) {  
@@ -170,7 +174,7 @@ export function launchSsmlEditor(attribute, callback) { elClose[i].addEventListener('click', () => { removeElement('lt__ssmlModalWrapper'); delete window.quill; - return callback(currentSelectedText); + return callback(currentSelectedHTML); }); }