html-react-parser 4.2.3 → 4.2.4
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.
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
/**
|
|
209
209
|
* Text within the document.
|
|
210
210
|
*/
|
|
211
|
-
var Text
|
|
211
|
+
var Text = /** @class */ (function (_super) {
|
|
212
212
|
__extends(Text, _super);
|
|
213
213
|
function Text() {
|
|
214
214
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
@@ -224,11 +224,11 @@
|
|
|
224
224
|
});
|
|
225
225
|
return Text;
|
|
226
226
|
}(DataNode));
|
|
227
|
-
node.Text = Text
|
|
227
|
+
node.Text = Text;
|
|
228
228
|
/**
|
|
229
229
|
* Comments within the document.
|
|
230
230
|
*/
|
|
231
|
-
var Comment
|
|
231
|
+
var Comment = /** @class */ (function (_super) {
|
|
232
232
|
__extends(Comment, _super);
|
|
233
233
|
function Comment() {
|
|
234
234
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
@@ -244,11 +244,11 @@
|
|
|
244
244
|
});
|
|
245
245
|
return Comment;
|
|
246
246
|
}(DataNode));
|
|
247
|
-
node.Comment = Comment
|
|
247
|
+
node.Comment = Comment;
|
|
248
248
|
/**
|
|
249
249
|
* Processing instructions, including doc types.
|
|
250
250
|
*/
|
|
251
|
-
var ProcessingInstruction
|
|
251
|
+
var ProcessingInstruction = /** @class */ (function (_super) {
|
|
252
252
|
__extends(ProcessingInstruction, _super);
|
|
253
253
|
function ProcessingInstruction(name, data) {
|
|
254
254
|
var _this = _super.call(this, data) || this;
|
|
@@ -265,7 +265,7 @@
|
|
|
265
265
|
});
|
|
266
266
|
return ProcessingInstruction;
|
|
267
267
|
}(DataNode));
|
|
268
|
-
node.ProcessingInstruction = ProcessingInstruction
|
|
268
|
+
node.ProcessingInstruction = ProcessingInstruction;
|
|
269
269
|
/**
|
|
270
270
|
* A `Node` that can have children.
|
|
271
271
|
*/
|
|
@@ -356,7 +356,7 @@
|
|
|
356
356
|
/**
|
|
357
357
|
* An element within the DOM.
|
|
358
358
|
*/
|
|
359
|
-
var Element
|
|
359
|
+
var Element = /** @class */ (function (_super) {
|
|
360
360
|
__extends(Element, _super);
|
|
361
361
|
/**
|
|
362
362
|
* @param name Name of the tag, eg. `div`, `span`.
|
|
@@ -416,7 +416,7 @@
|
|
|
416
416
|
});
|
|
417
417
|
return Element;
|
|
418
418
|
}(NodeWithChildren));
|
|
419
|
-
node.Element = Element
|
|
419
|
+
node.Element = Element;
|
|
420
420
|
/**
|
|
421
421
|
* @param node Node to check.
|
|
422
422
|
* @returns `true` if the node is a `Element`, `false` otherwise.
|
|
@@ -483,14 +483,14 @@
|
|
|
483
483
|
if (recursive === void 0) { recursive = false; }
|
|
484
484
|
var result;
|
|
485
485
|
if (isText(node)) {
|
|
486
|
-
result = new Text
|
|
486
|
+
result = new Text(node.data);
|
|
487
487
|
}
|
|
488
488
|
else if (isComment(node)) {
|
|
489
|
-
result = new Comment
|
|
489
|
+
result = new Comment(node.data);
|
|
490
490
|
}
|
|
491
491
|
else if (isTag(node)) {
|
|
492
492
|
var children = recursive ? cloneChildren(node.children) : [];
|
|
493
|
-
var clone_1 = new Element
|
|
493
|
+
var clone_1 = new Element(node.name, __assign({}, node.attribs), children);
|
|
494
494
|
children.forEach(function (child) { return (child.parent = clone_1); });
|
|
495
495
|
if (node.namespace != null) {
|
|
496
496
|
clone_1.namespace = node.namespace;
|
|
@@ -519,7 +519,7 @@
|
|
|
519
519
|
result = clone_3;
|
|
520
520
|
}
|
|
521
521
|
else if (isDirective(node)) {
|
|
522
|
-
var instruction = new ProcessingInstruction
|
|
522
|
+
var instruction = new ProcessingInstruction(node.name, node.data);
|
|
523
523
|
if (node["x-name"] != null) {
|
|
524
524
|
instruction["x-name"] = node["x-name"];
|
|
525
525
|
instruction["x-publicId"] = node["x-publicId"];
|
|
@@ -714,6 +714,11 @@
|
|
|
714
714
|
exports.default = DomHandler;
|
|
715
715
|
} (lib$2));
|
|
716
716
|
|
|
717
|
+
var htmlToDom = {};
|
|
718
|
+
|
|
719
|
+
var domparser$1 = {};
|
|
720
|
+
|
|
721
|
+
Object.defineProperty(domparser$1, "__esModule", { value: true });
|
|
717
722
|
// constants
|
|
718
723
|
var HTML = 'html';
|
|
719
724
|
var HEAD = 'head';
|
|
@@ -722,377 +727,319 @@
|
|
|
722
727
|
// match-all-characters in case of newlines (DOTALL)
|
|
723
728
|
var HEAD_TAG_REGEX = /<head[^]*>/i;
|
|
724
729
|
var BODY_TAG_REGEX = /<body[^]*>/i;
|
|
725
|
-
|
|
726
730
|
// falls back to `parseFromString` if `createHTMLDocument` cannot be used
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
732
|
+
var parseFromDocument = function (html, tagName) {
|
|
733
|
+
/* istanbul ignore next */
|
|
734
|
+
throw new Error('This browser does not support `document.implementation.createHTMLDocument`');
|
|
731
735
|
};
|
|
732
|
-
|
|
733
|
-
var parseFromString = function () {
|
|
734
|
-
|
|
735
|
-
'This browser does not support `DOMParser.prototype.parseFromString`'
|
|
736
|
-
);
|
|
736
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
737
|
+
var parseFromString = function (html, tagName) {
|
|
738
|
+
/* istanbul ignore next */
|
|
739
|
+
throw new Error('This browser does not support `DOMParser.prototype.parseFromString`');
|
|
737
740
|
};
|
|
738
|
-
|
|
739
741
|
var DOMParser = typeof window === 'object' && window.DOMParser;
|
|
740
|
-
|
|
741
742
|
/**
|
|
742
743
|
* DOMParser (performance: slow).
|
|
743
744
|
*
|
|
744
745
|
* @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document
|
|
745
746
|
*/
|
|
746
747
|
if (typeof DOMParser === 'function') {
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
};
|
|
764
|
-
|
|
765
|
-
parseFromDocument = parseFromString;
|
|
748
|
+
var domParser_1 = new DOMParser();
|
|
749
|
+
var mimeType_1 = 'text/html';
|
|
750
|
+
/**
|
|
751
|
+
* Creates an HTML document using `DOMParser.parseFromString`.
|
|
752
|
+
*
|
|
753
|
+
* @param html - The HTML string.
|
|
754
|
+
* @param tagName - The element to render the HTML (with 'body' as fallback).
|
|
755
|
+
* @returns - Document.
|
|
756
|
+
*/
|
|
757
|
+
parseFromString = function (html, tagName) {
|
|
758
|
+
if (tagName) {
|
|
759
|
+
html = "<".concat(tagName, ">").concat(html, "</").concat(tagName, ">");
|
|
760
|
+
}
|
|
761
|
+
return domParser_1.parseFromString(html, mimeType_1);
|
|
762
|
+
};
|
|
763
|
+
parseFromDocument = parseFromString;
|
|
766
764
|
}
|
|
767
|
-
|
|
768
765
|
/**
|
|
769
766
|
* DOMImplementation (performance: fair).
|
|
770
767
|
*
|
|
771
768
|
* @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument
|
|
772
769
|
*/
|
|
773
770
|
if (typeof document === 'object' && document.implementation) {
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
771
|
+
var htmlDocument_1 = document.implementation.createHTMLDocument();
|
|
772
|
+
/**
|
|
773
|
+
* Use HTML document created by `document.implementation.createHTMLDocument`.
|
|
774
|
+
*
|
|
775
|
+
* @param html - The HTML string.
|
|
776
|
+
* @param tagName - The element to render the HTML (with 'body' as fallback).
|
|
777
|
+
* @returns - Document
|
|
778
|
+
*/
|
|
779
|
+
parseFromDocument = function (html, tagName) {
|
|
780
|
+
if (tagName) {
|
|
781
|
+
var element = htmlDocument_1.documentElement.querySelector(tagName);
|
|
782
|
+
if (element) {
|
|
783
|
+
element.innerHTML = html;
|
|
784
|
+
}
|
|
785
|
+
return htmlDocument_1;
|
|
786
|
+
}
|
|
787
|
+
htmlDocument_1.documentElement.innerHTML = html;
|
|
788
|
+
return htmlDocument_1;
|
|
789
|
+
};
|
|
793
790
|
}
|
|
794
|
-
|
|
795
791
|
/**
|
|
796
792
|
* Template (performance: fast).
|
|
797
793
|
*
|
|
798
794
|
* @see https://developer.mozilla.org/docs/Web/HTML/Element/template
|
|
799
795
|
*/
|
|
800
|
-
var template =
|
|
801
|
-
|
|
802
|
-
|
|
796
|
+
var template = typeof document === 'object' && document.createElement('template');
|
|
797
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
803
798
|
var parseFromTemplate;
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
};
|
|
799
|
+
if (template && template.content) {
|
|
800
|
+
/**
|
|
801
|
+
* Uses a template element (content fragment) to parse HTML.
|
|
802
|
+
*
|
|
803
|
+
* @param html - HTML string.
|
|
804
|
+
* @returns - Nodes.
|
|
805
|
+
*/
|
|
806
|
+
parseFromTemplate = function (html) {
|
|
807
|
+
template.innerHTML = html;
|
|
808
|
+
return template.content.childNodes;
|
|
809
|
+
};
|
|
816
810
|
}
|
|
817
|
-
|
|
818
811
|
/**
|
|
819
812
|
* Parses HTML string to DOM nodes.
|
|
820
813
|
*
|
|
821
|
-
* @param
|
|
822
|
-
* @
|
|
814
|
+
* @param html - HTML markup.
|
|
815
|
+
* @returns - DOM nodes.
|
|
823
816
|
*/
|
|
824
|
-
function domparser
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
if (!HEAD_TAG_REGEX.test(html)) {
|
|
843
|
-
element = doc.querySelector(HEAD);
|
|
844
|
-
if (element) {
|
|
845
|
-
element.parentNode.removeChild(element);
|
|
817
|
+
function domparser(html) {
|
|
818
|
+
var _a, _b;
|
|
819
|
+
var match = html.match(FIRST_TAG_REGEX);
|
|
820
|
+
var firstTagName = match && match[1] ? match[1].toLowerCase() : '';
|
|
821
|
+
switch (firstTagName) {
|
|
822
|
+
case HTML: {
|
|
823
|
+
var doc = parseFromString(html);
|
|
824
|
+
// the created document may come with filler head/body elements,
|
|
825
|
+
// so make sure to remove them if they don't actually exist
|
|
826
|
+
if (!HEAD_TAG_REGEX.test(html)) {
|
|
827
|
+
var element = doc.querySelector(HEAD);
|
|
828
|
+
(_a = element === null || element === void 0 ? void 0 : element.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(element);
|
|
829
|
+
}
|
|
830
|
+
if (!BODY_TAG_REGEX.test(html)) {
|
|
831
|
+
var element = doc.querySelector(BODY);
|
|
832
|
+
(_b = element === null || element === void 0 ? void 0 : element.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(element);
|
|
833
|
+
}
|
|
834
|
+
return doc.querySelectorAll(HTML);
|
|
846
835
|
}
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
836
|
+
case HEAD:
|
|
837
|
+
case BODY: {
|
|
838
|
+
var elements = parseFromDocument(html).querySelectorAll(firstTagName);
|
|
839
|
+
// if there's a sibling element, then return both elements
|
|
840
|
+
if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {
|
|
841
|
+
return elements[0].parentNode.childNodes;
|
|
842
|
+
}
|
|
843
|
+
return elements;
|
|
853
844
|
}
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
// if there's a sibling element, then return both elements
|
|
864
|
-
if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {
|
|
865
|
-
return elements[0].parentNode.childNodes;
|
|
866
|
-
}
|
|
867
|
-
return elements;
|
|
868
|
-
|
|
869
|
-
// low-level tag or text
|
|
870
|
-
default:
|
|
871
|
-
if (parseFromTemplate) {
|
|
872
|
-
return parseFromTemplate(html);
|
|
873
|
-
}
|
|
874
|
-
element = parseFromDocument(html, BODY).querySelector(BODY);
|
|
875
|
-
return element.childNodes;
|
|
876
|
-
}
|
|
845
|
+
// low-level tag or text
|
|
846
|
+
default: {
|
|
847
|
+
if (parseFromTemplate) {
|
|
848
|
+
return parseFromTemplate(html);
|
|
849
|
+
}
|
|
850
|
+
var element = parseFromDocument(html, BODY).querySelector(BODY);
|
|
851
|
+
return element.childNodes;
|
|
852
|
+
}
|
|
853
|
+
}
|
|
877
854
|
}
|
|
855
|
+
domparser$1.default = domparser;
|
|
878
856
|
|
|
879
|
-
var
|
|
857
|
+
var utilities$4 = {};
|
|
880
858
|
|
|
881
|
-
var
|
|
882
|
-
|
|
883
|
-
var constants$1 = {};
|
|
884
|
-
|
|
885
|
-
/**
|
|
886
|
-
* SVG elements are case-sensitive.
|
|
887
|
-
*
|
|
888
|
-
* @see {@link https://developer.mozilla.org/docs/Web/SVG/Element#svg_elements_a_to_z}
|
|
889
|
-
*/
|
|
890
|
-
|
|
891
|
-
constants$1.CASE_SENSITIVE_TAG_NAMES = [
|
|
892
|
-
'animateMotion',
|
|
893
|
-
'animateTransform',
|
|
894
|
-
'clipPath',
|
|
895
|
-
'feBlend',
|
|
896
|
-
'feColorMatrix',
|
|
897
|
-
'feComponentTransfer',
|
|
898
|
-
'feComposite',
|
|
899
|
-
'feConvolveMatrix',
|
|
900
|
-
'feDiffuseLighting',
|
|
901
|
-
'feDisplacementMap',
|
|
902
|
-
'feDropShadow',
|
|
903
|
-
'feFlood',
|
|
904
|
-
'feFuncA',
|
|
905
|
-
'feFuncB',
|
|
906
|
-
'feFuncG',
|
|
907
|
-
'feFuncR',
|
|
908
|
-
'feGaussianBlur',
|
|
909
|
-
'feImage',
|
|
910
|
-
'feMerge',
|
|
911
|
-
'feMergeNode',
|
|
912
|
-
'feMorphology',
|
|
913
|
-
'feOffset',
|
|
914
|
-
'fePointLight',
|
|
915
|
-
'feSpecularLighting',
|
|
916
|
-
'feSpotLight',
|
|
917
|
-
'feTile',
|
|
918
|
-
'feTurbulence',
|
|
919
|
-
'foreignObject',
|
|
920
|
-
'linearGradient',
|
|
921
|
-
'radialGradient',
|
|
922
|
-
'textPath'
|
|
923
|
-
];
|
|
924
|
-
|
|
925
|
-
var domhandler$1 = lib$2;
|
|
926
|
-
var constants = constants$1;
|
|
927
|
-
|
|
928
|
-
var CASE_SENSITIVE_TAG_NAMES = constants.CASE_SENSITIVE_TAG_NAMES;
|
|
929
|
-
|
|
930
|
-
var Comment = domhandler$1.Comment;
|
|
931
|
-
var Element = domhandler$1.Element;
|
|
932
|
-
var ProcessingInstruction = domhandler$1.ProcessingInstruction;
|
|
933
|
-
var Text = domhandler$1.Text;
|
|
934
|
-
|
|
935
|
-
var caseSensitiveTagNamesMap = {};
|
|
936
|
-
var tagName;
|
|
937
|
-
|
|
938
|
-
for (var i = 0, len = CASE_SENSITIVE_TAG_NAMES.length; i < len; i++) {
|
|
939
|
-
tagName = CASE_SENSITIVE_TAG_NAMES[i];
|
|
940
|
-
caseSensitiveTagNamesMap[tagName.toLowerCase()] = tagName;
|
|
941
|
-
}
|
|
859
|
+
var constants = {};
|
|
942
860
|
|
|
861
|
+
(function (exports) {
|
|
862
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
863
|
+
exports.CASE_SENSITIVE_TAG_NAMES_MAP = exports.CASE_SENSITIVE_TAG_NAMES = void 0;
|
|
864
|
+
/**
|
|
865
|
+
* SVG elements are case-sensitive.
|
|
866
|
+
*
|
|
867
|
+
* @see https://developer.mozilla.org/docs/Web/SVG/Element#svg_elements_a_to_z
|
|
868
|
+
*/
|
|
869
|
+
exports.CASE_SENSITIVE_TAG_NAMES = [
|
|
870
|
+
'animateMotion',
|
|
871
|
+
'animateTransform',
|
|
872
|
+
'clipPath',
|
|
873
|
+
'feBlend',
|
|
874
|
+
'feColorMatrix',
|
|
875
|
+
'feComponentTransfer',
|
|
876
|
+
'feComposite',
|
|
877
|
+
'feConvolveMatrix',
|
|
878
|
+
'feDiffuseLighting',
|
|
879
|
+
'feDisplacementMap',
|
|
880
|
+
'feDropShadow',
|
|
881
|
+
'feFlood',
|
|
882
|
+
'feFuncA',
|
|
883
|
+
'feFuncB',
|
|
884
|
+
'feFuncG',
|
|
885
|
+
'feFuncR',
|
|
886
|
+
'feGaussianBlur',
|
|
887
|
+
'feImage',
|
|
888
|
+
'feMerge',
|
|
889
|
+
'feMergeNode',
|
|
890
|
+
'feMorphology',
|
|
891
|
+
'feOffset',
|
|
892
|
+
'fePointLight',
|
|
893
|
+
'feSpecularLighting',
|
|
894
|
+
'feSpotLight',
|
|
895
|
+
'feTile',
|
|
896
|
+
'feTurbulence',
|
|
897
|
+
'foreignObject',
|
|
898
|
+
'linearGradient',
|
|
899
|
+
'radialGradient',
|
|
900
|
+
'textPath',
|
|
901
|
+
];
|
|
902
|
+
exports.CASE_SENSITIVE_TAG_NAMES_MAP = exports.CASE_SENSITIVE_TAG_NAMES.reduce(function (accumulator, tagName) {
|
|
903
|
+
accumulator[tagName.toLowerCase()] = tagName;
|
|
904
|
+
return accumulator;
|
|
905
|
+
}, {});
|
|
906
|
+
|
|
907
|
+
} (constants));
|
|
908
|
+
|
|
909
|
+
Object.defineProperty(utilities$4, "__esModule", { value: true });
|
|
910
|
+
utilities$4.formatDOM = utilities$4.formatAttributes = void 0;
|
|
911
|
+
var domhandler_1 = lib$2;
|
|
912
|
+
var constants_1 = constants;
|
|
943
913
|
/**
|
|
944
914
|
* Gets case-sensitive tag name.
|
|
945
915
|
*
|
|
946
|
-
* @param
|
|
947
|
-
* @returns
|
|
916
|
+
* @param tagName - Tag name in lowercase.
|
|
917
|
+
* @returns - Case-sensitive tag name.
|
|
948
918
|
*/
|
|
949
919
|
function getCaseSensitiveTagName(tagName) {
|
|
950
|
-
|
|
920
|
+
return constants_1.CASE_SENSITIVE_TAG_NAMES_MAP[tagName];
|
|
951
921
|
}
|
|
952
|
-
|
|
953
922
|
/**
|
|
954
923
|
* Formats DOM attributes to a hash map.
|
|
955
924
|
*
|
|
956
|
-
* @param
|
|
957
|
-
* @returns
|
|
925
|
+
* @param attributes - List of attributes.
|
|
926
|
+
* @returns - Map of attribute name to value.
|
|
958
927
|
*/
|
|
959
928
|
function formatAttributes(attributes) {
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
929
|
+
var map = {};
|
|
930
|
+
var index = 0;
|
|
931
|
+
var attributesLength = attributes.length;
|
|
932
|
+
// `NamedNodeMap` is array-like
|
|
933
|
+
for (; index < attributesLength; index++) {
|
|
934
|
+
var attribute = attributes[index];
|
|
935
|
+
map[attribute.name] = attribute.value;
|
|
936
|
+
}
|
|
937
|
+
return map;
|
|
968
938
|
}
|
|
969
|
-
|
|
939
|
+
utilities$4.formatAttributes = formatAttributes;
|
|
970
940
|
/**
|
|
971
941
|
* Corrects the tag name if it is case-sensitive (SVG).
|
|
972
942
|
* Otherwise, returns the lowercase tag name (HTML).
|
|
973
943
|
*
|
|
974
|
-
* @param
|
|
975
|
-
* @returns
|
|
944
|
+
* @param tagName - Lowercase tag name.
|
|
945
|
+
* @returns - Formatted tag name.
|
|
976
946
|
*/
|
|
977
947
|
function formatTagName(tagName) {
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
948
|
+
tagName = tagName.toLowerCase();
|
|
949
|
+
var caseSensitiveTagName = getCaseSensitiveTagName(tagName);
|
|
950
|
+
if (caseSensitiveTagName) {
|
|
951
|
+
return caseSensitiveTagName;
|
|
952
|
+
}
|
|
953
|
+
return tagName;
|
|
984
954
|
}
|
|
985
|
-
|
|
986
955
|
/**
|
|
987
956
|
* Transforms DOM nodes to `domhandler` nodes.
|
|
988
957
|
*
|
|
989
|
-
* @param
|
|
990
|
-
* @param
|
|
991
|
-
* @param
|
|
992
|
-
* @returns
|
|
958
|
+
* @param nodes - DOM nodes.
|
|
959
|
+
* @param parent - Parent node.
|
|
960
|
+
* @param directive - Directive.
|
|
961
|
+
* @returns - Nodes.
|
|
993
962
|
*/
|
|
994
|
-
function formatDOM
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
var tagName;
|
|
998
|
-
|
|
999
|
-
for (var index = 0, len = nodes.length; index < len; index++) {
|
|
1000
|
-
var node = nodes[index];
|
|
963
|
+
function formatDOM(nodes, parent, directive) {
|
|
964
|
+
if (parent === void 0) { parent = null; }
|
|
965
|
+
var result = [];
|
|
1001
966
|
var current;
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
967
|
+
var index = 0;
|
|
968
|
+
var nodesLength = nodes.length;
|
|
969
|
+
for (; index < nodesLength; index++) {
|
|
970
|
+
var node = nodes[index];
|
|
971
|
+
// set the node data given the type
|
|
972
|
+
switch (node.nodeType) {
|
|
973
|
+
case 1: {
|
|
974
|
+
var tagName = formatTagName(node.nodeName);
|
|
975
|
+
// script, style, or tag
|
|
976
|
+
current = new domhandler_1.Element(tagName, formatAttributes(node.attributes));
|
|
977
|
+
current.children = formatDOM(
|
|
978
|
+
// template children are on content
|
|
979
|
+
tagName === 'template'
|
|
980
|
+
? node.content.childNodes
|
|
981
|
+
: node.childNodes, current);
|
|
982
|
+
break;
|
|
983
|
+
}
|
|
984
|
+
case 3:
|
|
985
|
+
current = new domhandler_1.Text(node.nodeValue);
|
|
986
|
+
break;
|
|
987
|
+
case 8:
|
|
988
|
+
current = new domhandler_1.Comment(node.nodeValue);
|
|
989
|
+
break;
|
|
990
|
+
default:
|
|
991
|
+
continue;
|
|
992
|
+
}
|
|
993
|
+
// set previous node next
|
|
994
|
+
var prev = result[index - 1] || null;
|
|
995
|
+
if (prev) {
|
|
996
|
+
prev.next = current;
|
|
997
|
+
}
|
|
998
|
+
// set properties for current node
|
|
999
|
+
current.parent = parent;
|
|
1000
|
+
current.prev = prev;
|
|
1001
|
+
current.next = null;
|
|
1002
|
+
result.push(current);
|
|
1032
1003
|
}
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
if (directive) {
|
|
1043
|
-
current = new ProcessingInstruction(
|
|
1044
|
-
directive.substring(0, directive.indexOf(' ')).toLowerCase(),
|
|
1045
|
-
directive
|
|
1046
|
-
);
|
|
1047
|
-
current.next = result[0] || null;
|
|
1048
|
-
current.parent = parent;
|
|
1049
|
-
result.unshift(current);
|
|
1050
|
-
|
|
1051
|
-
if (result[1]) {
|
|
1052
|
-
result[1].prev = result[0];
|
|
1004
|
+
if (directive) {
|
|
1005
|
+
current = new domhandler_1.ProcessingInstruction(directive.substring(0, directive.indexOf(' ')).toLowerCase(), directive);
|
|
1006
|
+
current.next = result[0] || null;
|
|
1007
|
+
current.parent = parent;
|
|
1008
|
+
result.unshift(current);
|
|
1009
|
+
if (result[1]) {
|
|
1010
|
+
result[1].prev = result[0];
|
|
1011
|
+
}
|
|
1053
1012
|
}
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
return result;
|
|
1013
|
+
return result;
|
|
1057
1014
|
}
|
|
1015
|
+
utilities$4.formatDOM = formatDOM;
|
|
1058
1016
|
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
var
|
|
1064
|
-
|
|
1065
|
-
var formatDOM = utilities$4.formatDOM;
|
|
1066
|
-
|
|
1017
|
+
var __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
|
|
1018
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
1019
|
+
};
|
|
1020
|
+
Object.defineProperty(htmlToDom, "__esModule", { value: true });
|
|
1021
|
+
var domparser_1 = __importDefault$1(domparser$1);
|
|
1022
|
+
var utilities_1$1 = utilities$4;
|
|
1067
1023
|
var DIRECTIVE_REGEX = /<(![a-zA-Z\s]+)>/; // e.g., <!doctype html>
|
|
1068
|
-
|
|
1069
1024
|
/**
|
|
1070
1025
|
* Parses HTML string to DOM nodes in browser.
|
|
1071
1026
|
*
|
|
1072
|
-
* @param
|
|
1073
|
-
* @
|
|
1027
|
+
* @param html - HTML markup.
|
|
1028
|
+
* @returns - DOM elements.
|
|
1074
1029
|
*/
|
|
1075
1030
|
function HTMLDOMParser(html) {
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
var directive;
|
|
1087
|
-
|
|
1088
|
-
if (match && match[1]) {
|
|
1089
|
-
directive = match[1];
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
|
-
return formatDOM(domparser(html), null, directive);
|
|
1031
|
+
if (typeof html !== 'string') {
|
|
1032
|
+
throw new TypeError('First argument must be a string');
|
|
1033
|
+
}
|
|
1034
|
+
if (html === '') {
|
|
1035
|
+
return [];
|
|
1036
|
+
}
|
|
1037
|
+
// match directive
|
|
1038
|
+
var match = html.match(DIRECTIVE_REGEX);
|
|
1039
|
+
var directive = match ? match[1] : undefined;
|
|
1040
|
+
return (0, utilities_1$1.formatDOM)((0, domparser_1.default)(html), null, directive);
|
|
1093
1041
|
}
|
|
1094
|
-
|
|
1095
|
-
var htmlToDom = HTMLDOMParser;
|
|
1042
|
+
htmlToDom.default = HTMLDOMParser;
|
|
1096
1043
|
|
|
1097
1044
|
var lib = {};
|
|
1098
1045
|
|
|
@@ -2648,7 +2595,7 @@
|
|
|
2648
2595
|
var domToReact_1 = domToReact$1;
|
|
2649
2596
|
|
|
2650
2597
|
var domhandler = lib$2;
|
|
2651
|
-
var htmlToDOM = htmlToDom;
|
|
2598
|
+
var htmlToDOM = htmlToDom.default;
|
|
2652
2599
|
|
|
2653
2600
|
var attributesToProps = attributesToProps$2;
|
|
2654
2601
|
var domToReact = domToReact_1;
|