@wiris/mathtype-ckeditor5 8.9.2 → 8.11.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.
@@ -0,0 +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 let latexEdited =\n \"$$\" +\n Latex.getLatexFromMathML(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 let offset = data.indexOf(latexEdited);\n let dataOffset = data.substring(offset);\n let second$ = dataOffset.substring(2).indexOf(\"$$\") + 4;\n let 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 let 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, UpcastWriter } 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\";\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 behaviour, 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\"],\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 UpcastWriter(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('\"<\"', '\"&lt;\"').replaceAll('\">\"', '\"&gt;\"').replaceAll(\"><<\", \">&lt;<\");\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 /**\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 mathString = modelItem.getAttribute(\"formula\").replaceAll('ref=\"<\"', 'ref=\"&lt;\"');\n const imgHtml = Parser.initParse(mathString, integration.getLanguage());\n const imgElement = htmlDataProcessor.toView(imgHtml).getChild(0);\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 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 let mathString = 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 let output = e.return;\n // This line cleans all the semantics stuff, including the handwritten data points and returns the MathML IF there is any.\n // For text or latex formulas, it returns the original output.\n e.return = MathML.removeSemantics(output, \"application/json\");\n },\n { priority: \"low\" },\n );\n\n /**\n * Hack to transform <math> with LaTeX into $$LaTeX$$ 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 = /<math(.*?)<\\/math>/gm;\n\n // Get all MathML formulas and store them in an array.\n // Using the conditional operator on data.main because the data parameter has different types depending on:\n // editor.data.set can be used directly or by the source editing plugin.\n // With the source editor plugin, data is an object with the key `main` which contains the source code string.\n // When using the editor.data.set method, the data is a string with the content to be set to the editor.\n let formulas = Object.values(modifiedData)[0]\n ? [...Object.values(modifiedData)[0].matchAll(regexp)]\n : [...modifiedData.matchAll(regexp)];\n\n // Loop to find LaTeX formulas and replace the MathML for the LaTeX notation.\n formulas.forEach((formula) => {\n let mathml = formula[0];\n if (mathml.includes('encoding=\"LaTeX\"')) {\n // LaTeX found.\n let latex = \"$$$\" + Latex.getLatexFromMathML(mathml) + \"$$$\"; // We add $$$ instead of $$ because the replace function ignores one $.\n modifiedData = modifiedData.replace(mathml, latex);\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","constructor","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","UpcastWriter","viewDocumentFragment","createDocumentFragment","getChildren","mathAttributes","map","value","join","toData","htmlSanitize","modelNode","createText","Parser","initParse","splitResult","splitToAllowedParent","modelCursor","insert","consume","parts","getSplitParts","modelRange","cursorParent","end","math","semantics","child","createViewWidget","modelItem","viewWriter","widgetElement","createContainerElement","class","mathUIElement","createViewImage","toWidget","htmlDataProcessor","HtmlDataProcessor","mathString","imgHtml","imgElement","toView","createEmptyElement","renderUnsafeAttributes","createDataString","clone","sourceNode","Exception","endParseSaveMode","sourceMathElement","viewToModelPositionOutsideModelElement","hasClass","output","return","removeSemantics","args","modifiedData","regexp","formulas","values","matchAll","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.9.2",
3
+ "version": "8.11.0",
4
4
  "description": "MathType Web for CKEditor5 editor",
5
5
  "keywords": [
6
6
  "chem",
@@ -25,20 +25,35 @@
25
25
  "license": "MIT",
26
26
  "author": "WIRIS Team (http://www.wiris.com)",
27
27
  "files": [
28
- "/src",
28
+ "dist",
29
+ "src",
29
30
  "icons",
30
31
  "theme",
31
32
  "lang"
32
33
  ],
33
34
  "main": "src/plugin.js",
35
+ "type": "module",
36
+ "exports": {
37
+ ".": "./src/plugin.js",
38
+ "./dist/*": "./dist/*",
39
+ "./browser/*": null,
40
+ "./src/*": "./src/*",
41
+ "./theme/*": "./theme/*",
42
+ "./package.json": "./package.json"
43
+ },
34
44
  "scripts": {
35
- "build": "exit 0"
45
+ "build": "node ./scripts/build-dist.mjs",
46
+ "build:dist": "node ./scripts/build-dist.mjs",
47
+ "prepare": "npm run build:dist"
36
48
  },
37
49
  "dependencies": {
38
- "@ckeditor/ckeditor5-core": ">=27.0.0",
39
- "@ckeditor/ckeditor5-engine": ">=27.0.0",
40
- "@ckeditor/ckeditor5-ui": ">=27.0.0",
41
- "@ckeditor/ckeditor5-widget": ">=27.0.0",
42
- "@wiris/mathtype-html-integration-devkit": "1.17.2"
50
+ "@wiris/mathtype-html-integration-devkit": "1.17.4"
51
+ },
52
+ "devDependencies": {
53
+ "@ckeditor/ckeditor5-dev-build-tools": "^42.1.0",
54
+ "ckeditor5": ">=43.0.0"
55
+ },
56
+ "peerDependencies": {
57
+ "ckeditor5": ">=43.0.0"
43
58
  }
44
59
  }
package/src/commands.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable max-classes-per-file */
2
- import Command from "@ckeditor/ckeditor5-core/src/command";
3
- import CKEditor5Integration from "./integration";
2
+ import { Command } from "ckeditor5/src/core.js";
3
+ import CKEditor5Integration from "./integration.js";
4
4
 
5
5
  /**
6
6
  * Command for opening the MathType editor
package/src/index.js ADDED
@@ -0,0 +1,3 @@
1
+ import MathType from './plugin.js';
2
+
3
+ export default MathType;
@@ -1,9 +1,9 @@
1
- import IntegrationModel from "@wiris/mathtype-html-integration-devkit/src/integrationmodel";
2
- import Util from "@wiris/mathtype-html-integration-devkit/src/util";
3
- import Configuration from "@wiris/mathtype-html-integration-devkit/src/configuration";
4
- import Latex from "@wiris/mathtype-html-integration-devkit/src/latex";
5
- import MathML from "@wiris/mathtype-html-integration-devkit/src/mathml";
6
- import Telemeter from "@wiris/mathtype-html-integration-devkit/src/telemeter";
1
+ import IntegrationModel from "@wiris/mathtype-html-integration-devkit/src/integrationmodel.js";
2
+ import Util from "@wiris/mathtype-html-integration-devkit/src/util.js";
3
+ import Configuration from "@wiris/mathtype-html-integration-devkit/src/configuration.js";
4
+ import Latex from "@wiris/mathtype-html-integration-devkit/src/latex.js";
5
+ import MathML from "@wiris/mathtype-html-integration-devkit/src/mathml.js";
6
+ import Telemeter from "@wiris/mathtype-html-integration-devkit/src/telemeter.js";
7
7
 
8
8
  /**
9
9
  * This class represents the MathType integration for CKEditor5.
@@ -135,6 +135,9 @@ export default class CKEditor5Integration extends IntegrationModel {
135
135
  // Store the editor selection as it will be lost upon opening the modal
136
136
  this.core.editionProperties.selection = this.editorObject.editing.view.document.selection;
137
137
 
138
+ // Focus on the selected editor when multiple editor instances are present
139
+ WirisPlugin.currentInstance = this;
140
+
138
141
  return super.openNewFormulaEditor();
139
142
  }
140
143
 
package/src/plugin.js CHANGED
@@ -1,28 +1,24 @@
1
1
  // CKEditor imports
2
- import Plugin from "@ckeditor/ckeditor5-core/src/plugin";
3
- import ButtonView from "@ckeditor/ckeditor5-ui/src/button/buttonview";
4
- import ClickObserver from "@ckeditor/ckeditor5-engine/src/view/observer/clickobserver";
5
- import HtmlDataProcessor from "@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor";
6
- import XmlDataProcessor from "@ckeditor/ckeditor5-engine/src/dataprocessor/xmldataprocessor";
7
- import UpcastWriter from "@ckeditor/ckeditor5-engine/src/view/upcastwriter";
8
- import { toWidget, viewToModelPositionOutsideModelElement } from "@ckeditor/ckeditor5-widget/src/utils";
9
- import Widget from "@ckeditor/ckeditor5-widget/src/widget";
2
+ import { Plugin } from 'ckeditor5/src/core.js';
3
+ import { ButtonView } from 'ckeditor5/src/ui.js';
4
+ import { ClickObserver, HtmlDataProcessor, XmlDataProcessor, UpcastWriter } from 'ckeditor5/src/engine.js';
5
+ import { Widget, toWidget, viewToModelPositionOutsideModelElement } from 'ckeditor5/src/widget.js';
10
6
 
11
7
  // MathType API imports
12
- import IntegrationModel from "@wiris/mathtype-html-integration-devkit/src/integrationmodel";
13
- import Core from "@wiris/mathtype-html-integration-devkit/src/core.src";
14
- import Parser from "@wiris/mathtype-html-integration-devkit/src/parser";
15
- import Util from "@wiris/mathtype-html-integration-devkit/src/util";
16
- import Image from "@wiris/mathtype-html-integration-devkit/src/image";
17
- import Configuration from "@wiris/mathtype-html-integration-devkit/src/configuration";
18
- import Listeners from "@wiris/mathtype-html-integration-devkit/src/listeners";
19
- import MathML from "@wiris/mathtype-html-integration-devkit/src/mathml";
20
- import Latex from "@wiris/mathtype-html-integration-devkit/src/latex";
21
- import StringManager from "@wiris/mathtype-html-integration-devkit/src/stringmanager";
8
+ import IntegrationModel from "@wiris/mathtype-html-integration-devkit/src/integrationmodel.js";
9
+ import Core from "@wiris/mathtype-html-integration-devkit/src/core.src.js";
10
+ import Parser from "@wiris/mathtype-html-integration-devkit/src/parser.js";
11
+ import Util from "@wiris/mathtype-html-integration-devkit/src/util.js";
12
+ import Image from "@wiris/mathtype-html-integration-devkit/src/image.js";
13
+ import Configuration from "@wiris/mathtype-html-integration-devkit/src/configuration.js";
14
+ import Listeners from "@wiris/mathtype-html-integration-devkit/src/listeners.js";
15
+ import MathML from "@wiris/mathtype-html-integration-devkit/src/mathml.js";
16
+ import Latex from "@wiris/mathtype-html-integration-devkit/src/latex.js";
17
+ import StringManager from "@wiris/mathtype-html-integration-devkit/src/stringmanager.js";
22
18
 
23
19
  // Local imports
24
- import { MathTypeCommand, ChemTypeCommand } from "./commands";
25
- import CKEditor5Integration from "./integration";
20
+ import { MathTypeCommand, ChemTypeCommand } from "./commands.js";
21
+ import CKEditor5Integration from "./integration.js";
26
22
 
27
23
  import mathIcon from "../theme/icons/ckeditor5-formula.svg";
28
24
  import chemIcon from "../theme/icons/ckeditor5-chem.svg";
@@ -418,15 +414,9 @@ export default class MathType extends Plugin {
418
414
  "get",
419
415
  (e) => {
420
416
  let output = e.return;
421
-
422
- // CKEditor 5 replaces all the time the &lt; and &gt; for < and >, which our render can't understand.
423
- // We replace the values inserted for CKEditor5 to be able to render the formulas with the mentioned characters.
424
- output = output.replaceAll('"<"', '"&lt;"').replaceAll('">"', '"&gt;"').replaceAll("><<", ">&lt;<");
425
-
426
- // Ckeditor retrieves editor data and removes the image information on the formulas
427
- // We transform all the retrieved data to images and then we Parse the data.
428
- let imageFormula = Parser.initParse(output);
429
- e.return = Parser.endParse(imageFormula);
417
+ // This line cleans all the semantics stuff, including the handwritten data points and returns the MathML IF there is any.
418
+ // For text or latex formulas, it returns the original output.
419
+ e.return = MathML.removeSemantics(output, "application/json");
430
420
  },
431
421
  { priority: "low" },
432
422
  );