@wiris/mathtype-ckeditor5 8.13.4 → 8.14.0
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/browser/index.js +118 -67
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.umd.js +118 -67
- package/dist/browser/index.umd.js.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/integration.js +2 -3
package/dist/index.js
CHANGED
|
@@ -46,11 +46,10 @@ import Telemeter from '@wiris/mathtype-html-integration-devkit/src/telemeter.js'
|
|
|
46
46
|
const languageObject = this.editorObject.config.get("language");
|
|
47
47
|
if (languageObject != null) {
|
|
48
48
|
if (typeof languageObject === "object") {
|
|
49
|
-
|
|
50
|
-
if (languageObject.hasOwnProperty("ui")) {
|
|
49
|
+
if (Object.prototype.hasOwnProperty.call(languageObject, "ui")) {
|
|
51
50
|
return languageObject.ui;
|
|
52
51
|
}
|
|
53
|
-
return
|
|
52
|
+
return this.editorObject.locale.uiLanguage;
|
|
54
53
|
}
|
|
55
54
|
return languageObject;
|
|
56
55
|
}
|
|
@@ -359,7 +358,7 @@ var mathIcon = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adob
|
|
|
359
358
|
|
|
360
359
|
var chemIcon = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 40.3 49.5\" style=\"enable-background:new 0 0 40.3 49.5;\" xml:space=\"preserve\">\n<style type=\"text/css\">\n\t.st0{fill:#A4CF61;}\n</style>\n<path class=\"st0\" d=\"M39.2,12.1c0-1.9-1.1-3.6-2.7-4.4L24.5,0.9l0,0c-0.7-0.4-1.5-0.6-2.4-0.6c-0.9,0-1.7,0.2-2.4,0.6l0,0L2.3,10.8\n\tl0,0C0.9,11.7,0,13.2,0,14.9h0v19.6h0c0,1.7,0.9,3.3,2.3,4.1l0,0l17.4,9.9l0,0c0.7,0.4,1.5,0.6,2.4,0.6c0.9,0,1.7-0.2,2.4-0.6l0,0\n\tl12.2-6.9h0c1.5-0.8,2.6-2.5,2.6-4.3c0-2.7-2.2-4.9-4.9-4.9c-0.9,0-1.8,0.3-2.5,0.7l0,0l-9.7,5.6l-12.3-7V17.8l12.3-7l9.9,5.7l0,0\n\tc0.7,0.4,1.5,0.6,2.4,0.6C37,17,39.2,14.8,39.2,12.1\"/>\n</svg>\n";
|
|
361
360
|
|
|
362
|
-
var version = "8.
|
|
361
|
+
var version = "8.14.0";
|
|
363
362
|
var packageInfo = {
|
|
364
363
|
version: version};
|
|
365
364
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/integration.js","../src/commands.js","../src/plugin.js"],"sourcesContent":["import IntegrationModel from \"@wiris/mathtype-html-integration-devkit/src/integrationmodel.js\";\nimport Util from \"@wiris/mathtype-html-integration-devkit/src/util.js\";\nimport Configuration from \"@wiris/mathtype-html-integration-devkit/src/configuration.js\";\nimport Latex from \"@wiris/mathtype-html-integration-devkit/src/latex.js\";\nimport MathML from \"@wiris/mathtype-html-integration-devkit/src/mathml.js\";\nimport Telemeter from \"@wiris/mathtype-html-integration-devkit/src/telemeter.js\";\n\n/**\n * This class represents the MathType integration for CKEditor5.\n * @extends {IntegrationModel}\n */\nexport default class CKEditor5Integration extends IntegrationModel {\n constructor(ckeditorIntegrationModelProperties) {\n const editor = ckeditorIntegrationModelProperties.editorObject;\n\n if (typeof editor.config !== \"undefined\" && typeof editor.config.get(\"mathTypeParameters\") !== \"undefined\") {\n ckeditorIntegrationModelProperties.integrationParameters = editor.config.get(\"mathTypeParameters\");\n }\n /**\n * CKEditor5 Integration.\n *\n * @param {integrationModelProperties} integrationModelAttributes\n */\n super(ckeditorIntegrationModelProperties);\n\n /**\n * Folder name used for the integration inside CKEditor plugins folder.\n */\n this.integrationFolderName = \"ckeditor_wiris\";\n }\n\n /**\n * @inheritdoc\n * @returns {string} - The CKEditor instance language.\n * @override\n */\n getLanguage() {\n // Returns the CKEDitor instance language taking into account that the language can be an object.\n // Try to get editorParameters.language, fail silently otherwise\n try {\n return this.editorParameters.language;\n } catch (e) {}\n const languageObject = this.editorObject.config.get(\"language\");\n if (languageObject != null) {\n if (typeof languageObject === \"object\") {\n // eslint-disable-next-line no-prototype-builtins\n if (languageObject.hasOwnProperty(\"ui\")) {\n return languageObject.ui;\n }\n return languageObject;\n }\n return languageObject;\n }\n return super.getLanguage();\n }\n\n /**\n * Adds callbacks to the following CKEditor listeners:\n * - 'focus' - updates the current instance.\n * - 'contentDom' - adds 'doubleclick' callback.\n * - 'doubleclick' - sets to null data.dialog property to avoid modifications for MathType formulas.\n * - 'setData' - parses the data converting MathML into images.\n * - 'afterSetData' - adds an observer to MathType formulas to avoid modifications.\n * - 'getData' - parses the data converting images into selected save mode (MathML by default).\n * - 'mode' - recalculates the active element.\n */\n addEditorListeners() {\n const editor = this.editorObject;\n\n if (typeof editor.config.wirislistenersdisabled === \"undefined\" || !editor.config.wirislistenersdisabled) {\n this.checkElement();\n }\n }\n\n /**\n * Checks the current container and assign events in case that it doesn't have them.\n * CKEditor replaces several times the element element during its execution,\n * so we must assign the events again to editor element.\n */\n checkElement() {\n const editor = this.editorObject;\n const newElement = editor.sourceElement;\n\n // If the element wasn't treated, add the events.\n if (!newElement.wirisActive) {\n this.setTarget(newElement);\n this.addEvents();\n // Set the element as treated\n newElement.wirisActive = true;\n }\n }\n\n /**\n * @inheritdoc\n * @param {HTMLElement} element - HTMLElement target.\n * @param {MouseEvent} event - event which trigger the handler.\n */\n doubleClickHandler(element, event) {\n this.core.editionProperties.dbclick = true;\n if (this.editorObject.isReadOnly === false) {\n if (element.nodeName.toLowerCase() === \"img\") {\n if (Util.containsClass(element, Configuration.get(\"imageClassName\"))) {\n // Some plugins (image2, image) open a dialog on Double-click. On formulas\n // doubleclick event ends here.\n if (typeof event.stopPropagation !== \"undefined\") {\n // old I.E compatibility.\n event.stopPropagation();\n } else {\n event.returnValue = false;\n }\n this.core.getCustomEditors().disable();\n const customEditorAttr = element.getAttribute(Configuration.get(\"imageCustomEditorName\"));\n if (customEditorAttr) {\n this.core.getCustomEditors().enable(customEditorAttr);\n }\n this.core.editionProperties.temporalImage = element;\n this.openExistingFormulaEditor();\n }\n }\n }\n }\n\n /** @inheritdoc */\n static getCorePath() {\n return null; // TODO\n }\n\n /** @inheritdoc */\n callbackFunction() {\n super.callbackFunction();\n this.addEditorListeners();\n }\n\n openNewFormulaEditor() {\n // Store the editor selection as it will be lost upon opening the modal\n this.core.editionProperties.selection = this.editorObject.editing.view.document.selection;\n\n // Focus on the selected editor when multiple editor instances are present\n WirisPlugin.currentInstance = this;\n\n return super.openNewFormulaEditor();\n }\n\n /**\n * Replaces old formula with new MathML or inserts it in caret position if new\n * @param {String} mathml MathML to update old one or insert\n * @returns {module:engine/model/element~Element} The model element corresponding to the inserted image\n */\n insertMathml(mathml) {\n // This returns the value returned by the callback function (writer => {...})\n return this.editorObject.model.change((writer) => {\n const core = this.getCore();\n const selection = this.editorObject.model.document.selection;\n\n const modelElementNew = writer.createElement(\"mathml\", {\n formula: mathml,\n ...Object.fromEntries(selection.getAttributes()), // To keep the format, such as style and font\n });\n\n // Obtain the DOM <span><img ... /></span> object corresponding to the formula\n if (core.editionProperties.isNewElement) {\n // Don't bother inserting anything at all if the MathML is empty.\n if (!mathml) return;\n\n const viewSelection =\n this.core.editionProperties.selection || this.editorObject.editing.view.document.selection;\n const modelPosition = this.editorObject.editing.mapper.toModelPosition(viewSelection.getLastPosition());\n\n this.editorObject.model.insertObject(modelElementNew, modelPosition);\n\n // Remove selection\n if (!viewSelection.isCollapsed) {\n for (const range of viewSelection.getRanges()) {\n writer.remove(this.editorObject.editing.mapper.toModelRange(range));\n }\n }\n\n // Set carret after the formula\n const position = this.editorObject.model.createPositionAfter(modelElementNew);\n writer.setSelection(position);\n } else {\n const img = core.editionProperties.temporalImage;\n const viewElement = this.editorObject.editing.view.domConverter.domToView(img).parent;\n const modelElementOld = this.editorObject.editing.mapper.toModelElement(viewElement);\n\n // Insert the new <mathml> and remove the old one\n const position = this.editorObject.model.createPositionBefore(modelElementOld);\n\n // If the given MathML is empty, don't insert a new formula.\n if (mathml) {\n this.editorObject.model.insertObject(modelElementNew, position);\n }\n writer.remove(modelElementOld);\n }\n\n // eslint-disable-next-line consistent-return\n return modelElementNew;\n });\n }\n\n /**\n * Finds the text node corresponding to given DOM text element.\n * @param {element} viewElement Element to find corresponding text node of.\n * @returns {module:engine/model/text~Text|undefined} Text node corresponding to the given element or undefined if it doesn't exist.\n */\n findText(viewElement) {\n // eslint-disable-line consistent-return\n // mapper always converts text nodes to *new* model elements so we need to convert the text's parents and then come back down\n let pivot = viewElement;\n let element;\n while (!element) {\n element = this.editorObject.editing.mapper.toModelElement(\n this.editorObject.editing.view.domConverter.domToView(pivot),\n );\n pivot = pivot.parentElement;\n }\n\n // Navigate through all the subtree under `pivot` in order to find the correct text node\n const range = this.editorObject.model.createRangeIn(element);\n const descendants = Array.from(range.getItems());\n for (const node of descendants) {\n let viewElementData = viewElement.data;\n if (viewElement.nodeType === 3) {\n // Remove invisible white spaces\n viewElementData = viewElementData.replaceAll(String.fromCharCode(8288), \"\");\n }\n if (node.is(\"textProxy\") && node.data === viewElementData.replace(String.fromCharCode(160), \" \")) {\n return node.textNode;\n }\n }\n }\n\n /** @inheritdoc */\n insertFormula(focusElement, windowTarget, mathml, wirisProperties) {\n // eslint-disable-line no-unused-vars\n const returnObject = {};\n\n let mathmlOrigin;\n if (!mathml) {\n this.insertMathml(\"\");\n } else if (this.core.editMode === \"latex\") {\n returnObject.latex = Latex.getLatexFromMathML(mathml);\n returnObject.node = windowTarget.document.createTextNode(`$$${returnObject.latex}$$`);\n\n this.editorObject.model.change((writer) => {\n const { latexRange } = this.core.editionProperties;\n\n const startNode = this.findText(latexRange.startContainer);\n const endNode = this.findText(latexRange.endContainer);\n\n let startPosition = writer.createPositionAt(startNode.parent, startNode.startOffset + latexRange.startOffset);\n let endPosition = writer.createPositionAt(endNode.parent, endNode.startOffset + latexRange.endOffset);\n\n let range = writer.createRange(startPosition, endPosition);\n\n // When Latex is next to image/formula.\n if (latexRange.startContainer.nodeType === 3 && latexRange.startContainer.previousSibling?.nodeType === 1) {\n // Get the position of the latex to be replaced.\n const latexEdited = `$$${Latex.getLatexFromMathML(\n MathML.safeXmlDecode(this.core.editionProperties.temporalImage.dataset.mathml),\n )}$$`;\n let data = latexRange.startContainer.data;\n\n // Remove invisible characters.\n data = data.replaceAll(String.fromCharCode(8288), \"\");\n\n // Get to the start of the latex we are editing.\n const offset = data.indexOf(latexEdited);\n const dataOffset = data.substring(offset);\n const second$ = dataOffset.substring(2).indexOf(\"$$\") + 4;\n const substring = dataOffset.substr(0, second$);\n data = data.replace(substring, \"\");\n\n if (!data) {\n startPosition = writer.createPositionBefore(startNode);\n range = startNode;\n } else {\n startPosition = startPosition = writer.createPositionAt(startNode.parent, startNode.startOffset + offset);\n endPosition = writer.createPositionAt(endNode.parent, endNode.startOffset + second$ + offset);\n range = writer.createRange(startPosition, endPosition);\n }\n }\n\n writer.remove(range);\n writer.insertText(`$$${returnObject.latex}$$`, startNode.getAttributes(), startPosition);\n });\n } else {\n mathmlOrigin = this.core.editionProperties.temporalImage?.dataset.mathml;\n try {\n returnObject.node = this.editorObject.editing.view.domConverter.viewToDom(\n this.editorObject.editing.mapper.toViewElement(this.insertMathml(mathml)),\n windowTarget.document,\n );\n } catch (e) {\n const x = e.toString();\n if (x.includes(\"CKEditorError: Cannot read property 'parent' of undefined\")) {\n this.core.modalDialog.cancelAction();\n }\n }\n }\n\n // Build the telemeter payload separated to delete null/undefined entries.\n const payload = {\n mathml_origin: mathmlOrigin ? MathML.safeXmlDecode(mathmlOrigin) : mathmlOrigin,\n mathml: mathml ? MathML.safeXmlDecode(mathml) : mathml,\n elapsed_time: Date.now() - this.core.editionProperties.editionStartTime,\n editor_origin: null, // TODO read formula to find out whether it comes from Oxygen Desktop\n toolbar: this.core.modalDialog.contentManager.toolbar,\n size: mathml?.length,\n };\n\n // Remove desired null keys.\n Object.keys(payload).forEach((key) => {\n if (key === \"mathml_origin\" || key === \"editor_origin\") !payload[key] ? delete payload[key] : {};\n });\n\n // Call Telemetry service to track the event.\n try {\n Telemeter.telemeter.track(\"INSERTED_FORMULA\", {\n ...payload,\n });\n } catch (error) {\n console.error(\"Error tracking INSERTED_FORMULA\", error);\n }\n\n /* Due to PLUGINS-1329, we add the onChange event to the CK4 insertFormula.\n We probably should add it here as well, but we should look further into how */\n // this.editorObject.fire('change');\n\n // Remove temporal image of inserted formula\n this.core.editionProperties.temporalImage = null;\n\n return returnObject;\n }\n\n /**\n * Function called when the content submits an action.\n */\n notifyWindowClosed() {\n this.editorObject.editing.view.focus();\n }\n}\n","/* eslint-disable max-classes-per-file */\nimport { Command } from \"ckeditor5/src/core.js\";\nimport CKEditor5Integration from \"./integration.js\";\n\n/**\n * Command for opening the MathType editor\n */\nexport class MathTypeCommand extends Command {\n execute(options = {}) {\n // Check we get a valid integration\n // eslint-disable-next-line no-prototype-builtins\n if (!options.hasOwnProperty(\"integration\") || !(options.integration instanceof CKEditor5Integration)) {\n throw 'Must pass a valid CKEditor5Integration instance as attribute \"integration\" of options';\n }\n\n // Save the integration instance as a property of the command.\n this.integration = options.integration;\n\n // Set custom editor or disable it\n this.setEditor();\n\n // Open the editor\n this.openEditor();\n }\n\n /**\n * Sets the appropriate custom editor, if any, or disables them.\n */\n setEditor() {\n // It's possible that a custom editor was last used.\n // We need to disable it to avoid wrong behaviors.\n this.integration.core.getCustomEditors().disable();\n }\n\n /**\n * Checks whether we are editing an existing formula or a new one and opens the editor.\n */\n openEditor() {\n this.integration.core.editionProperties.dbclick = false;\n const image = this._getSelectedImage();\n if (\n typeof image !== \"undefined\" &&\n image !== null &&\n image.classList.contains(WirisPlugin.Configuration.get(\"imageClassName\"))\n ) {\n this.integration.core.editionProperties.temporalImage = image;\n this.integration.openExistingFormulaEditor();\n } else {\n this.integration.openNewFormulaEditor();\n }\n }\n\n /**\n * Gets the currently selected formula image\n * @returns {Element} selected image, if any, undefined otherwise\n */\n _getSelectedImage() {\n const { selection } = this.editor.editing.view.document;\n\n // If we can not extract the formula, fall back to default behavior.\n if (selection.isCollapsed || selection.rangeCount !== 1) {\n return;\n }\n\n // Look for the <span> wrapping the formula and then for the <img/> inside\n\n const range = selection.getFirstRange();\n\n let image;\n\n for (const span of range) {\n if (span.item.name !== \"span\") {\n return;\n }\n image = span.item.getChild(0);\n break;\n }\n\n if (!image) {\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return this.editor.editing.view.domConverter.mapViewToDom(image);\n }\n}\n\n/**\n * Command for opening the ChemType editor\n */\nexport class ChemTypeCommand extends MathTypeCommand {\n setEditor() {\n this.integration.core.getCustomEditors().enable(\"chemistry\");\n }\n}\n","// CKEditor imports\nimport { Plugin } from \"ckeditor5/src/core.js\";\nimport { ButtonView } from \"ckeditor5/src/ui.js\";\nimport { ClickObserver, HtmlDataProcessor, XmlDataProcessor, ViewUpcastWriter } from \"ckeditor5/src/engine.js\";\nimport { Widget, toWidget, viewToModelPositionOutsideModelElement } from \"ckeditor5/src/widget.js\";\n\n// MathType API imports\nimport IntegrationModel from \"@wiris/mathtype-html-integration-devkit/src/integrationmodel.js\";\nimport Core from \"@wiris/mathtype-html-integration-devkit/src/core.src.js\";\nimport Parser from \"@wiris/mathtype-html-integration-devkit/src/parser.js\";\nimport Util from \"@wiris/mathtype-html-integration-devkit/src/util.js\";\nimport Image from \"@wiris/mathtype-html-integration-devkit/src/image.js\";\nimport Configuration from \"@wiris/mathtype-html-integration-devkit/src/configuration.js\";\nimport Listeners from \"@wiris/mathtype-html-integration-devkit/src/listeners.js\";\nimport MathML from \"@wiris/mathtype-html-integration-devkit/src/mathml.js\";\nimport Latex from \"@wiris/mathtype-html-integration-devkit/src/latex.js\";\nimport StringManager from \"@wiris/mathtype-html-integration-devkit/src/stringmanager.js\";\nimport \"@wiris/mathtype-html-integration-devkit/src/md5.js\";\n\n// Local imports\nimport { MathTypeCommand, ChemTypeCommand } from \"./commands.js\";\nimport CKEditor5Integration from \"./integration.js\";\n\nimport mathIcon from \"../theme/icons/ckeditor5-formula.svg\";\nimport chemIcon from \"../theme/icons/ckeditor5-chem.svg\";\n\nimport packageInfo from \"../package.json\";\n\nexport let currentInstance = null; // eslint-disable-line import/no-mutable-exports\n\nexport default class MathType extends Plugin {\n static get requires() {\n return [Widget];\n }\n\n static get pluginName() {\n return \"MathType\";\n }\n\n init() {\n // Create the MathType API Integration object\n const integration = this._addIntegration();\n currentInstance = integration;\n\n // Add the MathType and ChemType commands to the editor\n this._addCommands();\n\n // Add the buttons for MathType and ChemType\n this._addViews(integration);\n\n // Registers the <mathml> element in the schema\n this._addSchema();\n\n // Add the downcast and upcast converters\n this._addConverters(integration);\n\n // Expose the WirisPlugin variable to the window\n this._exposeWiris();\n }\n\n /**\n * Inherited from Plugin class: Executed when CKEditor5 is destroyed\n */\n destroy() {\n // eslint-disable-line class-methods-use-this\n currentInstance?.destroy();\n }\n\n /**\n * Create the MathType API Integration object\n * @returns {CKEditor5Integration} the integration object\n */\n _addIntegration() {\n const { editor } = this;\n\n /**\n * Integration model constructor attributes.\n * @type {integrationModelProperties}\n */\n const integrationProperties = {};\n integrationProperties.environment = {};\n integrationProperties.environment.editor = \"CKEditor5\";\n integrationProperties.environment.editorVersion = \"5.x\";\n integrationProperties.version = packageInfo.version;\n integrationProperties.editorObject = editor;\n integrationProperties.serviceProviderProperties = {};\n integrationProperties.serviceProviderProperties.URI = \"https://www.wiris.net/demo/plugins/app\";\n integrationProperties.serviceProviderProperties.server = \"java\";\n integrationProperties.target = editor.sourceElement;\n integrationProperties.scriptName = \"bundle.js\";\n integrationProperties.managesLanguage = true;\n // etc\n\n // There are platforms like Drupal that initialize CKEditor but they hide or remove the container element.\n // To avoid a wrong behavior, this integration only starts if the workspace container exists.\n let integration;\n if (integrationProperties.target) {\n // Instance of the integration associated to this editor instance\n integration = new CKEditor5Integration(integrationProperties);\n integration.init();\n integration.listeners.fire(\"onTargetReady\", {});\n\n integration.checkElement();\n\n this.listenTo(\n editor.editing.view.document,\n \"click\",\n (evt, data) => {\n // Is Double-click\n if (data.domEvent.detail === 2) {\n integration.doubleClickHandler(data.domTarget, data.domEvent);\n evt.stop();\n }\n },\n { priority: \"highest\" },\n );\n }\n\n return integration;\n }\n\n /**\n * Add the MathType and ChemType commands to the editor\n */\n _addCommands() {\n const { editor } = this;\n\n // Add command to open the formula editor\n editor.commands.add(\"MathType\", new MathTypeCommand(editor));\n\n // Add command to open the chemistry formula editor\n editor.commands.add(\"ChemType\", new ChemTypeCommand(editor));\n }\n\n /**\n * Add the buttons for MathType and ChemType\n * @param {CKEditor5Integration} integration the integration object\n */\n _addViews(integration) {\n const { editor } = this;\n\n // Check if MathType editor is enabled\n if (Configuration.get(\"editorEnabled\")) {\n // Add button for the formula editor\n editor.ui.componentFactory.add(\"MathType\", (locale) => {\n const view = new ButtonView(locale);\n\n // View is enabled iff command is enabled\n view.bind(\"isEnabled\").to(editor.commands.get(\"MathType\"), \"isEnabled\");\n view.set({\n label: StringManager.get(\"insert_math\", integration.getLanguage()),\n icon: mathIcon,\n tooltip: true,\n });\n\n // Callback executed once the image is clicked.\n view.on(\"execute\", () => {\n editor.execute(\"MathType\", {\n integration, // Pass integration as parameter\n });\n });\n\n return view;\n });\n }\n\n // Check if ChemType editor is enabled\n if (Configuration.get(\"chemEnabled\")) {\n // Add button for the chemistry formula editor\n editor.ui.componentFactory.add(\"ChemType\", (locale) => {\n const view = new ButtonView(locale);\n\n // View is enabled iff command is enabled\n view.bind(\"isEnabled\").to(editor.commands.get(\"ChemType\"), \"isEnabled\");\n\n view.set({\n label: StringManager.get(\"insert_chem\", integration.getLanguage()),\n icon: chemIcon,\n tooltip: true,\n });\n\n // Callback executed once the image is clicked.\n view.on(\"execute\", () => {\n editor.execute(\"ChemType\", {\n integration, // Pass integration as parameter\n });\n });\n\n return view;\n });\n }\n\n // Observer for the Double-click event\n editor.editing.view.addObserver(ClickObserver);\n }\n\n /**\n * Registers the <mathml> element in the schema\n */\n _addSchema() {\n const { schema } = this.editor.model;\n\n schema.register(\"mathml\", {\n inheritAllFrom: \"$inlineObject\",\n allowAttributes: [\"formula\", \"htmlContent\"],\n });\n }\n\n /**\n * Add the downcast and upcast converters\n */\n _addConverters(integration) {\n const { editor } = this;\n\n // Editing view -> Model\n editor.conversion.for(\"upcast\").elementToElement({\n view: {\n name: \"span\",\n classes: \"ck-math-widget\",\n },\n model: (viewElement, { writer: modelWriter }) => {\n const formula = MathML.safeXmlDecode(viewElement.getChild(0).getAttribute(\"data-mathml\"));\n return modelWriter.createElement(\"mathml\", {\n formula,\n });\n },\n });\n\n // Data view -> Model\n editor.data.upcastDispatcher.on(\"element:math\", (evt, data, conversionApi) => {\n const { consumable, writer } = conversionApi;\n const { viewItem } = data;\n\n // When element was already consumed then skip it.\n if (!consumable.test(viewItem, { name: true })) {\n return;\n }\n\n // If we encounter any <math> with a LaTeX annotation inside,\n // convert it into a \"$$...$$\" string.\n const isLatex = mathIsLatex(viewItem); // eslint-disable-line no-use-before-define\n\n // Get the formula of the <math> (which is all its children).\n const processor = new XmlDataProcessor(editor.editing.view.document);\n\n // Only god knows why the following line makes viewItem lose all of its children,\n // so we obtain isLatex before doing this because we need viewItem's children for that.\n const upcastWriter = new ViewUpcastWriter(editor.editing.view.document);\n const viewDocumentFragment = upcastWriter.createDocumentFragment(viewItem.getChildren());\n\n // and obtain the attributes of <math> too!\n const mathAttributes = [...viewItem.getAttributes()].map(([key, value]) => ` ${key}=\"${value}\"`).join(\"\");\n\n // We process the document fragment\n let formula = processor.toData(viewDocumentFragment) || \"\";\n\n // And obtain the complete formula\n formula = Util.htmlSanitize(`<math${mathAttributes}>${formula}</math>`);\n\n // Replaces the < & > characters to its HTMLEntity to avoid render issues.\n formula = formula.replaceAll('\"<\"', '\"<\"').replaceAll('\">\"', '\">\"').replaceAll(\"><<\", \"><<\");\n\n /* Model node that contains what's going to actually be inserted. This can be either:\n - A <mathml> element with a formula attribute set to the given formula, or\n - If the original <math> had a LaTeX annotation, then the annotation surrounded by \"$$...$$\" */\n const modelNode = isLatex\n ? writer.createText(Parser.initParse(formula, integration.getLanguage()))\n : writer.createElement(\"mathml\", { formula });\n\n // Find allowed parent for element that we are going to insert.\n // If current parent does not allow to insert element but one of the ancestors does\n // then split nodes to allowed parent.\n const splitResult = conversionApi.splitToAllowedParent(modelNode, data.modelCursor);\n\n // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n if (!splitResult) {\n return;\n }\n\n // Insert element on allowed position.\n conversionApi.writer.insert(modelNode, splitResult.position);\n\n // Consume appropriate value from consumable values list.\n consumable.consume(viewItem, { name: true });\n\n const parts = conversionApi.getSplitParts(modelNode);\n\n // Set conversion result range.\n data.modelRange = writer.createRange(\n conversionApi.writer.createPositionBefore(modelNode),\n conversionApi.writer.createPositionAfter(parts[parts.length - 1]),\n );\n\n // Now we need to check where the `modelCursor` should be.\n if (splitResult.cursorParent) {\n // If we split parent to insert our element then we want to continue conversion in the new part of the split parent.\n //\n // before: <allowed><notAllowed>foo[]</notAllowed></allowed>\n // after: <allowed><notAllowed>foo</notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>\n\n data.modelCursor = conversionApi.writer.createPositionAt(splitResult.cursorParent, 0);\n } else {\n // Otherwise just continue after inserted element.\n data.modelCursor = data.modelRange.end;\n }\n });\n\n // Data view -> Model\n editor.data.upcastDispatcher.on(\n \"element:img\",\n (evt, data, conversionApi) => {\n const { consumable, writer } = conversionApi;\n const { viewItem } = data;\n\n // Only upcast when is wiris formula\n if (viewItem.getClassNames().next().value !== \"Wirisformula\") {\n return;\n }\n\n // The following code ensures that the element's name, attributes, and classes are consumed.\n // This means that they are marked as handled so that other parts of the system or plugins don't process them again.\n\n // Check if we can consume the element name.\n if (!consumable.test(viewItem, { name: true })) {\n return;\n }\n\n // Consume the name, attributes, and classes so nothing else processes it.\n consumable.consume(viewItem, { name: true });\n for (const attrName of viewItem.getAttributes()) {\n consumable.consume(viewItem, { attributes: [attrName] });\n }\n\n for (const className of viewItem.getClassNames()) {\n consumable.consume(viewItem, { classes: [className] });\n }\n\n const mathAttributes = [...viewItem.getAttributes()].map(([key, value]) => ` ${key}=\"${value}\"`).join(\"\");\n const htmlContent = Util.htmlSanitize(`<img${mathAttributes}>`);\n\n const modelNode = writer.createElement(\"mathml\", { htmlContent });\n\n // Find allowed parent for element that we are going to insert.\n // If current parent does not allow to insert element but one of the ancestors does\n // then split nodes to allowed parent.\n const splitResult = conversionApi.splitToAllowedParent(modelNode, data.modelCursor);\n\n // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n if (!splitResult) {\n return;\n }\n\n // Insert element on allowed position.\n conversionApi.writer.insert(modelNode, splitResult.position);\n\n // Consume appropriate value from consumable values list.\n consumable.consume(viewItem, { name: true });\n\n const parts = conversionApi.getSplitParts(modelNode);\n\n // Set conversion result range.\n data.modelRange = writer.createRange(\n conversionApi.writer.createPositionBefore(modelNode),\n conversionApi.writer.createPositionAfter(parts[parts.length - 1]),\n );\n\n // Now we need to check where the `modelCursor` should be.\n if (splitResult.cursorParent) {\n // If we split parent to insert our element then we want to continue conversion in the new part of the split parent.\n //\n // before: <allowed><notAllowed>foo[]</notAllowed></allowed>\n // after: <allowed><notAllowed>foo</notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>\n\n data.modelCursor = conversionApi.writer.createPositionAt(splitResult.cursorParent, 0);\n } else {\n // Otherwise just continue after inserted element.\n data.modelCursor = data.modelRange.end;\n }\n },\n // Ensures MathType processes the Wiris formulas before other plugins, preventing conflicts.\n { priority: \"high\" },\n );\n\n /**\n * Whether the given view <math> element has a LaTeX annotation element.\n * @param {*} math\n * @returns {bool}\n */\n function mathIsLatex(math) {\n const semantics = math.getChild(0);\n if (!semantics || semantics.name !== \"semantics\") return false;\n for (const child of semantics.getChildren()) {\n if (child.name === \"annotation\" && child.getAttribute(\"encoding\") === \"LaTeX\") {\n return true;\n }\n }\n return false;\n }\n\n function createViewWidget(modelItem, { writer: viewWriter }) {\n const widgetElement = viewWriter.createContainerElement(\"span\", {\n class: \"ck-math-widget\",\n });\n\n const mathUIElement = createViewImage(modelItem, { writer: viewWriter }); // eslint-disable-line no-use-before-define\n\n if (mathUIElement) {\n viewWriter.insert(viewWriter.createPositionAt(widgetElement, 0), mathUIElement);\n }\n\n return toWidget(widgetElement, viewWriter);\n }\n\n function createViewImage(modelItem, { writer: viewWriter }) {\n const htmlDataProcessor = new HtmlDataProcessor(viewWriter.document);\n\n const formula = modelItem.getAttribute(\"formula\");\n const htmlContent = modelItem.getAttribute(\"htmlContent\");\n\n if (!formula && !htmlContent) {\n return null;\n }\n\n let imgElement = null;\n\n if (htmlContent) {\n imgElement = htmlDataProcessor.toView(htmlContent).getChild(0);\n } else if (formula) {\n const mathString = formula.replaceAll('ref=\"<\"', 'ref=\"<\"');\n\n const imgHtml = Parser.initParse(mathString, integration.getLanguage());\n imgElement = htmlDataProcessor.toView(imgHtml).getChild(0);\n\n // Add HTML element (<img>) to model\n viewWriter.setAttribute(\"htmlContent\", imgHtml, modelItem);\n }\n\n /* Although we use the HtmlDataProcessor to obtain the attributes,\n * we must create a new EmptyElement which is independent of the\n * DataProcessor being used by this editor instance\n */\n if (imgElement) {\n return viewWriter.createEmptyElement(\"img\", imgElement.getAttributes(), {\n renderUnsafeAttributes: [\"src\"],\n });\n }\n\n return null;\n }\n\n // Model -> Editing view\n editor.conversion.for(\"editingDowncast\").elementToElement({\n model: \"mathml\",\n view: createViewWidget,\n });\n\n // Model -> Data view\n editor.conversion.for(\"dataDowncast\").elementToElement({\n model: \"mathml\",\n view: createDataString, // eslint-disable-line no-use-before-define\n });\n\n /**\n * Makes a copy of the given view node.\n * @param {module:engine/view/node~Node} sourceNode Node to copy.\n * @returns {module:engine/view/node~Node} Copy of the node.\n */\n function clone(viewWriter, sourceNode) {\n if (sourceNode.is(\"text\")) {\n return viewWriter.createText(sourceNode.data);\n }\n if (sourceNode.is(\"element\")) {\n if (sourceNode.is(\"emptyElement\")) {\n return viewWriter.createEmptyElement(sourceNode.name, sourceNode.getAttributes());\n }\n const element = viewWriter.createContainerElement(sourceNode.name, sourceNode.getAttributes());\n for (const child of sourceNode.getChildren()) {\n viewWriter.insert(viewWriter.createPositionAt(element, \"end\"), clone(viewWriter, child));\n }\n return element;\n }\n\n throw new Exception(\"Given node has unsupported type.\"); // eslint-disable-line no-undef\n }\n\n function createDataString(modelItem, { writer: viewWriter }) {\n const htmlDataProcessor = new HtmlDataProcessor(viewWriter.document);\n\n // Load img element\n const mathString =\n modelItem.getAttribute(\"htmlContent\") || Parser.endParseSaveMode(modelItem.getAttribute(\"formula\"));\n\n const sourceMathElement = htmlDataProcessor.toView(mathString).getChild(0);\n\n return clone(viewWriter, sourceMathElement);\n }\n\n // This stops the view selection getting into the <span>s and messing up caret movement\n editor.editing.mapper.on(\n \"viewToModelPosition\",\n viewToModelPositionOutsideModelElement(editor.model, (viewElement) => viewElement.hasClass(\"ck-math-widget\")),\n );\n\n // Keep a reference to the original get and set function.\n const { get, set } = editor.data;\n\n /**\n * Hack to transform $$latex$$ into <math> in editor.getData()'s output.\n */\n editor.data.on(\n \"get\",\n (e) => {\n const output = e.return;\n const parsedResult = Parser.endParse(output);\n\n // Cleans all the semantics tag for safexml\n // including the handwritten data points\n e.return = MathML.removeSafeXMLSemantics(parsedResult);\n },\n { priority: \"low\" },\n );\n\n /**\n * Hack to transform <math> with LaTeX into $$LaTeX$$ and formula images in editor.setData().\n */\n editor.data.on(\n \"set\",\n (e, args) => {\n // Retrieve the data to be set on the CKEditor.\n let modifiedData = args[0];\n // Regex to find all mathml formulas.\n const regexp = /(<img\\b[^>]*>)|(<math(.*?)<\\/math>)/gm;\n const formulas = [];\n let formula;\n\n // Both data.set from the source plugin and console command are taken into account as the data received is MathML or an image containing the MathML.\n while ((formula = regexp.exec(modifiedData)) !== null) {\n formulas.push(formula[0]);\n }\n\n // Loop to find LaTeX and formula images and replace the MathML for the both.\n formulas.forEach((formula) => {\n if (formula.includes('encoding=\"LaTeX\"')) {\n // LaTeX found.\n const latex = `$$$${Latex.getLatexFromMathML(formula)}$$$`; // We add $$$ instead of $$ because the replace function ignores one $.\n modifiedData = modifiedData.replace(formula, latex);\n } else if (formula.includes(\"<img\")) {\n // If we found a formula image, we should find MathML data, and then substitute the entire image.\n const regexp = /«math\\b[^»]*»(.*?)«\\/math»/g;\n const safexml = formula.match(regexp);\n if (safexml !== null) {\n const decodeXML = MathML.safeXmlDecode(safexml[0]);\n modifiedData = modifiedData.replace(formula, decodeXML);\n }\n }\n });\n\n args[0] = modifiedData;\n },\n { priority: \"high\" },\n );\n }\n\n /**\n * Expose the WirisPlugin variable to the window\n */\n // eslint-disable-next-line class-methods-use-this\n _exposeWiris() {\n window.WirisPlugin = {\n Core,\n Parser,\n Image,\n MathML,\n Util,\n Configuration,\n Listeners,\n IntegrationModel,\n currentInstance,\n Latex,\n };\n }\n}\n"],"names":["CKEditor5Integration","IntegrationModel","ckeditorIntegrationModelProperties","editor","editorObject","config","get","integrationParameters","integrationFolderName","getLanguage","editorParameters","language","e","languageObject","hasOwnProperty","ui","addEditorListeners","wirislistenersdisabled","checkElement","newElement","sourceElement","wirisActive","setTarget","addEvents","doubleClickHandler","element","event","core","editionProperties","dbclick","isReadOnly","nodeName","toLowerCase","Util","containsClass","Configuration","stopPropagation","returnValue","getCustomEditors","disable","customEditorAttr","getAttribute","enable","temporalImage","openExistingFormulaEditor","getCorePath","callbackFunction","openNewFormulaEditor","selection","editing","view","document","WirisPlugin","currentInstance","insertMathml","mathml","model","change","writer","getCore","modelElementNew","createElement","formula","Object","fromEntries","getAttributes","isNewElement","viewSelection","modelPosition","mapper","toModelPosition","getLastPosition","insertObject","isCollapsed","range","getRanges","remove","toModelRange","position","createPositionAfter","setSelection","img","viewElement","domConverter","domToView","parent","modelElementOld","toModelElement","createPositionBefore","findText","pivot","parentElement","createRangeIn","descendants","Array","from","getItems","node","viewElementData","data","nodeType","replaceAll","String","fromCharCode","is","replace","textNode","insertFormula","focusElement","windowTarget","wirisProperties","returnObject","mathmlOrigin","editMode","latex","Latex","getLatexFromMathML","createTextNode","latexRange","startNode","startContainer","endNode","endContainer","startPosition","createPositionAt","startOffset","endPosition","endOffset","createRange","previousSibling","latexEdited","MathML","safeXmlDecode","dataset","offset","indexOf","dataOffset","substring","second$","substr","insertText","viewToDom","toViewElement","x","toString","includes","modalDialog","cancelAction","payload","mathml_origin","elapsed_time","Date","now","editionStartTime","editor_origin","toolbar","contentManager","size","length","keys","forEach","key","Telemeter","telemeter","track","error","console","notifyWindowClosed","focus","MathTypeCommand","Command","execute","options","integration","setEditor","openEditor","image","_getSelectedImage","classList","contains","rangeCount","getFirstRange","span","item","name","getChild","mapViewToDom","ChemTypeCommand","MathType","Plugin","requires","Widget","pluginName","init","_addIntegration","_addCommands","_addViews","_addSchema","_addConverters","_exposeWiris","destroy","integrationProperties","environment","editorVersion","version","packageInfo","serviceProviderProperties","URI","server","target","scriptName","managesLanguage","listeners","fire","listenTo","evt","domEvent","detail","domTarget","stop","priority","commands","add","componentFactory","locale","ButtonView","bind","to","set","label","StringManager","icon","mathIcon","tooltip","on","chemIcon","addObserver","ClickObserver","schema","register","inheritAllFrom","allowAttributes","conversion","for","elementToElement","classes","modelWriter","upcastDispatcher","conversionApi","consumable","viewItem","test","isLatex","mathIsLatex","processor","XmlDataProcessor","upcastWriter","ViewUpcastWriter","viewDocumentFragment","createDocumentFragment","getChildren","mathAttributes","map","value","join","toData","htmlSanitize","modelNode","createText","Parser","initParse","splitResult","splitToAllowedParent","modelCursor","insert","consume","parts","getSplitParts","modelRange","cursorParent","end","getClassNames","next","attrName","attributes","className","htmlContent","math","semantics","child","createViewWidget","modelItem","viewWriter","widgetElement","createContainerElement","class","mathUIElement","createViewImage","toWidget","htmlDataProcessor","HtmlDataProcessor","imgElement","toView","mathString","imgHtml","setAttribute","createEmptyElement","renderUnsafeAttributes","createDataString","clone","sourceNode","Exception","endParseSaveMode","sourceMathElement","viewToModelPositionOutsideModelElement","hasClass","output","return","parsedResult","endParse","removeSafeXMLSemantics","args","modifiedData","regexp","formulas","exec","push","safexml","match","decodeXML","window","Core","Image","Listeners"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/integration.js","../src/commands.js","../src/plugin.js"],"sourcesContent":["import IntegrationModel from \"@wiris/mathtype-html-integration-devkit/src/integrationmodel.js\";\nimport Util from \"@wiris/mathtype-html-integration-devkit/src/util.js\";\nimport Configuration from \"@wiris/mathtype-html-integration-devkit/src/configuration.js\";\nimport Latex from \"@wiris/mathtype-html-integration-devkit/src/latex.js\";\nimport MathML from \"@wiris/mathtype-html-integration-devkit/src/mathml.js\";\nimport Telemeter from \"@wiris/mathtype-html-integration-devkit/src/telemeter.js\";\n\n/**\n * This class represents the MathType integration for CKEditor5.\n * @extends {IntegrationModel}\n */\nexport default class CKEditor5Integration extends IntegrationModel {\n constructor(ckeditorIntegrationModelProperties) {\n const editor = ckeditorIntegrationModelProperties.editorObject;\n\n if (typeof editor.config !== \"undefined\" && typeof editor.config.get(\"mathTypeParameters\") !== \"undefined\") {\n ckeditorIntegrationModelProperties.integrationParameters = editor.config.get(\"mathTypeParameters\");\n }\n /**\n * CKEditor5 Integration.\n *\n * @param {integrationModelProperties} integrationModelAttributes\n */\n super(ckeditorIntegrationModelProperties);\n\n /**\n * Folder name used for the integration inside CKEditor plugins folder.\n */\n this.integrationFolderName = \"ckeditor_wiris\";\n }\n\n /**\n * @inheritdoc\n * @returns {string} - The CKEditor instance language.\n * @override\n */\n getLanguage() {\n // Returns the CKEDitor instance language taking into account that the language can be an object.\n // Try to get editorParameters.language, fail silently otherwise\n try {\n return this.editorParameters.language;\n } catch (e) {}\n const languageObject = this.editorObject.config.get(\"language\");\n if (languageObject != null) {\n if (typeof languageObject === \"object\") {\n if (Object.prototype.hasOwnProperty.call(languageObject, \"ui\")) {\n return languageObject.ui;\n }\n return this.editorObject.locale.uiLanguage;\n }\n return languageObject;\n }\n return super.getLanguage();\n }\n\n /**\n * Adds callbacks to the following CKEditor listeners:\n * - 'focus' - updates the current instance.\n * - 'contentDom' - adds 'doubleclick' callback.\n * - 'doubleclick' - sets to null data.dialog property to avoid modifications for MathType formulas.\n * - 'setData' - parses the data converting MathML into images.\n * - 'afterSetData' - adds an observer to MathType formulas to avoid modifications.\n * - 'getData' - parses the data converting images into selected save mode (MathML by default).\n * - 'mode' - recalculates the active element.\n */\n addEditorListeners() {\n const editor = this.editorObject;\n\n if (typeof editor.config.wirislistenersdisabled === \"undefined\" || !editor.config.wirislistenersdisabled) {\n this.checkElement();\n }\n }\n\n /**\n * Checks the current container and assign events in case that it doesn't have them.\n * CKEditor replaces several times the element element during its execution,\n * so we must assign the events again to editor element.\n */\n checkElement() {\n const editor = this.editorObject;\n const newElement = editor.sourceElement;\n\n // If the element wasn't treated, add the events.\n if (!newElement.wirisActive) {\n this.setTarget(newElement);\n this.addEvents();\n // Set the element as treated\n newElement.wirisActive = true;\n }\n }\n\n /**\n * @inheritdoc\n * @param {HTMLElement} element - HTMLElement target.\n * @param {MouseEvent} event - event which trigger the handler.\n */\n doubleClickHandler(element, event) {\n this.core.editionProperties.dbclick = true;\n if (this.editorObject.isReadOnly === false) {\n if (element.nodeName.toLowerCase() === \"img\") {\n if (Util.containsClass(element, Configuration.get(\"imageClassName\"))) {\n // Some plugins (image2, image) open a dialog on Double-click. On formulas\n // doubleclick event ends here.\n if (typeof event.stopPropagation !== \"undefined\") {\n // old I.E compatibility.\n event.stopPropagation();\n } else {\n event.returnValue = false;\n }\n this.core.getCustomEditors().disable();\n const customEditorAttr = element.getAttribute(Configuration.get(\"imageCustomEditorName\"));\n if (customEditorAttr) {\n this.core.getCustomEditors().enable(customEditorAttr);\n }\n this.core.editionProperties.temporalImage = element;\n this.openExistingFormulaEditor();\n }\n }\n }\n }\n\n /** @inheritdoc */\n static getCorePath() {\n return null; // TODO\n }\n\n /** @inheritdoc */\n callbackFunction() {\n super.callbackFunction();\n this.addEditorListeners();\n }\n\n openNewFormulaEditor() {\n // Store the editor selection as it will be lost upon opening the modal\n this.core.editionProperties.selection = this.editorObject.editing.view.document.selection;\n\n // Focus on the selected editor when multiple editor instances are present\n WirisPlugin.currentInstance = this;\n\n return super.openNewFormulaEditor();\n }\n\n /**\n * Replaces old formula with new MathML or inserts it in caret position if new\n * @param {String} mathml MathML to update old one or insert\n * @returns {module:engine/model/element~Element} The model element corresponding to the inserted image\n */\n insertMathml(mathml) {\n // This returns the value returned by the callback function (writer => {...})\n return this.editorObject.model.change((writer) => {\n const core = this.getCore();\n const selection = this.editorObject.model.document.selection;\n\n const modelElementNew = writer.createElement(\"mathml\", {\n formula: mathml,\n ...Object.fromEntries(selection.getAttributes()), // To keep the format, such as style and font\n });\n\n // Obtain the DOM <span><img ... /></span> object corresponding to the formula\n if (core.editionProperties.isNewElement) {\n // Don't bother inserting anything at all if the MathML is empty.\n if (!mathml) return;\n\n const viewSelection =\n this.core.editionProperties.selection || this.editorObject.editing.view.document.selection;\n const modelPosition = this.editorObject.editing.mapper.toModelPosition(viewSelection.getLastPosition());\n\n this.editorObject.model.insertObject(modelElementNew, modelPosition);\n\n // Remove selection\n if (!viewSelection.isCollapsed) {\n for (const range of viewSelection.getRanges()) {\n writer.remove(this.editorObject.editing.mapper.toModelRange(range));\n }\n }\n\n // Set carret after the formula\n const position = this.editorObject.model.createPositionAfter(modelElementNew);\n writer.setSelection(position);\n } else {\n const img = core.editionProperties.temporalImage;\n const viewElement = this.editorObject.editing.view.domConverter.domToView(img).parent;\n const modelElementOld = this.editorObject.editing.mapper.toModelElement(viewElement);\n\n // Insert the new <mathml> and remove the old one\n const position = this.editorObject.model.createPositionBefore(modelElementOld);\n\n // If the given MathML is empty, don't insert a new formula.\n if (mathml) {\n this.editorObject.model.insertObject(modelElementNew, position);\n }\n writer.remove(modelElementOld);\n }\n\n // eslint-disable-next-line consistent-return\n return modelElementNew;\n });\n }\n\n /**\n * Finds the text node corresponding to given DOM text element.\n * @param {element} viewElement Element to find corresponding text node of.\n * @returns {module:engine/model/text~Text|undefined} Text node corresponding to the given element or undefined if it doesn't exist.\n */\n findText(viewElement) {\n // eslint-disable-line consistent-return\n // mapper always converts text nodes to *new* model elements so we need to convert the text's parents and then come back down\n let pivot = viewElement;\n let element;\n while (!element) {\n element = this.editorObject.editing.mapper.toModelElement(\n this.editorObject.editing.view.domConverter.domToView(pivot),\n );\n pivot = pivot.parentElement;\n }\n\n // Navigate through all the subtree under `pivot` in order to find the correct text node\n const range = this.editorObject.model.createRangeIn(element);\n const descendants = Array.from(range.getItems());\n for (const node of descendants) {\n let viewElementData = viewElement.data;\n if (viewElement.nodeType === 3) {\n // Remove invisible white spaces\n viewElementData = viewElementData.replaceAll(String.fromCharCode(8288), \"\");\n }\n if (node.is(\"textProxy\") && node.data === viewElementData.replace(String.fromCharCode(160), \" \")) {\n return node.textNode;\n }\n }\n }\n\n /** @inheritdoc */\n insertFormula(focusElement, windowTarget, mathml, wirisProperties) {\n // eslint-disable-line no-unused-vars\n const returnObject = {};\n\n let mathmlOrigin;\n if (!mathml) {\n this.insertMathml(\"\");\n } else if (this.core.editMode === \"latex\") {\n returnObject.latex = Latex.getLatexFromMathML(mathml);\n returnObject.node = windowTarget.document.createTextNode(`$$${returnObject.latex}$$`);\n\n this.editorObject.model.change((writer) => {\n const { latexRange } = this.core.editionProperties;\n\n const startNode = this.findText(latexRange.startContainer);\n const endNode = this.findText(latexRange.endContainer);\n\n let startPosition = writer.createPositionAt(startNode.parent, startNode.startOffset + latexRange.startOffset);\n let endPosition = writer.createPositionAt(endNode.parent, endNode.startOffset + latexRange.endOffset);\n\n let range = writer.createRange(startPosition, endPosition);\n\n // When Latex is next to image/formula.\n if (latexRange.startContainer.nodeType === 3 && latexRange.startContainer.previousSibling?.nodeType === 1) {\n // Get the position of the latex to be replaced.\n const latexEdited = `$$${Latex.getLatexFromMathML(\n MathML.safeXmlDecode(this.core.editionProperties.temporalImage.dataset.mathml),\n )}$$`;\n let data = latexRange.startContainer.data;\n\n // Remove invisible characters.\n data = data.replaceAll(String.fromCharCode(8288), \"\");\n\n // Get to the start of the latex we are editing.\n const offset = data.indexOf(latexEdited);\n const dataOffset = data.substring(offset);\n const second$ = dataOffset.substring(2).indexOf(\"$$\") + 4;\n const substring = dataOffset.substr(0, second$);\n data = data.replace(substring, \"\");\n\n if (!data) {\n startPosition = writer.createPositionBefore(startNode);\n range = startNode;\n } else {\n startPosition = startPosition = writer.createPositionAt(startNode.parent, startNode.startOffset + offset);\n endPosition = writer.createPositionAt(endNode.parent, endNode.startOffset + second$ + offset);\n range = writer.createRange(startPosition, endPosition);\n }\n }\n\n writer.remove(range);\n writer.insertText(`$$${returnObject.latex}$$`, startNode.getAttributes(), startPosition);\n });\n } else {\n mathmlOrigin = this.core.editionProperties.temporalImage?.dataset.mathml;\n try {\n returnObject.node = this.editorObject.editing.view.domConverter.viewToDom(\n this.editorObject.editing.mapper.toViewElement(this.insertMathml(mathml)),\n windowTarget.document,\n );\n } catch (e) {\n const x = e.toString();\n if (x.includes(\"CKEditorError: Cannot read property 'parent' of undefined\")) {\n this.core.modalDialog.cancelAction();\n }\n }\n }\n\n // Build the telemeter payload separated to delete null/undefined entries.\n const payload = {\n mathml_origin: mathmlOrigin ? MathML.safeXmlDecode(mathmlOrigin) : mathmlOrigin,\n mathml: mathml ? MathML.safeXmlDecode(mathml) : mathml,\n elapsed_time: Date.now() - this.core.editionProperties.editionStartTime,\n editor_origin: null, // TODO read formula to find out whether it comes from Oxygen Desktop\n toolbar: this.core.modalDialog.contentManager.toolbar,\n size: mathml?.length,\n };\n\n // Remove desired null keys.\n Object.keys(payload).forEach((key) => {\n if (key === \"mathml_origin\" || key === \"editor_origin\") !payload[key] ? delete payload[key] : {};\n });\n\n // Call Telemetry service to track the event.\n try {\n Telemeter.telemeter.track(\"INSERTED_FORMULA\", {\n ...payload,\n });\n } catch (error) {\n console.error(\"Error tracking INSERTED_FORMULA\", error);\n }\n\n /* Due to PLUGINS-1329, we add the onChange event to the CK4 insertFormula.\n We probably should add it here as well, but we should look further into how */\n // this.editorObject.fire('change');\n\n // Remove temporal image of inserted formula\n this.core.editionProperties.temporalImage = null;\n\n return returnObject;\n }\n\n /**\n * Function called when the content submits an action.\n */\n notifyWindowClosed() {\n this.editorObject.editing.view.focus();\n }\n}\n","/* eslint-disable max-classes-per-file */\nimport { Command } from \"ckeditor5/src/core.js\";\nimport CKEditor5Integration from \"./integration.js\";\n\n/**\n * Command for opening the MathType editor\n */\nexport class MathTypeCommand extends Command {\n execute(options = {}) {\n // Check we get a valid integration\n // eslint-disable-next-line no-prototype-builtins\n if (!options.hasOwnProperty(\"integration\") || !(options.integration instanceof CKEditor5Integration)) {\n throw 'Must pass a valid CKEditor5Integration instance as attribute \"integration\" of options';\n }\n\n // Save the integration instance as a property of the command.\n this.integration = options.integration;\n\n // Set custom editor or disable it\n this.setEditor();\n\n // Open the editor\n this.openEditor();\n }\n\n /**\n * Sets the appropriate custom editor, if any, or disables them.\n */\n setEditor() {\n // It's possible that a custom editor was last used.\n // We need to disable it to avoid wrong behaviors.\n this.integration.core.getCustomEditors().disable();\n }\n\n /**\n * Checks whether we are editing an existing formula or a new one and opens the editor.\n */\n openEditor() {\n this.integration.core.editionProperties.dbclick = false;\n const image = this._getSelectedImage();\n if (\n typeof image !== \"undefined\" &&\n image !== null &&\n image.classList.contains(WirisPlugin.Configuration.get(\"imageClassName\"))\n ) {\n this.integration.core.editionProperties.temporalImage = image;\n this.integration.openExistingFormulaEditor();\n } else {\n this.integration.openNewFormulaEditor();\n }\n }\n\n /**\n * Gets the currently selected formula image\n * @returns {Element} selected image, if any, undefined otherwise\n */\n _getSelectedImage() {\n const { selection } = this.editor.editing.view.document;\n\n // If we can not extract the formula, fall back to default behavior.\n if (selection.isCollapsed || selection.rangeCount !== 1) {\n return;\n }\n\n // Look for the <span> wrapping the formula and then for the <img/> inside\n\n const range = selection.getFirstRange();\n\n let image;\n\n for (const span of range) {\n if (span.item.name !== \"span\") {\n return;\n }\n image = span.item.getChild(0);\n break;\n }\n\n if (!image) {\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return this.editor.editing.view.domConverter.mapViewToDom(image);\n }\n}\n\n/**\n * Command for opening the ChemType editor\n */\nexport class ChemTypeCommand extends MathTypeCommand {\n setEditor() {\n this.integration.core.getCustomEditors().enable(\"chemistry\");\n }\n}\n","// CKEditor imports\nimport { Plugin } from \"ckeditor5/src/core.js\";\nimport { ButtonView } from \"ckeditor5/src/ui.js\";\nimport { ClickObserver, HtmlDataProcessor, XmlDataProcessor, ViewUpcastWriter } from \"ckeditor5/src/engine.js\";\nimport { Widget, toWidget, viewToModelPositionOutsideModelElement } from \"ckeditor5/src/widget.js\";\n\n// MathType API imports\nimport IntegrationModel from \"@wiris/mathtype-html-integration-devkit/src/integrationmodel.js\";\nimport Core from \"@wiris/mathtype-html-integration-devkit/src/core.src.js\";\nimport Parser from \"@wiris/mathtype-html-integration-devkit/src/parser.js\";\nimport Util from \"@wiris/mathtype-html-integration-devkit/src/util.js\";\nimport Image from \"@wiris/mathtype-html-integration-devkit/src/image.js\";\nimport Configuration from \"@wiris/mathtype-html-integration-devkit/src/configuration.js\";\nimport Listeners from \"@wiris/mathtype-html-integration-devkit/src/listeners.js\";\nimport MathML from \"@wiris/mathtype-html-integration-devkit/src/mathml.js\";\nimport Latex from \"@wiris/mathtype-html-integration-devkit/src/latex.js\";\nimport StringManager from \"@wiris/mathtype-html-integration-devkit/src/stringmanager.js\";\nimport \"@wiris/mathtype-html-integration-devkit/src/md5.js\";\n\n// Local imports\nimport { MathTypeCommand, ChemTypeCommand } from \"./commands.js\";\nimport CKEditor5Integration from \"./integration.js\";\n\nimport mathIcon from \"../theme/icons/ckeditor5-formula.svg\";\nimport chemIcon from \"../theme/icons/ckeditor5-chem.svg\";\n\nimport packageInfo from \"../package.json\";\n\nexport let currentInstance = null; // eslint-disable-line import/no-mutable-exports\n\nexport default class MathType extends Plugin {\n static get requires() {\n return [Widget];\n }\n\n static get pluginName() {\n return \"MathType\";\n }\n\n init() {\n // Create the MathType API Integration object\n const integration = this._addIntegration();\n currentInstance = integration;\n\n // Add the MathType and ChemType commands to the editor\n this._addCommands();\n\n // Add the buttons for MathType and ChemType\n this._addViews(integration);\n\n // Registers the <mathml> element in the schema\n this._addSchema();\n\n // Add the downcast and upcast converters\n this._addConverters(integration);\n\n // Expose the WirisPlugin variable to the window\n this._exposeWiris();\n }\n\n /**\n * Inherited from Plugin class: Executed when CKEditor5 is destroyed\n */\n destroy() {\n // eslint-disable-line class-methods-use-this\n currentInstance?.destroy();\n }\n\n /**\n * Create the MathType API Integration object\n * @returns {CKEditor5Integration} the integration object\n */\n _addIntegration() {\n const { editor } = this;\n\n /**\n * Integration model constructor attributes.\n * @type {integrationModelProperties}\n */\n const integrationProperties = {};\n integrationProperties.environment = {};\n integrationProperties.environment.editor = \"CKEditor5\";\n integrationProperties.environment.editorVersion = \"5.x\";\n integrationProperties.version = packageInfo.version;\n integrationProperties.editorObject = editor;\n integrationProperties.serviceProviderProperties = {};\n integrationProperties.serviceProviderProperties.URI = \"https://www.wiris.net/demo/plugins/app\";\n integrationProperties.serviceProviderProperties.server = \"java\";\n integrationProperties.target = editor.sourceElement;\n integrationProperties.scriptName = \"bundle.js\";\n integrationProperties.managesLanguage = true;\n // etc\n\n // There are platforms like Drupal that initialize CKEditor but they hide or remove the container element.\n // To avoid a wrong behavior, this integration only starts if the workspace container exists.\n let integration;\n if (integrationProperties.target) {\n // Instance of the integration associated to this editor instance\n integration = new CKEditor5Integration(integrationProperties);\n integration.init();\n integration.listeners.fire(\"onTargetReady\", {});\n\n integration.checkElement();\n\n this.listenTo(\n editor.editing.view.document,\n \"click\",\n (evt, data) => {\n // Is Double-click\n if (data.domEvent.detail === 2) {\n integration.doubleClickHandler(data.domTarget, data.domEvent);\n evt.stop();\n }\n },\n { priority: \"highest\" },\n );\n }\n\n return integration;\n }\n\n /**\n * Add the MathType and ChemType commands to the editor\n */\n _addCommands() {\n const { editor } = this;\n\n // Add command to open the formula editor\n editor.commands.add(\"MathType\", new MathTypeCommand(editor));\n\n // Add command to open the chemistry formula editor\n editor.commands.add(\"ChemType\", new ChemTypeCommand(editor));\n }\n\n /**\n * Add the buttons for MathType and ChemType\n * @param {CKEditor5Integration} integration the integration object\n */\n _addViews(integration) {\n const { editor } = this;\n\n // Check if MathType editor is enabled\n if (Configuration.get(\"editorEnabled\")) {\n // Add button for the formula editor\n editor.ui.componentFactory.add(\"MathType\", (locale) => {\n const view = new ButtonView(locale);\n\n // View is enabled iff command is enabled\n view.bind(\"isEnabled\").to(editor.commands.get(\"MathType\"), \"isEnabled\");\n view.set({\n label: StringManager.get(\"insert_math\", integration.getLanguage()),\n icon: mathIcon,\n tooltip: true,\n });\n\n // Callback executed once the image is clicked.\n view.on(\"execute\", () => {\n editor.execute(\"MathType\", {\n integration, // Pass integration as parameter\n });\n });\n\n return view;\n });\n }\n\n // Check if ChemType editor is enabled\n if (Configuration.get(\"chemEnabled\")) {\n // Add button for the chemistry formula editor\n editor.ui.componentFactory.add(\"ChemType\", (locale) => {\n const view = new ButtonView(locale);\n\n // View is enabled iff command is enabled\n view.bind(\"isEnabled\").to(editor.commands.get(\"ChemType\"), \"isEnabled\");\n\n view.set({\n label: StringManager.get(\"insert_chem\", integration.getLanguage()),\n icon: chemIcon,\n tooltip: true,\n });\n\n // Callback executed once the image is clicked.\n view.on(\"execute\", () => {\n editor.execute(\"ChemType\", {\n integration, // Pass integration as parameter\n });\n });\n\n return view;\n });\n }\n\n // Observer for the Double-click event\n editor.editing.view.addObserver(ClickObserver);\n }\n\n /**\n * Registers the <mathml> element in the schema\n */\n _addSchema() {\n const { schema } = this.editor.model;\n\n schema.register(\"mathml\", {\n inheritAllFrom: \"$inlineObject\",\n allowAttributes: [\"formula\", \"htmlContent\"],\n });\n }\n\n /**\n * Add the downcast and upcast converters\n */\n _addConverters(integration) {\n const { editor } = this;\n\n // Editing view -> Model\n editor.conversion.for(\"upcast\").elementToElement({\n view: {\n name: \"span\",\n classes: \"ck-math-widget\",\n },\n model: (viewElement, { writer: modelWriter }) => {\n const formula = MathML.safeXmlDecode(viewElement.getChild(0).getAttribute(\"data-mathml\"));\n return modelWriter.createElement(\"mathml\", {\n formula,\n });\n },\n });\n\n // Data view -> Model\n editor.data.upcastDispatcher.on(\"element:math\", (evt, data, conversionApi) => {\n const { consumable, writer } = conversionApi;\n const { viewItem } = data;\n\n // When element was already consumed then skip it.\n if (!consumable.test(viewItem, { name: true })) {\n return;\n }\n\n // If we encounter any <math> with a LaTeX annotation inside,\n // convert it into a \"$$...$$\" string.\n const isLatex = mathIsLatex(viewItem); // eslint-disable-line no-use-before-define\n\n // Get the formula of the <math> (which is all its children).\n const processor = new XmlDataProcessor(editor.editing.view.document);\n\n // Only god knows why the following line makes viewItem lose all of its children,\n // so we obtain isLatex before doing this because we need viewItem's children for that.\n const upcastWriter = new ViewUpcastWriter(editor.editing.view.document);\n const viewDocumentFragment = upcastWriter.createDocumentFragment(viewItem.getChildren());\n\n // and obtain the attributes of <math> too!\n const mathAttributes = [...viewItem.getAttributes()].map(([key, value]) => ` ${key}=\"${value}\"`).join(\"\");\n\n // We process the document fragment\n let formula = processor.toData(viewDocumentFragment) || \"\";\n\n // And obtain the complete formula\n formula = Util.htmlSanitize(`<math${mathAttributes}>${formula}</math>`);\n\n // Replaces the < & > characters to its HTMLEntity to avoid render issues.\n formula = formula.replaceAll('\"<\"', '\"<\"').replaceAll('\">\"', '\">\"').replaceAll(\"><<\", \"><<\");\n\n /* Model node that contains what's going to actually be inserted. This can be either:\n - A <mathml> element with a formula attribute set to the given formula, or\n - If the original <math> had a LaTeX annotation, then the annotation surrounded by \"$$...$$\" */\n const modelNode = isLatex\n ? writer.createText(Parser.initParse(formula, integration.getLanguage()))\n : writer.createElement(\"mathml\", { formula });\n\n // Find allowed parent for element that we are going to insert.\n // If current parent does not allow to insert element but one of the ancestors does\n // then split nodes to allowed parent.\n const splitResult = conversionApi.splitToAllowedParent(modelNode, data.modelCursor);\n\n // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n if (!splitResult) {\n return;\n }\n\n // Insert element on allowed position.\n conversionApi.writer.insert(modelNode, splitResult.position);\n\n // Consume appropriate value from consumable values list.\n consumable.consume(viewItem, { name: true });\n\n const parts = conversionApi.getSplitParts(modelNode);\n\n // Set conversion result range.\n data.modelRange = writer.createRange(\n conversionApi.writer.createPositionBefore(modelNode),\n conversionApi.writer.createPositionAfter(parts[parts.length - 1]),\n );\n\n // Now we need to check where the `modelCursor` should be.\n if (splitResult.cursorParent) {\n // If we split parent to insert our element then we want to continue conversion in the new part of the split parent.\n //\n // before: <allowed><notAllowed>foo[]</notAllowed></allowed>\n // after: <allowed><notAllowed>foo</notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>\n\n data.modelCursor = conversionApi.writer.createPositionAt(splitResult.cursorParent, 0);\n } else {\n // Otherwise just continue after inserted element.\n data.modelCursor = data.modelRange.end;\n }\n });\n\n // Data view -> Model\n editor.data.upcastDispatcher.on(\n \"element:img\",\n (evt, data, conversionApi) => {\n const { consumable, writer } = conversionApi;\n const { viewItem } = data;\n\n // Only upcast when is wiris formula\n if (viewItem.getClassNames().next().value !== \"Wirisformula\") {\n return;\n }\n\n // The following code ensures that the element's name, attributes, and classes are consumed.\n // This means that they are marked as handled so that other parts of the system or plugins don't process them again.\n\n // Check if we can consume the element name.\n if (!consumable.test(viewItem, { name: true })) {\n return;\n }\n\n // Consume the name, attributes, and classes so nothing else processes it.\n consumable.consume(viewItem, { name: true });\n for (const attrName of viewItem.getAttributes()) {\n consumable.consume(viewItem, { attributes: [attrName] });\n }\n\n for (const className of viewItem.getClassNames()) {\n consumable.consume(viewItem, { classes: [className] });\n }\n\n const mathAttributes = [...viewItem.getAttributes()].map(([key, value]) => ` ${key}=\"${value}\"`).join(\"\");\n const htmlContent = Util.htmlSanitize(`<img${mathAttributes}>`);\n\n const modelNode = writer.createElement(\"mathml\", { htmlContent });\n\n // Find allowed parent for element that we are going to insert.\n // If current parent does not allow to insert element but one of the ancestors does\n // then split nodes to allowed parent.\n const splitResult = conversionApi.splitToAllowedParent(modelNode, data.modelCursor);\n\n // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n if (!splitResult) {\n return;\n }\n\n // Insert element on allowed position.\n conversionApi.writer.insert(modelNode, splitResult.position);\n\n // Consume appropriate value from consumable values list.\n consumable.consume(viewItem, { name: true });\n\n const parts = conversionApi.getSplitParts(modelNode);\n\n // Set conversion result range.\n data.modelRange = writer.createRange(\n conversionApi.writer.createPositionBefore(modelNode),\n conversionApi.writer.createPositionAfter(parts[parts.length - 1]),\n );\n\n // Now we need to check where the `modelCursor` should be.\n if (splitResult.cursorParent) {\n // If we split parent to insert our element then we want to continue conversion in the new part of the split parent.\n //\n // before: <allowed><notAllowed>foo[]</notAllowed></allowed>\n // after: <allowed><notAllowed>foo</notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>\n\n data.modelCursor = conversionApi.writer.createPositionAt(splitResult.cursorParent, 0);\n } else {\n // Otherwise just continue after inserted element.\n data.modelCursor = data.modelRange.end;\n }\n },\n // Ensures MathType processes the Wiris formulas before other plugins, preventing conflicts.\n { priority: \"high\" },\n );\n\n /**\n * Whether the given view <math> element has a LaTeX annotation element.\n * @param {*} math\n * @returns {bool}\n */\n function mathIsLatex(math) {\n const semantics = math.getChild(0);\n if (!semantics || semantics.name !== \"semantics\") return false;\n for (const child of semantics.getChildren()) {\n if (child.name === \"annotation\" && child.getAttribute(\"encoding\") === \"LaTeX\") {\n return true;\n }\n }\n return false;\n }\n\n function createViewWidget(modelItem, { writer: viewWriter }) {\n const widgetElement = viewWriter.createContainerElement(\"span\", {\n class: \"ck-math-widget\",\n });\n\n const mathUIElement = createViewImage(modelItem, { writer: viewWriter }); // eslint-disable-line no-use-before-define\n\n if (mathUIElement) {\n viewWriter.insert(viewWriter.createPositionAt(widgetElement, 0), mathUIElement);\n }\n\n return toWidget(widgetElement, viewWriter);\n }\n\n function createViewImage(modelItem, { writer: viewWriter }) {\n const htmlDataProcessor = new HtmlDataProcessor(viewWriter.document);\n\n const formula = modelItem.getAttribute(\"formula\");\n const htmlContent = modelItem.getAttribute(\"htmlContent\");\n\n if (!formula && !htmlContent) {\n return null;\n }\n\n let imgElement = null;\n\n if (htmlContent) {\n imgElement = htmlDataProcessor.toView(htmlContent).getChild(0);\n } else if (formula) {\n const mathString = formula.replaceAll('ref=\"<\"', 'ref=\"<\"');\n\n const imgHtml = Parser.initParse(mathString, integration.getLanguage());\n imgElement = htmlDataProcessor.toView(imgHtml).getChild(0);\n\n // Add HTML element (<img>) to model\n viewWriter.setAttribute(\"htmlContent\", imgHtml, modelItem);\n }\n\n /* Although we use the HtmlDataProcessor to obtain the attributes,\n * we must create a new EmptyElement which is independent of the\n * DataProcessor being used by this editor instance\n */\n if (imgElement) {\n return viewWriter.createEmptyElement(\"img\", imgElement.getAttributes(), {\n renderUnsafeAttributes: [\"src\"],\n });\n }\n\n return null;\n }\n\n // Model -> Editing view\n editor.conversion.for(\"editingDowncast\").elementToElement({\n model: \"mathml\",\n view: createViewWidget,\n });\n\n // Model -> Data view\n editor.conversion.for(\"dataDowncast\").elementToElement({\n model: \"mathml\",\n view: createDataString, // eslint-disable-line no-use-before-define\n });\n\n /**\n * Makes a copy of the given view node.\n * @param {module:engine/view/node~Node} sourceNode Node to copy.\n * @returns {module:engine/view/node~Node} Copy of the node.\n */\n function clone(viewWriter, sourceNode) {\n if (sourceNode.is(\"text\")) {\n return viewWriter.createText(sourceNode.data);\n }\n if (sourceNode.is(\"element\")) {\n if (sourceNode.is(\"emptyElement\")) {\n return viewWriter.createEmptyElement(sourceNode.name, sourceNode.getAttributes());\n }\n const element = viewWriter.createContainerElement(sourceNode.name, sourceNode.getAttributes());\n for (const child of sourceNode.getChildren()) {\n viewWriter.insert(viewWriter.createPositionAt(element, \"end\"), clone(viewWriter, child));\n }\n return element;\n }\n\n throw new Exception(\"Given node has unsupported type.\"); // eslint-disable-line no-undef\n }\n\n function createDataString(modelItem, { writer: viewWriter }) {\n const htmlDataProcessor = new HtmlDataProcessor(viewWriter.document);\n\n // Load img element\n const mathString =\n modelItem.getAttribute(\"htmlContent\") || Parser.endParseSaveMode(modelItem.getAttribute(\"formula\"));\n\n const sourceMathElement = htmlDataProcessor.toView(mathString).getChild(0);\n\n return clone(viewWriter, sourceMathElement);\n }\n\n // This stops the view selection getting into the <span>s and messing up caret movement\n editor.editing.mapper.on(\n \"viewToModelPosition\",\n viewToModelPositionOutsideModelElement(editor.model, (viewElement) => viewElement.hasClass(\"ck-math-widget\")),\n );\n\n // Keep a reference to the original get and set function.\n const { get, set } = editor.data;\n\n /**\n * Hack to transform $$latex$$ into <math> in editor.getData()'s output.\n */\n editor.data.on(\n \"get\",\n (e) => {\n const output = e.return;\n const parsedResult = Parser.endParse(output);\n\n // Cleans all the semantics tag for safexml\n // including the handwritten data points\n e.return = MathML.removeSafeXMLSemantics(parsedResult);\n },\n { priority: \"low\" },\n );\n\n /**\n * Hack to transform <math> with LaTeX into $$LaTeX$$ and formula images in editor.setData().\n */\n editor.data.on(\n \"set\",\n (e, args) => {\n // Retrieve the data to be set on the CKEditor.\n let modifiedData = args[0];\n // Regex to find all mathml formulas.\n const regexp = /(<img\\b[^>]*>)|(<math(.*?)<\\/math>)/gm;\n const formulas = [];\n let formula;\n\n // Both data.set from the source plugin and console command are taken into account as the data received is MathML or an image containing the MathML.\n while ((formula = regexp.exec(modifiedData)) !== null) {\n formulas.push(formula[0]);\n }\n\n // Loop to find LaTeX and formula images and replace the MathML for the both.\n formulas.forEach((formula) => {\n if (formula.includes('encoding=\"LaTeX\"')) {\n // LaTeX found.\n const latex = `$$$${Latex.getLatexFromMathML(formula)}$$$`; // We add $$$ instead of $$ because the replace function ignores one $.\n modifiedData = modifiedData.replace(formula, latex);\n } else if (formula.includes(\"<img\")) {\n // If we found a formula image, we should find MathML data, and then substitute the entire image.\n const regexp = /«math\\b[^»]*»(.*?)«\\/math»/g;\n const safexml = formula.match(regexp);\n if (safexml !== null) {\n const decodeXML = MathML.safeXmlDecode(safexml[0]);\n modifiedData = modifiedData.replace(formula, decodeXML);\n }\n }\n });\n\n args[0] = modifiedData;\n },\n { priority: \"high\" },\n );\n }\n\n /**\n * Expose the WirisPlugin variable to the window\n */\n // eslint-disable-next-line class-methods-use-this\n _exposeWiris() {\n window.WirisPlugin = {\n Core,\n Parser,\n Image,\n MathML,\n Util,\n Configuration,\n Listeners,\n IntegrationModel,\n currentInstance,\n Latex,\n };\n }\n}\n"],"names":["CKEditor5Integration","IntegrationModel","ckeditorIntegrationModelProperties","editor","editorObject","config","get","integrationParameters","integrationFolderName","getLanguage","editorParameters","language","e","languageObject","Object","prototype","hasOwnProperty","call","ui","locale","uiLanguage","addEditorListeners","wirislistenersdisabled","checkElement","newElement","sourceElement","wirisActive","setTarget","addEvents","doubleClickHandler","element","event","core","editionProperties","dbclick","isReadOnly","nodeName","toLowerCase","Util","containsClass","Configuration","stopPropagation","returnValue","getCustomEditors","disable","customEditorAttr","getAttribute","enable","temporalImage","openExistingFormulaEditor","getCorePath","callbackFunction","openNewFormulaEditor","selection","editing","view","document","WirisPlugin","currentInstance","insertMathml","mathml","model","change","writer","getCore","modelElementNew","createElement","formula","fromEntries","getAttributes","isNewElement","viewSelection","modelPosition","mapper","toModelPosition","getLastPosition","insertObject","isCollapsed","range","getRanges","remove","toModelRange","position","createPositionAfter","setSelection","img","viewElement","domConverter","domToView","parent","modelElementOld","toModelElement","createPositionBefore","findText","pivot","parentElement","createRangeIn","descendants","Array","from","getItems","node","viewElementData","data","nodeType","replaceAll","String","fromCharCode","is","replace","textNode","insertFormula","focusElement","windowTarget","wirisProperties","returnObject","mathmlOrigin","editMode","latex","Latex","getLatexFromMathML","createTextNode","latexRange","startNode","startContainer","endNode","endContainer","startPosition","createPositionAt","startOffset","endPosition","endOffset","createRange","previousSibling","latexEdited","MathML","safeXmlDecode","dataset","offset","indexOf","dataOffset","substring","second$","substr","insertText","viewToDom","toViewElement","x","toString","includes","modalDialog","cancelAction","payload","mathml_origin","elapsed_time","Date","now","editionStartTime","editor_origin","toolbar","contentManager","size","length","keys","forEach","key","Telemeter","telemeter","track","error","console","notifyWindowClosed","focus","MathTypeCommand","Command","execute","options","integration","setEditor","openEditor","image","_getSelectedImage","classList","contains","rangeCount","getFirstRange","span","item","name","getChild","mapViewToDom","ChemTypeCommand","MathType","Plugin","requires","Widget","pluginName","init","_addIntegration","_addCommands","_addViews","_addSchema","_addConverters","_exposeWiris","destroy","integrationProperties","environment","editorVersion","version","packageInfo","serviceProviderProperties","URI","server","target","scriptName","managesLanguage","listeners","fire","listenTo","evt","domEvent","detail","domTarget","stop","priority","commands","add","componentFactory","ButtonView","bind","to","set","label","StringManager","icon","mathIcon","tooltip","on","chemIcon","addObserver","ClickObserver","schema","register","inheritAllFrom","allowAttributes","conversion","for","elementToElement","classes","modelWriter","upcastDispatcher","conversionApi","consumable","viewItem","test","isLatex","mathIsLatex","processor","XmlDataProcessor","upcastWriter","ViewUpcastWriter","viewDocumentFragment","createDocumentFragment","getChildren","mathAttributes","map","value","join","toData","htmlSanitize","modelNode","createText","Parser","initParse","splitResult","splitToAllowedParent","modelCursor","insert","consume","parts","getSplitParts","modelRange","cursorParent","end","getClassNames","next","attrName","attributes","className","htmlContent","math","semantics","child","createViewWidget","modelItem","viewWriter","widgetElement","createContainerElement","class","mathUIElement","createViewImage","toWidget","htmlDataProcessor","HtmlDataProcessor","imgElement","toView","mathString","imgHtml","setAttribute","createEmptyElement","renderUnsafeAttributes","createDataString","clone","sourceNode","Exception","endParseSaveMode","sourceMathElement","viewToModelPositionOutsideModelElement","hasClass","output","return","parsedResult","endParse","removeSafeXMLSemantics","args","modifiedData","regexp","formulas","exec","push","safexml","match","decodeXML","window","Core","Image","Listeners"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wiris/mathtype-ckeditor5",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.14.0",
|
|
4
4
|
"description": "MathType Web for CKEditor5 editor",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chem",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"prepare": "npm run build:dist"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@wiris/mathtype-html-integration-devkit": "1.17.
|
|
51
|
+
"@wiris/mathtype-html-integration-devkit": "1.17.12"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@ckeditor/ckeditor5-dev-build-tools": "^42.1.0"
|
package/src/integration.js
CHANGED
|
@@ -43,11 +43,10 @@ export default class CKEditor5Integration extends IntegrationModel {
|
|
|
43
43
|
const languageObject = this.editorObject.config.get("language");
|
|
44
44
|
if (languageObject != null) {
|
|
45
45
|
if (typeof languageObject === "object") {
|
|
46
|
-
|
|
47
|
-
if (languageObject.hasOwnProperty("ui")) {
|
|
46
|
+
if (Object.prototype.hasOwnProperty.call(languageObject, "ui")) {
|
|
48
47
|
return languageObject.ui;
|
|
49
48
|
}
|
|
50
|
-
return
|
|
49
|
+
return this.editorObject.locale.uiLanguage;
|
|
51
50
|
}
|
|
52
51
|
return languageObject;
|
|
53
52
|
}
|