UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 1.3 kB
"use strict";var e=require("@lexical/headless"),t=require("@lexical/html"),r=require("lexical"),o=require("./constants.js"),n=require("./theme.js"),s=require("../../../../__internal__/utils/logger/index.js");const i=i=>{const a=e.createHeadlessEditor({namespace:"html-to-json",onError:e=>s.default.error(e.message),theme:n.getTheme(),nodes:o.MARKDOWN_NODES});let l;if(a.update((()=>{const e=(new DOMParser).parseFromString(i,"text/html"),o=t.$generateNodesFromDOM(a,e);r.$getRoot().select();const n=r.$getSelection();if(n)try{n.insertNodes(o)}catch(e){l=e}}),{discrete:!0}),l)throw l;const c=a.getEditorState().toJSON();return JSON.stringify(c)},a=new RegExp(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/);exports.DeserializeHTML=i,exports.SerializeLexical=e=>{let r,o;return e.read((()=>{const n=e.getEditorState();o=n.toJSON(),r=t.$generateHtmlFromNodes(e,null)})),{htmlString:r,json:o}},exports.createEmpty=()=>'{"root":{"children":[{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"root","version":1}}',exports.createFromHTML=e=>i(e),exports.validateUrl=function(e){return"https://"===e||a.test(e)};