UNPKG

@ant-design/x-markdown

Version:

placeholder for @ant-design/x-markdown

1,613 lines (1,549 loc) 474 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react"), require("react-dom"), require("antdCssinjs")); else if(typeof define === 'function' && define.amd) define([, , ], factory); else if(typeof exports === 'object') exports["XMarkdown"] = factory(require("react"), require("react-dom"), require("antdCssinjs")); else root["XMarkdown"] = factory(root["React"], root["ReactDOM"], root["antdCssinjs"]); })(self, function(__WEBPACK_EXTERNAL_MODULE__868__, __WEBPACK_EXTERNAL_MODULE__238__, __WEBPACK_EXTERNAL_MODULE__283__) { return /******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 804: /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0; /** Types of elements found in htmlparser2's DOM */ var ElementType; (function (ElementType) { /** Type for the root element of a document */ ElementType["Root"] = "root"; /** Type for Text */ ElementType["Text"] = "text"; /** Type for <? ... ?> */ ElementType["Directive"] = "directive"; /** Type for <!-- ... --> */ ElementType["Comment"] = "comment"; /** Type for <script> tags */ ElementType["Script"] = "script"; /** Type for <style> tags */ ElementType["Style"] = "style"; /** Type for Any tag */ ElementType["Tag"] = "tag"; /** Type for <![CDATA[ ... ]]> */ ElementType["CDATA"] = "cdata"; /** Type for <!doctype ...> */ ElementType["Doctype"] = "doctype"; })(ElementType = exports.ElementType || (exports.ElementType = {})); /** * Tests whether an element is a tag or not. * * @param elem Element to test */ function isTag(elem) { return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style; } exports.isTag = isTag; // Exports for backwards compatibility /** Type for the root element of a document */ exports.Root = ElementType.Root; /** Type for Text */ exports.Text = ElementType.Text; /** Type for <? ... ?> */ exports.Directive = ElementType.Directive; /** Type for <!-- ... --> */ exports.Comment = ElementType.Comment; /** Type for <script> tags */ exports.Script = ElementType.Script; /** Type for <style> tags */ exports.Style = ElementType.Style; /** Type for Any tag */ exports.Tag = ElementType.Tag; /** Type for <![CDATA[ ... ]]> */ exports.CDATA = ElementType.CDATA; /** Type for <!doctype ...> */ exports.Doctype = ElementType.Doctype; /***/ }), /***/ 798: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function () { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.DomHandler = void 0; var domelementtype_1 = __webpack_require__(804); var node_js_1 = __webpack_require__(733); __exportStar(__webpack_require__(733), exports); // Default options var defaultOpts = { withStartIndices: false, withEndIndices: false, xmlMode: false }; var DomHandler = /** @class */function () { /** * @param callback Called once parsing has completed. * @param options Settings for the handler. * @param elementCB Callback whenever a tag is closed. */ function DomHandler(callback, options, elementCB) { /** The elements of the DOM */ this.dom = []; /** The root element for the DOM */ this.root = new node_js_1.Document(this.dom); /** Indicated whether parsing has been completed. */ this.done = false; /** Stack of open tags. */ this.tagStack = [this.root]; /** A data node that is still being written to. */ this.lastNode = null; /** Reference to the parser instance. Used for location information. */ this.parser = null; // Make it possible to skip arguments, for backwards-compatibility if (typeof options === "function") { elementCB = options; options = defaultOpts; } if (typeof callback === "object") { options = callback; callback = undefined; } this.callback = callback !== null && callback !== void 0 ? callback : null; this.options = options !== null && options !== void 0 ? options : defaultOpts; this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null; } DomHandler.prototype.onparserinit = function (parser) { this.parser = parser; }; // Resets the handler back to starting state DomHandler.prototype.onreset = function () { this.dom = []; this.root = new node_js_1.Document(this.dom); this.done = false; this.tagStack = [this.root]; this.lastNode = null; this.parser = null; }; // Signals the handler that parsing is done DomHandler.prototype.onend = function () { if (this.done) return; this.done = true; this.parser = null; this.handleCallback(null); }; DomHandler.prototype.onerror = function (error) { this.handleCallback(error); }; DomHandler.prototype.onclosetag = function () { this.lastNode = null; var elem = this.tagStack.pop(); if (this.options.withEndIndices) { elem.endIndex = this.parser.endIndex; } if (this.elementCB) this.elementCB(elem); }; DomHandler.prototype.onopentag = function (name, attribs) { var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined; var element = new node_js_1.Element(name, attribs, undefined, type); this.addNode(element); this.tagStack.push(element); }; DomHandler.prototype.ontext = function (data) { var lastNode = this.lastNode; if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) { lastNode.data += data; if (this.options.withEndIndices) { lastNode.endIndex = this.parser.endIndex; } } else { var node = new node_js_1.Text(data); this.addNode(node); this.lastNode = node; } }; DomHandler.prototype.oncomment = function (data) { if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) { this.lastNode.data += data; return; } var node = new node_js_1.Comment(data); this.addNode(node); this.lastNode = node; }; DomHandler.prototype.oncommentend = function () { this.lastNode = null; }; DomHandler.prototype.oncdatastart = function () { var text = new node_js_1.Text(""); var node = new node_js_1.CDATA([text]); this.addNode(node); text.parent = node; this.lastNode = text; }; DomHandler.prototype.oncdataend = function () { this.lastNode = null; }; DomHandler.prototype.onprocessinginstruction = function (name, data) { var node = new node_js_1.ProcessingInstruction(name, data); this.addNode(node); }; DomHandler.prototype.handleCallback = function (error) { if (typeof this.callback === "function") { this.callback(error, this.dom); } else if (error) { throw error; } }; DomHandler.prototype.addNode = function (node) { var parent = this.tagStack[this.tagStack.length - 1]; var previousSibling = parent.children[parent.children.length - 1]; if (this.options.withStartIndices) { node.startIndex = this.parser.startIndex; } if (this.options.withEndIndices) { node.endIndex = this.parser.endIndex; } parent.children.push(node); if (previousSibling) { node.prev = previousSibling; previousSibling.next = node; } node.parent = parent; this.lastNode = null; }; return DomHandler; }(); exports.DomHandler = DomHandler; exports["default"] = DomHandler; /***/ }), /***/ 733: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var __assign = this && this.__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0; var domelementtype_1 = __webpack_require__(804); /** * This object will be used as the prototype for Nodes when creating a * DOM-Level-1-compliant structure. */ var Node = /** @class */function () { function Node() { /** Parent of the node */ this.parent = null; /** Previous sibling */ this.prev = null; /** Next sibling */ this.next = null; /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */ this.startIndex = null; /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */ this.endIndex = null; } Object.defineProperty(Node.prototype, "parentNode", { // Read-write aliases for properties /** * Same as {@link parent}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get: function () { return this.parent; }, set: function (parent) { this.parent = parent; }, enumerable: false, configurable: true }); Object.defineProperty(Node.prototype, "previousSibling", { /** * Same as {@link prev}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get: function () { return this.prev; }, set: function (prev) { this.prev = prev; }, enumerable: false, configurable: true }); Object.defineProperty(Node.prototype, "nextSibling", { /** * Same as {@link next}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get: function () { return this.next; }, set: function (next) { this.next = next; }, enumerable: false, configurable: true }); /** * Clone this node, and optionally its children. * * @param recursive Clone child nodes as well. * @returns A clone of the node. */ Node.prototype.cloneNode = function (recursive) { if (recursive === void 0) { recursive = false; } return cloneNode(this, recursive); }; return Node; }(); exports.Node = Node; /** * A node that contains some data. */ var DataNode = /** @class */function (_super) { __extends(DataNode, _super); /** * @param data The content of the data node */ function DataNode(data) { var _this = _super.call(this) || this; _this.data = data; return _this; } Object.defineProperty(DataNode.prototype, "nodeValue", { /** * Same as {@link data}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get: function () { return this.data; }, set: function (data) { this.data = data; }, enumerable: false, configurable: true }); return DataNode; }(Node); exports.DataNode = DataNode; /** * Text within the document. */ var Text = /** @class */function (_super) { __extends(Text, _super); function Text() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = domelementtype_1.ElementType.Text; return _this; } Object.defineProperty(Text.prototype, "nodeType", { get: function () { return 3; }, enumerable: false, configurable: true }); return Text; }(DataNode); exports.Text = Text; /** * Comments within the document. */ var Comment = /** @class */function (_super) { __extends(Comment, _super); function Comment() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = domelementtype_1.ElementType.Comment; return _this; } Object.defineProperty(Comment.prototype, "nodeType", { get: function () { return 8; }, enumerable: false, configurable: true }); return Comment; }(DataNode); exports.Comment = Comment; /** * Processing instructions, including doc types. */ var ProcessingInstruction = /** @class */function (_super) { __extends(ProcessingInstruction, _super); function ProcessingInstruction(name, data) { var _this = _super.call(this, data) || this; _this.name = name; _this.type = domelementtype_1.ElementType.Directive; return _this; } Object.defineProperty(ProcessingInstruction.prototype, "nodeType", { get: function () { return 1; }, enumerable: false, configurable: true }); return ProcessingInstruction; }(DataNode); exports.ProcessingInstruction = ProcessingInstruction; /** * A `Node` that can have children. */ var NodeWithChildren = /** @class */function (_super) { __extends(NodeWithChildren, _super); /** * @param children Children of the node. Only certain node types can have children. */ function NodeWithChildren(children) { var _this = _super.call(this) || this; _this.children = children; return _this; } Object.defineProperty(NodeWithChildren.prototype, "firstChild", { // Aliases /** First child of the node. */ get: function () { var _a; return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null; }, enumerable: false, configurable: true }); Object.defineProperty(NodeWithChildren.prototype, "lastChild", { /** Last child of the node. */ get: function () { return this.children.length > 0 ? this.children[this.children.length - 1] : null; }, enumerable: false, configurable: true }); Object.defineProperty(NodeWithChildren.prototype, "childNodes", { /** * Same as {@link children}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get: function () { return this.children; }, set: function (children) { this.children = children; }, enumerable: false, configurable: true }); return NodeWithChildren; }(Node); exports.NodeWithChildren = NodeWithChildren; var CDATA = /** @class */function (_super) { __extends(CDATA, _super); function CDATA() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = domelementtype_1.ElementType.CDATA; return _this; } Object.defineProperty(CDATA.prototype, "nodeType", { get: function () { return 4; }, enumerable: false, configurable: true }); return CDATA; }(NodeWithChildren); exports.CDATA = CDATA; /** * The root node of the document. */ var Document = /** @class */function (_super) { __extends(Document, _super); function Document() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = domelementtype_1.ElementType.Root; return _this; } Object.defineProperty(Document.prototype, "nodeType", { get: function () { return 9; }, enumerable: false, configurable: true }); return Document; }(NodeWithChildren); exports.Document = Document; /** * An element within the DOM. */ var Element = /** @class */function (_super) { __extends(Element, _super); /** * @param name Name of the tag, eg. `div`, `span`. * @param attribs Object mapping attribute names to attribute values. * @param children Children of the node. */ function Element(name, attribs, children, type) { if (children === void 0) { children = []; } if (type === void 0) { type = name === "script" ? domelementtype_1.ElementType.Script : name === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag; } var _this = _super.call(this, children) || this; _this.name = name; _this.attribs = attribs; _this.type = type; return _this; } Object.defineProperty(Element.prototype, "nodeType", { get: function () { return 1; }, enumerable: false, configurable: true }); Object.defineProperty(Element.prototype, "tagName", { // DOM Level 1 aliases /** * Same as {@link name}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get: function () { return this.name; }, set: function (name) { this.name = name; }, enumerable: false, configurable: true }); Object.defineProperty(Element.prototype, "attributes", { get: function () { var _this = this; return Object.keys(this.attribs).map(function (name) { var _a, _b; return { name: name, value: _this.attribs[name], namespace: (_a = _this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name], prefix: (_b = _this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name] }; }); }, enumerable: false, configurable: true }); return Element; }(NodeWithChildren); exports.Element = Element; /** * @param node Node to check. * @returns `true` if the node is a `Element`, `false` otherwise. */ function isTag(node) { return (0, domelementtype_1.isTag)(node); } exports.isTag = isTag; /** * @param node Node to check. * @returns `true` if the node has the type `CDATA`, `false` otherwise. */ function isCDATA(node) { return node.type === domelementtype_1.ElementType.CDATA; } exports.isCDATA = isCDATA; /** * @param node Node to check. * @returns `true` if the node has the type `Text`, `false` otherwise. */ function isText(node) { return node.type === domelementtype_1.ElementType.Text; } exports.isText = isText; /** * @param node Node to check. * @returns `true` if the node has the type `Comment`, `false` otherwise. */ function isComment(node) { return node.type === domelementtype_1.ElementType.Comment; } exports.isComment = isComment; /** * @param node Node to check. * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise. */ function isDirective(node) { return node.type === domelementtype_1.ElementType.Directive; } exports.isDirective = isDirective; /** * @param node Node to check. * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise. */ function isDocument(node) { return node.type === domelementtype_1.ElementType.Root; } exports.isDocument = isDocument; /** * @param node Node to check. * @returns `true` if the node has children, `false` otherwise. */ function hasChildren(node) { return Object.prototype.hasOwnProperty.call(node, "children"); } exports.hasChildren = hasChildren; /** * Clone a node, and optionally its children. * * @param recursive Clone child nodes as well. * @returns A clone of the node. */ function cloneNode(node, recursive) { if (recursive === void 0) { recursive = false; } var result; if (isText(node)) { result = new Text(node.data); } else if (isComment(node)) { result = new Comment(node.data); } else if (isTag(node)) { var children = recursive ? cloneChildren(node.children) : []; var clone_1 = new Element(node.name, __assign({}, node.attribs), children); children.forEach(function (child) { return child.parent = clone_1; }); if (node.namespace != null) { clone_1.namespace = node.namespace; } if (node["x-attribsNamespace"]) { clone_1["x-attribsNamespace"] = __assign({}, node["x-attribsNamespace"]); } if (node["x-attribsPrefix"]) { clone_1["x-attribsPrefix"] = __assign({}, node["x-attribsPrefix"]); } result = clone_1; } else if (isCDATA(node)) { var children = recursive ? cloneChildren(node.children) : []; var clone_2 = new CDATA(children); children.forEach(function (child) { return child.parent = clone_2; }); result = clone_2; } else if (isDocument(node)) { var children = recursive ? cloneChildren(node.children) : []; var clone_3 = new Document(children); children.forEach(function (child) { return child.parent = clone_3; }); if (node["x-mode"]) { clone_3["x-mode"] = node["x-mode"]; } result = clone_3; } else if (isDirective(node)) { var instruction = new ProcessingInstruction(node.name, node.data); if (node["x-name"] != null) { instruction["x-name"] = node["x-name"]; instruction["x-publicId"] = node["x-publicId"]; instruction["x-systemId"] = node["x-systemId"]; } result = instruction; } else { throw new Error("Not implemented yet: ".concat(node.type)); } result.startIndex = node.startIndex; result.endIndex = node.endIndex; if (node.sourceCodeLocation != null) { result.sourceCodeLocation = node.sourceCodeLocation; } return result; } exports.cloneNode = cloneNode; function cloneChildren(childs) { var children = childs.map(function (child) { return cloneNode(child, true); }); for (var i = 1; i < children.length; i++) { children[i].prev = children[i - 1]; children[i - 1].next = children[i]; } return children; } /***/ }), /***/ 620: /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.CARRIAGE_RETURN_PLACEHOLDER_REGEX = exports.CARRIAGE_RETURN_PLACEHOLDER = exports.CARRIAGE_RETURN_REGEX = exports.CARRIAGE_RETURN = exports.CASE_SENSITIVE_TAG_NAMES_MAP = exports.CASE_SENSITIVE_TAG_NAMES = void 0; /** * SVG elements are case-sensitive. * * @see https://developer.mozilla.org/docs/Web/SVG/Element#svg_elements_a_to_z */ exports.CASE_SENSITIVE_TAG_NAMES = ['animateMotion', 'animateTransform', 'clipPath', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'foreignObject', 'linearGradient', 'radialGradient', 'textPath']; exports.CASE_SENSITIVE_TAG_NAMES_MAP = exports.CASE_SENSITIVE_TAG_NAMES.reduce(function (accumulator, tagName) { accumulator[tagName.toLowerCase()] = tagName; return accumulator; }, {}); exports.CARRIAGE_RETURN = '\r'; exports.CARRIAGE_RETURN_REGEX = new RegExp(exports.CARRIAGE_RETURN, 'g'); exports.CARRIAGE_RETURN_PLACEHOLDER = "__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_".concat(Date.now(), "__"); exports.CARRIAGE_RETURN_PLACEHOLDER_REGEX = new RegExp(exports.CARRIAGE_RETURN_PLACEHOLDER, 'g'); /***/ }), /***/ 98: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = domparser; var utilities_1 = __webpack_require__(231); // constants var HTML = 'html'; var HEAD = 'head'; var BODY = 'body'; var FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; // e.g., <h1> // match-all-characters in case of newlines (DOTALL) var HEAD_TAG_REGEX = /<head[^]*>/i; var BODY_TAG_REGEX = /<body[^]*>/i; // falls back to `parseFromString` if `createHTMLDocument` cannot be used // eslint-disable-next-line @typescript-eslint/no-unused-vars var parseFromDocument = function (html, tagName) { /* istanbul ignore next */ throw new Error('This browser does not support `document.implementation.createHTMLDocument`'); }; // eslint-disable-next-line @typescript-eslint/no-unused-vars var parseFromString = function (html, tagName) { /* istanbul ignore next */ throw new Error('This browser does not support `DOMParser.prototype.parseFromString`'); }; var DOMParser = typeof window === 'object' && window.DOMParser; /** * DOMParser (performance: slow). * * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document */ if (typeof DOMParser === 'function') { var domParser_1 = new DOMParser(); var mimeType_1 = 'text/html'; /** * Creates an HTML document using `DOMParser.parseFromString`. * * @param html - The HTML string. * @param tagName - The element to render the HTML (with 'body' as fallback). * @returns - Document. */ parseFromString = function (html, tagName) { if (tagName) { /* istanbul ignore next */ html = "<".concat(tagName, ">").concat(html, "</").concat(tagName, ">"); } return domParser_1.parseFromString(html, mimeType_1); }; parseFromDocument = parseFromString; } /** * DOMImplementation (performance: fair). * * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument */ if (typeof document === 'object' && document.implementation) { var htmlDocument_1 = document.implementation.createHTMLDocument(); /** * Use HTML document created by `document.implementation.createHTMLDocument`. * * @param html - The HTML string. * @param tagName - The element to render the HTML (with 'body' as fallback). * @returns - Document */ parseFromDocument = function (html, tagName) { if (tagName) { var element = htmlDocument_1.documentElement.querySelector(tagName); if (element) { element.innerHTML = html; } return htmlDocument_1; } htmlDocument_1.documentElement.innerHTML = html; return htmlDocument_1; }; } /** * Template (performance: fast). * * @see https://developer.mozilla.org/docs/Web/HTML/Element/template */ var template = typeof document === 'object' && document.createElement('template'); var parseFromTemplate; if (template && template.content) { /** * Uses a template element (content fragment) to parse HTML. * * @param html - HTML string. * @returns - Nodes. */ parseFromTemplate = function (html) { template.innerHTML = html; return template.content.childNodes; }; } /** * Parses HTML string to DOM nodes. * * @param html - HTML markup. * @returns - DOM nodes. */ function domparser(html) { var _a, _b; // Escape special characters before parsing html = (0, utilities_1.escapeSpecialCharacters)(html); var match = html.match(FIRST_TAG_REGEX); var firstTagName = match && match[1] ? match[1].toLowerCase() : ''; switch (firstTagName) { case HTML: { var doc = parseFromString(html); // the created document may come with filler head/body elements, // so make sure to remove them if they don't actually exist if (!HEAD_TAG_REGEX.test(html)) { var element = doc.querySelector(HEAD); (_a = element === null || element === void 0 ? void 0 : element.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(element); } if (!BODY_TAG_REGEX.test(html)) { var element = doc.querySelector(BODY); (_b = element === null || element === void 0 ? void 0 : element.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(element); } return doc.querySelectorAll(HTML); } case HEAD: case BODY: { var elements = parseFromDocument(html).querySelectorAll(firstTagName); // if there's a sibling element, then return both elements if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) { return elements[0].parentNode.childNodes; } return elements; } // low-level tag or text default: { if (parseFromTemplate) { return parseFromTemplate(html); } var element = parseFromDocument(html, BODY).querySelector(BODY); return element.childNodes; } } } /***/ }), /***/ 524: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = HTMLDOMParser; var domparser_1 = __importDefault(__webpack_require__(98)); var utilities_1 = __webpack_require__(231); var DIRECTIVE_REGEX = /<(![a-zA-Z\s]+)>/; // e.g., <!doctype html> /** * Parses HTML string to DOM nodes in browser. * * @param html - HTML markup. * @returns - DOM elements. */ function HTMLDOMParser(html) { if (typeof html !== 'string') { throw new TypeError('First argument must be a string'); } if (!html) { return []; } // match directive var match = html.match(DIRECTIVE_REGEX); var directive = match ? match[1] : undefined; return (0, utilities_1.formatDOM)((0, domparser_1.default)(html), null, directive); } /***/ }), /***/ 231: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.formatAttributes = formatAttributes; exports.escapeSpecialCharacters = escapeSpecialCharacters; exports.revertEscapedCharacters = revertEscapedCharacters; exports.formatDOM = formatDOM; var domhandler_1 = __webpack_require__(798); var constants_1 = __webpack_require__(620); /** * Gets case-sensitive tag name. * * @param tagName - Tag name in lowercase. * @returns - Case-sensitive tag name. */ function getCaseSensitiveTagName(tagName) { return constants_1.CASE_SENSITIVE_TAG_NAMES_MAP[tagName]; } /** * Formats DOM attributes to a hash map. * * @param attributes - List of attributes. * @returns - Map of attribute name to value. */ function formatAttributes(attributes) { var map = {}; var index = 0; var attributesLength = attributes.length; // `NamedNodeMap` is array-like for (; index < attributesLength; index++) { var attribute = attributes[index]; map[attribute.name] = attribute.value; } return map; } /** * Corrects the tag name if it is case-sensitive (SVG). * Otherwise, returns the lowercase tag name (HTML). * * @param tagName - Lowercase tag name. * @returns - Formatted tag name. */ function formatTagName(tagName) { tagName = tagName.toLowerCase(); var caseSensitiveTagName = getCaseSensitiveTagName(tagName); if (caseSensitiveTagName) { return caseSensitiveTagName; } return tagName; } /** * Escapes special characters before parsing. * * @param html - The HTML string. * @returns - HTML string with escaped special characters. */ function escapeSpecialCharacters(html) { return html.replace(constants_1.CARRIAGE_RETURN_REGEX, constants_1.CARRIAGE_RETURN_PLACEHOLDER); } /** * Reverts escaped special characters back to actual characters. * * @param text - The text with escaped characters. * @returns - Text with escaped characters reverted. */ function revertEscapedCharacters(text) { return text.replace(constants_1.CARRIAGE_RETURN_PLACEHOLDER_REGEX, constants_1.CARRIAGE_RETURN); } /** * Transforms DOM nodes to `domhandler` nodes. * * @param nodes - DOM nodes. * @param parent - Parent node. * @param directive - Directive. * @returns - Nodes. */ function formatDOM(nodes, parent, directive) { if (parent === void 0) { parent = null; } var domNodes = []; var current; var index = 0; var nodesLength = nodes.length; for (; index < nodesLength; index++) { var node = nodes[index]; // set the node data given the type switch (node.nodeType) { case 1: { var tagName = formatTagName(node.nodeName); // script, style, or tag current = new domhandler_1.Element(tagName, formatAttributes(node.attributes)); current.children = formatDOM( // template children are on content tagName === 'template' ? node.content.childNodes : node.childNodes, current); break; } case 3: current = new domhandler_1.Text(revertEscapedCharacters(node.nodeValue)); break; case 8: current = new domhandler_1.Comment(node.nodeValue); break; default: continue; } // set previous node next var prev = domNodes[index - 1] || null; if (prev) { prev.next = current; } // set properties for current node current.parent = parent; current.prev = prev; current.next = null; domNodes.push(current); } if (directive) { current = new domhandler_1.ProcessingInstruction(directive.substring(0, directive.indexOf(' ')).toLowerCase(), directive); current.next = domNodes[0] || null; current.parent = parent; domNodes.unshift(current); if (domNodes[1]) { domNodes[1].prev = domNodes[0]; } } return domNodes; } /***/ }), /***/ 429: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = attributesToProps; var react_property_1 = __webpack_require__(921); var utilities_1 = __webpack_require__(355); // https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components // https://developer.mozilla.org/docs/Web/HTML/Attributes var UNCONTROLLED_COMPONENT_ATTRIBUTES = ['checked', 'value']; var UNCONTROLLED_COMPONENT_NAMES = ['input', 'select', 'textarea']; var valueOnlyInputs = { reset: true, submit: true }; /** * Converts HTML/SVG DOM attributes to React props. * * @param attributes - HTML/SVG DOM attributes. * @param nodeName - DOM node name. * @returns - React props. */ function attributesToProps(attributes, nodeName) { if (attributes === void 0) { attributes = {}; } var props = {}; var isInputValueOnly = Boolean(attributes.type && valueOnlyInputs[attributes.type]); for (var attributeName in attributes) { var attributeValue = attributes[attributeName]; // ARIA (aria-*) or custom data (data-*) attribute if ((0, react_property_1.isCustomAttribute)(attributeName)) { props[attributeName] = attributeValue; continue; } // convert HTML/SVG attribute to React prop var attributeNameLowerCased = attributeName.toLowerCase(); var propName = getPropName(attributeNameLowerCased); if (propName) { var propertyInfo = (0, react_property_1.getPropertyInfo)(propName); // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`) if (UNCONTROLLED_COMPONENT_ATTRIBUTES.includes(propName) && UNCONTROLLED_COMPONENT_NAMES.includes(nodeName) && !isInputValueOnly) { propName = getPropName('default' + attributeNameLowerCased); } props[propName] = attributeValue; switch (propertyInfo && propertyInfo.type) { case react_property_1.BOOLEAN: props[propName] = true; break; case react_property_1.OVERLOADED_BOOLEAN: if (attributeValue === '') { props[propName] = true; } break; } continue; } // preserve custom attribute if React >=16 if (utilities_1.PRESERVE_CUSTOM_ATTRIBUTES) { props[attributeName] = attributeValue; } } // transform inline style to object (0, utilities_1.setStyleProp)(attributes.style, props); return props; } /** * Gets prop name from lowercased attribute name. * * @param attributeName - Lowercased attribute name. * @returns - Prop name. */ function getPropName(attributeName) { return react_property_1.possibleStandardNames[attributeName]; } /***/ }), /***/ 423: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = domToReact; var react_1 = __webpack_require__(868); var attributes_to_props_1 = __importDefault(__webpack_require__(429)); var utilities_1 = __webpack_require__(355); var React = { cloneElement: react_1.cloneElement, createElement: react_1.createElement, isValidElement: react_1.isValidElement }; /** * Converts DOM nodes to JSX element(s). * * @param nodes - DOM nodes. * @param options - Options. * @returns - String or JSX element(s). */ function domToReact(nodes, options) { if (options === void 0) { options = {}; } var reactElements = []; var hasReplace = typeof options.replace === 'function'; var transform = options.transform || utilities_1.returnFirstArg; var _a = options.library || React, cloneElement = _a.cloneElement, createElement = _a.createElement, isValidElement = _a.isValidElement; var nodesLength = nodes.length; for (var index = 0; index < nodesLength; index++) { var node = nodes[index]; // replace with custom React element (if present) if (hasReplace) { var replaceElement = options.replace(node, index); if (isValidElement(replaceElement)) { // set "key" prop for sibling elements // https://react.dev/learn/rendering-lists#rules-of-keys if (nodesLength > 1) { replaceElement = cloneElement(replaceElement, { key: replaceElement.key || index }); } reactElements.push(transform(replaceElement, node, index)); continue; } } if (node.type === 'text') { var isWhitespace = !node.data.trim().length; // We have a whitespace node that can't be nested in its parent // so skip it if (isWhitespace && node.parent && !(0, utilities_1.canTextBeChildOfNode)(node.parent)) { continue; } // Trim is enabled and we have a whitespace node // so skip it if (options.trim && isWhitespace) { continue; } // We have a text node that's not whitespace and it can be nested // in its parent so add it to the results reactElements.push(transform(node.data, node, index)); continue; } var element = node; var props = {}; if (skipAttributesToProps(element)) { (0, utilities_1.setStyleProp)(element.attribs.style, element.attribs); props = element.attribs; } else if (element.attribs) { props = (0, attributes_to_props_1.default)(element.attribs, element.name); } var children = void 0; switch (node.type) { case 'script': case 'style': // prevent text in <script> or <style> from being escaped // https://react.dev/reference/react-dom/components/common#dangerously-setting-the-inner-html if (node.children[0]) { props.dangerouslySetInnerHTML = { __html: node.children[0].data }; } break; case 'tag': // setting textarea value in children is an antipattern in React // https://react.dev/reference/react-dom/components/textarea#caveats if (node.name === 'textarea' && node.children[0]) { props.defaultValue = node.children[0].data; } else if (node.children && node.children.length) { // continue recursion of creating React elements (if applicable) children = domToReact(node.children, options); } break; // skip all other cases (e.g., comment) default: continue; } // set "key" prop for sibling elements // https://react.dev/learn/rendering-lists#rules-of-keys if (nodesLength > 1) { props.key = index; } reactElements.push(transform(createElement(node.name, props, children), node, index)); } return reactElements.length === 1 ? reactElements[0] : reactElements; } /** * Determines whether DOM element attributes should be transformed to props. * Web Components should not have their attributes transformed except for `style`. * * @param node - Element node. * @returns - Whether the node attributes should be converted to props. */ function skipAttributesToProps(node) { return utilities_1.PRESERVE_CUSTOM_ATTRIBUTES && node.type === 'tag' && (0, utilities_1.isCustomComponent)(node.name, node.attribs); } /***/ }), /***/ 3: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.htmlToDOM = exports.domToReact = exports.attributesToProps = exports.Text = exports.ProcessingInstruction = exports.Element = exports.Comment = void 0; exports["default"] = HTMLReactParser; var html_dom_parser_1 = __importDefault(__webpack_require__(524)); exports.htmlToDOM = html_dom_parser_1.default; var attributes_to_props_1 = __importDefault(__webpack_require__(429)); exports.attributesToProps = attributes_to_props_1.default; var dom_to_react_1 = __importDefault(__webpack_require__(423)); exports.domToReact = dom_to_react_1.default; var domhandler_1 = __webpack_require__(798); Object.defineProperty(exports, "Comment", ({ enumerable: true, get: function () { return domhandler_1.Comment; } })); Object.defineProperty(exports, "Element", ({ enumerable: true, get: function () { return domhandler_1.Element; } })); Object.defineProperty(exports, "ProcessingInstruction", ({ enumerable: true, get: function () { return domhandler_1.ProcessingInstruction; } })); Object.defineProperty(exports, "Text", ({ enumerable: true, get: function () { return domhandler_1.Text; } })); var domParserOptions = { lowerCaseAttributeNames: false }; /** * Converts HTML string to React elements. * * @param html - HTML string. * @param options - Parser options. * @returns - React element(s), empty array, or string. */ function HTMLReactParser(html, options) { if (typeof html !== 'string') { throw new TypeError('First argument must be a string'); } if (!html) { return []; } return (0, dom_to_react_1.default)((0, html_dom_parser_1.default)(html, (options === null || options === void 0 ? void 0 : options.htmlparser2) || domParserOptions), options); } /***/ }), /***/ 355: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.returnFirstArg = exports.canTextBeChildOfNode = exports.ELEMENTS_WITH_NO_TEXT_CHILDREN = exports.PRESERVE_CUSTOM_ATTRIBUTES = void 0; exports.isCustomComponent = isCustomComponent; exports.setStyleProp = setStyleProp; var react_1 = __webpack_require__(868); var style_to_js_1 = __importDefault(__webpack_require__(629)); var RESERVED_SVG_MATHML_ELEMENTS = new Set(['annotation-xml', 'color-profile', 'font-face', 'font-face-src', 'font-face-uri', 'font-face-format', 'font-face-name', 'missing-glyph']); /** * Check if a tag is a custom component. * * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js} * * @param tagName - Tag name. * @param props - Props passed to the element. * @returns - Whether the tag is custom component. */ function isCustomComponent(tagName, props) { if (!tagName.includes('-')) { return Boolean(props && typeof props.is === 'string'); } // These are reserved SVG and MathML elements. // We don't mind this whitelist too much because we expect it to never grow. // The alternative is to track the namespace in a few places which is convoluted. // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts if (RESERVED_SVG_MATHML_ELEMENTS.has(tagName)) { return false; } return true; } var styleOptions = { reactCompat: true }; /** * Sets style prop. * * @param style - Inline style. * @param props - Props object. */ function setStyleProp(style, props) { if (typeof style !== 'string') { return; } if (!style.trim()) { props.style = {}; return; } try { props.style = (0, style_to_js_1.default)(style, styleOptions); // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { props.style = {}; } } /** * @see https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html */ exports.PRESERVE_CUSTOM_ATTRIBUTES = Number(react_1.version.split('.')[0]) >= 16; /** * @see https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213 */ exports.ELEMENTS_WITH_NO_TEXT_CHILDREN = new Set(['tr', 'tbody', 'thead', 'tfoot', 'colgroup', 'table', 'head', 'html', 'frameset']); /** * Checks if the given node can contain text nodes * * @param node - Element node. * @returns - Whether the node can contain text nodes. */ var canTextBeChildOfNode = function (node) { return !exports.ELEMENTS_WITH_NO_TEXT_CHILDREN.has(node.name); }; exports.canTextBeChildOfNode = canTextBeChildOfNode; /** * Returns the first argument as is. * * @param arg - The argument to be returned. * @returns - The input argument `arg`. */ var returnFirstArg = function (arg) { return arg; }; // eslint-disable-line @typescript-eslint/no-explicit-any exports.returnFirstArg = returnFirstArg; /***/ }), /***/ 186: /***/ (function(__unused_webpack_module, exports) { "use strict"; var __webpack_unused_export__; /** * @license React * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var b = Symbol.for("react.element"), c = Symbol.for("react.portal"), d = Symbol.for("react.fragment"), e = Symbol.for("react.strict_mode"), f = Symbol.for("react.profiler"), g = Symbol.for("react.provider"), h = Symbol.for("react.context"), k = Symbol.for("react.server_context"), l = Symbol.for("react.forward_ref"), m = Symbol.for("react.suspense"), n = Symbol.for("react.suspense_list"), p = Symbol.for("react.memo"), q = Symbol.for("react.lazy"), t = Symbol.for("react.offscreen"), u; u = Symbol.for("react.module.reference"); function v(a) { if ("object" === typeof a && null !== a) { var r = a.$$typeof; switch (r) { case b: switch (a = a.type, a) { case d: case f: case e: case m: case n: return a; default: switch (a = a && a.$$typeof, a) { case k: case h: case l: case q: case p: case g: return a; default: return r; } } case c: return r; } } } __webpack_unused_export__ = h; __webpack_unused_export__ = g; __webpack_unused_export__ = b; exports.ForwardRef = l; __webpack_unused_export__ = d; __webpack_unused_export__ = q; __webpack_unused_export__ = p; __webpack_unused_export__ = c; __webpack_unused_export__ = f; __webpack_unused_export__ = e; __webpack_unused_export__ = m; __webpack_unused_export__ = n; __webpack_unused_export__ = function () { return !1; }; __webpack_unused_export__ = function () { return !1; }; __webpack_unused_export__ = function (a) { return v(a) === h; }; __webpack_unused_export__ = function (a) { return v(a) === g; }; __webpack_unused_export__ = function (a) { return "object" === typeof a && null !== a && a.$$typeof === b; }; __webpack_unused_export__ = function (a) { return v(a) === l; }; __webpack_unused_export__ = function (a) { return v(a) === d; }; __webpack_unused_export__ = function (a) { return v(a) === q; }; exports.isMemo = function (a) { return v(a) === p; }; __webpack_unused_export__ = function (a) { return v(a) === c; }; __webpack_unused_export__ = function (a) { return v(a) === f; }; __webpack_unused_export__ = function (a) { return v(a) === e; }; __webpack_unused_export__ = function (a) { return v(a) === m; }; __webpack_unused_export__ = function (a) { return v(a) === n; }; __webpack_unused_export__ = function (a) { return "string" === typeof a || "function" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || "object" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1; }; __webpack_unused_export__ = v; /***/ }), /***/ 526: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; if (true) { module.exports = __webpack_require__(186); } else {}