@appsurify-testmap/rrweb-all 2.0.0-alpha.35 → 2.0.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rrweb-all.cjs +127 -116
- package/dist/rrweb-all.cjs.map +1 -1
- package/dist/rrweb-all.js +127 -116
- package/dist/rrweb-all.js.map +1 -1
- package/dist/rrweb-all.umd.cjs +129 -116
- package/dist/rrweb-all.umd.cjs.map +3 -3
- package/dist/rrweb-all.umd.min.cjs +26 -26
- package/dist/rrweb-all.umd.min.cjs.map +3 -3
- package/package.json +4 -4
package/dist/rrweb-all.cjs
CHANGED
|
@@ -527,7 +527,7 @@ function getXPath(node2) {
|
|
|
527
527
|
return "/html/body";
|
|
528
528
|
}
|
|
529
529
|
const parentNode2 = element.parentNode;
|
|
530
|
-
if (!parentNode2
|
|
530
|
+
if (!parentNode2) {
|
|
531
531
|
return "";
|
|
532
532
|
}
|
|
533
533
|
const siblings = Array.from(parentNode2.children).filter(
|
|
@@ -589,14 +589,19 @@ function isTextVisible(n2) {
|
|
|
589
589
|
return textContent2 !== "";
|
|
590
590
|
}
|
|
591
591
|
function isElementVisible(n2) {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
const
|
|
596
|
-
|
|
592
|
+
var _a2;
|
|
593
|
+
const win = ((_a2 = n2.ownerDocument) == null ? void 0 : _a2.defaultView) ?? null;
|
|
594
|
+
const style = win ? win.getComputedStyle(n2) : null;
|
|
595
|
+
const isStyleVisible = style != null && style.display !== "none" && style.visibility !== "hidden" && parseFloat(style.opacity) !== 0;
|
|
596
|
+
const rect = n2.getBoundingClientRect();
|
|
597
|
+
const result2 = isStyleVisible && isRectVisible(rect, win);
|
|
598
|
+
return result2;
|
|
597
599
|
}
|
|
598
|
-
function isRectVisible(rect) {
|
|
599
|
-
|
|
600
|
+
function isRectVisible(rect, win) {
|
|
601
|
+
var _a2, _b2, _c, _d;
|
|
602
|
+
const height = (win == null ? void 0 : win.innerHeight) ?? ((_b2 = (_a2 = win == null ? void 0 : win.document) == null ? void 0 : _a2.documentElement) == null ? void 0 : _b2.clientHeight) ?? 0;
|
|
603
|
+
const width = (win == null ? void 0 : win.innerWidth) ?? ((_d = (_c = win == null ? void 0 : win.document) == null ? void 0 : _c.documentElement) == null ? void 0 : _d.clientWidth) ?? 0;
|
|
604
|
+
return rect.width > 0 && rect.height > 0 && rect.top >= 0 && rect.left >= 0 && rect.bottom <= height && rect.right <= width;
|
|
600
605
|
}
|
|
601
606
|
const interactiveEvents$1 = [
|
|
602
607
|
"change",
|
|
@@ -636,7 +641,7 @@ const interactiveTags = [
|
|
|
636
641
|
"video",
|
|
637
642
|
"audio"
|
|
638
643
|
];
|
|
639
|
-
const inlineEventAttributes
|
|
644
|
+
const inlineEventAttributes = [
|
|
640
645
|
"onclick",
|
|
641
646
|
"ondblclick",
|
|
642
647
|
"onmousedown",
|
|
@@ -661,25 +666,31 @@ const inlineEventAttributes$1 = [
|
|
|
661
666
|
"ontouchcancel"
|
|
662
667
|
];
|
|
663
668
|
const interactiveElementsRegistry$1 = /* @__PURE__ */ new WeakSet();
|
|
664
|
-
|
|
665
|
-
EventTarget.prototype.addEventListener
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
669
|
+
if (typeof Element !== "undefined" && typeof EventTarget !== "undefined") {
|
|
670
|
+
const originalAddEventListener = EventTarget.prototype.addEventListener;
|
|
671
|
+
EventTarget.prototype.addEventListener = function(type, listener, options) {
|
|
672
|
+
originalAddEventListener.call(this, type, listener, options);
|
|
673
|
+
if (this instanceof Element) {
|
|
674
|
+
const eventType = type.toLowerCase();
|
|
675
|
+
if (interactiveEvents$1.includes(eventType)) {
|
|
676
|
+
interactiveElementsRegistry$1.add(this);
|
|
677
|
+
}
|
|
671
678
|
}
|
|
672
|
-
}
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
EventTarget.prototype.removeEventListener
|
|
676
|
-
|
|
677
|
-
|
|
679
|
+
};
|
|
680
|
+
}
|
|
681
|
+
if (typeof Element !== "undefined" && typeof EventTarget !== "undefined") {
|
|
682
|
+
const originalRemoveEventListener = EventTarget.prototype.removeEventListener;
|
|
683
|
+
EventTarget.prototype.removeEventListener = function(type, listener, options) {
|
|
684
|
+
originalRemoveEventListener.call(this, type, listener, options);
|
|
685
|
+
if (this instanceof Element) {
|
|
686
|
+
type.toLowerCase();
|
|
687
|
+
}
|
|
688
|
+
};
|
|
689
|
+
}
|
|
678
690
|
function hasEventListeners(n2) {
|
|
679
691
|
return n2 instanceof Element && interactiveElementsRegistry$1.has(n2);
|
|
680
692
|
}
|
|
681
693
|
function isElementInteractive(n2) {
|
|
682
|
-
var _a2;
|
|
683
694
|
if (n2.nodeType === Node.ELEMENT_NODE) {
|
|
684
695
|
const element = n2;
|
|
685
696
|
const tagName = element.tagName.toLowerCase();
|
|
@@ -693,30 +704,35 @@ function isElementInteractive(n2) {
|
|
|
693
704
|
const result2 = hasEventListeners(element) || hasTabIndex || hasRoleInteractive || element instanceof HTMLAnchorElement && element.hasAttribute("href") || element instanceof HTMLButtonElement && !element.disabled;
|
|
694
705
|
return result2;
|
|
695
706
|
}
|
|
696
|
-
if (n2.nodeType === Node.TEXT_NODE) {
|
|
697
|
-
const textNode = n2;
|
|
698
|
-
const parentElement2 = textNode.parentElement;
|
|
699
|
-
if (parentElement2 !== null && interactiveTags.includes(parentElement2.tagName.toLowerCase())) {
|
|
700
|
-
return true;
|
|
701
|
-
}
|
|
702
|
-
return parentElement2 !== null && isElementVisible(parentElement2) && ((_a2 = textNode.textContent) == null ? void 0 : _a2.trim().length) !== 0 && isElementInteractive(parentElement2);
|
|
703
|
-
}
|
|
704
707
|
return false;
|
|
705
708
|
}
|
|
706
|
-
function inspectInlineEventHandlers
|
|
707
|
-
|
|
709
|
+
function inspectInlineEventHandlers(doc) {
|
|
710
|
+
if (!doc || typeof doc.querySelectorAll !== "function") return;
|
|
711
|
+
const allElements = doc.querySelectorAll("*");
|
|
708
712
|
allElements.forEach((el) => {
|
|
709
|
-
inlineEventAttributes
|
|
713
|
+
inlineEventAttributes.forEach((attr) => {
|
|
710
714
|
if (el.hasAttribute(attr)) {
|
|
711
715
|
interactiveElementsRegistry$1.add(el);
|
|
712
716
|
}
|
|
713
717
|
});
|
|
714
718
|
});
|
|
715
719
|
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
+
function scheduleInlineEventInspection(doc) {
|
|
721
|
+
if (!doc || typeof doc.addEventListener !== "function" || typeof doc.querySelectorAll !== "function") {
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
724
|
+
try {
|
|
725
|
+
if (doc.readyState === "complete" || doc.readyState === "interactive") {
|
|
726
|
+
inspectInlineEventHandlers(doc);
|
|
727
|
+
} else {
|
|
728
|
+
doc.addEventListener("DOMContentLoaded", () => inspectInlineEventHandlers(doc), {
|
|
729
|
+
once: true,
|
|
730
|
+
capture: false
|
|
731
|
+
});
|
|
732
|
+
}
|
|
733
|
+
} catch (e2) {
|
|
734
|
+
console.warn("[inlineEventInspection] Failed to inspect document:", e2);
|
|
735
|
+
}
|
|
720
736
|
}
|
|
721
737
|
let _id = 1;
|
|
722
738
|
const tagNameRegex = new RegExp("[^a-z0-9-_:]");
|
|
@@ -835,9 +851,29 @@ function transformAttribute(doc, tagName, name, value) {
|
|
|
835
851
|
}
|
|
836
852
|
return value;
|
|
837
853
|
}
|
|
838
|
-
function
|
|
854
|
+
function isIgnoreAttribute(tagName, name, _value) {
|
|
839
855
|
return (tagName === "video" || tagName === "audio") && name === "autoplay";
|
|
840
856
|
}
|
|
857
|
+
function cleanAttributes(doc, element, ignoreAttribute) {
|
|
858
|
+
const tagName = getValidTagName$1(element);
|
|
859
|
+
const attributes = {};
|
|
860
|
+
const len = element.attributes.length;
|
|
861
|
+
for (let i2 = 0; i2 < len; i2++) {
|
|
862
|
+
const attr = element.attributes[i2];
|
|
863
|
+
const name = attr.name;
|
|
864
|
+
const value = attr.value;
|
|
865
|
+
const shouldIgnoreByName = typeof ignoreAttribute === "string" ? name === ignoreAttribute : ignoreAttribute.test(name);
|
|
866
|
+
if (!shouldIgnoreByName && !isIgnoreAttribute(tagName, name)) {
|
|
867
|
+
attributes[name] = transformAttribute(
|
|
868
|
+
doc,
|
|
869
|
+
tagName,
|
|
870
|
+
toLowerCase(name),
|
|
871
|
+
value
|
|
872
|
+
);
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
return attributes;
|
|
876
|
+
}
|
|
841
877
|
function _isBlockedElement(element, blockClass, blockSelector) {
|
|
842
878
|
try {
|
|
843
879
|
if (typeof blockClass === "string") {
|
|
@@ -967,6 +1003,7 @@ function serializeNode(n2, options) {
|
|
|
967
1003
|
mirror: mirror2,
|
|
968
1004
|
blockClass,
|
|
969
1005
|
blockSelector,
|
|
1006
|
+
ignoreAttribute,
|
|
970
1007
|
needsMask,
|
|
971
1008
|
inlineStylesheet,
|
|
972
1009
|
maskInputOptions = {},
|
|
@@ -1011,6 +1048,7 @@ function serializeNode(n2, options) {
|
|
|
1011
1048
|
doc,
|
|
1012
1049
|
blockClass,
|
|
1013
1050
|
blockSelector,
|
|
1051
|
+
ignoreAttribute,
|
|
1014
1052
|
inlineStylesheet,
|
|
1015
1053
|
maskInputOptions,
|
|
1016
1054
|
maskInputFn,
|
|
@@ -1088,6 +1126,7 @@ function serializeElementNode(n2, options) {
|
|
|
1088
1126
|
doc,
|
|
1089
1127
|
blockClass,
|
|
1090
1128
|
blockSelector,
|
|
1129
|
+
ignoreAttribute,
|
|
1091
1130
|
inlineStylesheet,
|
|
1092
1131
|
maskInputOptions = {},
|
|
1093
1132
|
maskInputFn,
|
|
@@ -1101,19 +1140,7 @@ function serializeElementNode(n2, options) {
|
|
|
1101
1140
|
} = options;
|
|
1102
1141
|
const needBlock = _isBlockedElement(n2, blockClass, blockSelector);
|
|
1103
1142
|
const tagName = getValidTagName$1(n2);
|
|
1104
|
-
let attributes =
|
|
1105
|
-
const len = n2.attributes.length;
|
|
1106
|
-
for (let i2 = 0; i2 < len; i2++) {
|
|
1107
|
-
const attr = n2.attributes[i2];
|
|
1108
|
-
if (!ignoreAttribute(tagName, attr.name, attr.value)) {
|
|
1109
|
-
attributes[attr.name] = transformAttribute(
|
|
1110
|
-
doc,
|
|
1111
|
-
tagName,
|
|
1112
|
-
toLowerCase(attr.name),
|
|
1113
|
-
attr.value
|
|
1114
|
-
);
|
|
1115
|
-
}
|
|
1116
|
-
}
|
|
1143
|
+
let attributes = cleanAttributes(doc, n2, ignoreAttribute);
|
|
1117
1144
|
if (tagName === "link" && inlineStylesheet) {
|
|
1118
1145
|
const stylesheet = Array.from(doc.styleSheets).find((s2) => {
|
|
1119
1146
|
return s2.href === n2.href;
|
|
@@ -1327,6 +1354,7 @@ function serializeNodeWithId(n2, options) {
|
|
|
1327
1354
|
blockSelector,
|
|
1328
1355
|
maskTextClass,
|
|
1329
1356
|
maskTextSelector,
|
|
1357
|
+
ignoreAttribute,
|
|
1330
1358
|
skipChild = false,
|
|
1331
1359
|
inlineStylesheet = true,
|
|
1332
1360
|
maskInputOptions = {},
|
|
@@ -1361,6 +1389,7 @@ function serializeNodeWithId(n2, options) {
|
|
|
1361
1389
|
mirror: mirror2,
|
|
1362
1390
|
blockClass,
|
|
1363
1391
|
blockSelector,
|
|
1392
|
+
ignoreAttribute,
|
|
1364
1393
|
needsMask,
|
|
1365
1394
|
inlineStylesheet,
|
|
1366
1395
|
maskInputOptions,
|
|
@@ -1413,6 +1442,7 @@ function serializeNodeWithId(n2, options) {
|
|
|
1413
1442
|
needsMask,
|
|
1414
1443
|
maskTextClass,
|
|
1415
1444
|
maskTextSelector,
|
|
1445
|
+
ignoreAttribute,
|
|
1416
1446
|
skipChild,
|
|
1417
1447
|
inlineStylesheet,
|
|
1418
1448
|
maskInputOptions,
|
|
@@ -1472,6 +1502,7 @@ function serializeNodeWithId(n2, options) {
|
|
|
1472
1502
|
needsMask,
|
|
1473
1503
|
maskTextClass,
|
|
1474
1504
|
maskTextSelector,
|
|
1505
|
+
ignoreAttribute,
|
|
1475
1506
|
skipChild: false,
|
|
1476
1507
|
inlineStylesheet,
|
|
1477
1508
|
maskInputOptions,
|
|
@@ -1513,6 +1544,7 @@ function serializeNodeWithId(n2, options) {
|
|
|
1513
1544
|
needsMask,
|
|
1514
1545
|
maskTextClass,
|
|
1515
1546
|
maskTextSelector,
|
|
1547
|
+
ignoreAttribute,
|
|
1516
1548
|
skipChild: false,
|
|
1517
1549
|
inlineStylesheet,
|
|
1518
1550
|
maskInputOptions,
|
|
@@ -1550,6 +1582,7 @@ function snapshot(n2, options) {
|
|
|
1550
1582
|
blockSelector = null,
|
|
1551
1583
|
maskTextClass = "rr-mask",
|
|
1552
1584
|
maskTextSelector = null,
|
|
1585
|
+
ignoreAttribute = "rr-ignore-attr",
|
|
1553
1586
|
inlineStylesheet = true,
|
|
1554
1587
|
inlineImages = false,
|
|
1555
1588
|
recordCanvas = false,
|
|
@@ -1566,6 +1599,7 @@ function snapshot(n2, options) {
|
|
|
1566
1599
|
stylesheetLoadTimeout,
|
|
1567
1600
|
keepIframeSrcFn = () => false
|
|
1568
1601
|
} = options || {};
|
|
1602
|
+
scheduleInlineEventInspection(n2);
|
|
1569
1603
|
const maskInputOptions = maskAllInputs === true ? {
|
|
1570
1604
|
color: true,
|
|
1571
1605
|
date: true,
|
|
@@ -1609,6 +1643,7 @@ function snapshot(n2, options) {
|
|
|
1609
1643
|
blockSelector,
|
|
1610
1644
|
maskTextClass,
|
|
1611
1645
|
maskTextSelector,
|
|
1646
|
+
ignoreAttribute,
|
|
1612
1647
|
skipChild: false,
|
|
1613
1648
|
inlineStylesheet,
|
|
1614
1649
|
maskInputOptions,
|
|
@@ -5684,59 +5719,27 @@ const interactiveEvents = [
|
|
|
5684
5719
|
"touchend",
|
|
5685
5720
|
"touchcancel"
|
|
5686
5721
|
];
|
|
5687
|
-
const inlineEventAttributes = [
|
|
5688
|
-
"onclick",
|
|
5689
|
-
"ondblclick",
|
|
5690
|
-
"onmousedown",
|
|
5691
|
-
"onmouseup",
|
|
5692
|
-
"onmouseover",
|
|
5693
|
-
"onmouseout",
|
|
5694
|
-
"onmousemove",
|
|
5695
|
-
"onfocus",
|
|
5696
|
-
"onblur",
|
|
5697
|
-
"onkeydown",
|
|
5698
|
-
"onkeypress",
|
|
5699
|
-
"onkeyup",
|
|
5700
|
-
"onchange",
|
|
5701
|
-
"oninput",
|
|
5702
|
-
"onsubmit",
|
|
5703
|
-
"onreset",
|
|
5704
|
-
"onselect",
|
|
5705
|
-
"oncontextmenu",
|
|
5706
|
-
"ontouchstart",
|
|
5707
|
-
"ontouchmove",
|
|
5708
|
-
"ontouchend",
|
|
5709
|
-
"ontouchcancel"
|
|
5710
|
-
];
|
|
5711
5722
|
const interactiveElementsRegistry = /* @__PURE__ */ new WeakSet();
|
|
5712
|
-
|
|
5713
|
-
EventTarget.prototype.addEventListener
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
5720
|
-
}
|
|
5721
|
-
};
|
|
5722
|
-
const originalRemoveEventListener = EventTarget.prototype.removeEventListener;
|
|
5723
|
-
EventTarget.prototype.removeEventListener = function(type, listener, options) {
|
|
5724
|
-
originalRemoveEventListener.call(this, type, listener, options);
|
|
5725
|
-
};
|
|
5726
|
-
function inspectInlineEventHandlers() {
|
|
5727
|
-
const allElements = document.querySelectorAll("*");
|
|
5728
|
-
allElements.forEach((el) => {
|
|
5729
|
-
inlineEventAttributes.forEach((attr) => {
|
|
5730
|
-
if (el.hasAttribute(attr)) {
|
|
5731
|
-
interactiveElementsRegistry.add(el);
|
|
5723
|
+
if (typeof Element !== "undefined" && typeof EventTarget !== "undefined") {
|
|
5724
|
+
const originalAddEventListener = EventTarget.prototype.addEventListener;
|
|
5725
|
+
EventTarget.prototype.addEventListener = function(type, listener, options) {
|
|
5726
|
+
originalAddEventListener.call(this, type, listener, options);
|
|
5727
|
+
if (this instanceof Element) {
|
|
5728
|
+
const eventType = type.toLowerCase();
|
|
5729
|
+
if (interactiveEvents.includes(eventType)) {
|
|
5730
|
+
interactiveElementsRegistry.add(this);
|
|
5732
5731
|
}
|
|
5733
|
-
}
|
|
5734
|
-
}
|
|
5732
|
+
}
|
|
5733
|
+
};
|
|
5735
5734
|
}
|
|
5736
|
-
if (
|
|
5737
|
-
|
|
5738
|
-
|
|
5739
|
-
|
|
5735
|
+
if (typeof Element !== "undefined" && typeof EventTarget !== "undefined") {
|
|
5736
|
+
const originalRemoveEventListener = EventTarget.prototype.removeEventListener;
|
|
5737
|
+
EventTarget.prototype.removeEventListener = function(type, listener, options) {
|
|
5738
|
+
originalRemoveEventListener.call(this, type, listener, options);
|
|
5739
|
+
if (this instanceof Element) {
|
|
5740
|
+
type.toLowerCase();
|
|
5741
|
+
}
|
|
5742
|
+
};
|
|
5740
5743
|
}
|
|
5741
5744
|
function getDefaultExportFromCjs(x2) {
|
|
5742
5745
|
return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
|
|
@@ -10813,7 +10816,7 @@ let nowTimestamp = Date.now;
|
|
|
10813
10816
|
if (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {
|
|
10814
10817
|
nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();
|
|
10815
10818
|
}
|
|
10816
|
-
function getWindowScroll(win) {
|
|
10819
|
+
function getWindowScroll(win = window) {
|
|
10817
10820
|
var _a2, _b2, _c, _d;
|
|
10818
10821
|
const doc = win.document;
|
|
10819
10822
|
return {
|
|
@@ -10821,11 +10824,13 @@ function getWindowScroll(win) {
|
|
|
10821
10824
|
top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0
|
|
10822
10825
|
};
|
|
10823
10826
|
}
|
|
10824
|
-
function getWindowHeight() {
|
|
10825
|
-
|
|
10827
|
+
function getWindowHeight(win = window) {
|
|
10828
|
+
const doc = win.document;
|
|
10829
|
+
return win.innerHeight || doc.documentElement && doc.documentElement.clientHeight || doc.body && doc.body.clientHeight || 0;
|
|
10826
10830
|
}
|
|
10827
|
-
function getWindowWidth() {
|
|
10828
|
-
|
|
10831
|
+
function getWindowWidth(win = window) {
|
|
10832
|
+
const doc = win.document;
|
|
10833
|
+
return win.innerWidth || doc.documentElement && doc.documentElement.clientWidth || doc.body && doc.body.clientWidth || 0;
|
|
10829
10834
|
}
|
|
10830
10835
|
function closestElementOfNode(node2) {
|
|
10831
10836
|
if (!node2) {
|
|
@@ -11294,6 +11299,7 @@ class MutationBuffer {
|
|
|
11294
11299
|
__publicField(this, "blockSelector");
|
|
11295
11300
|
__publicField(this, "maskTextClass");
|
|
11296
11301
|
__publicField(this, "maskTextSelector");
|
|
11302
|
+
__publicField(this, "ignoreAttribute");
|
|
11297
11303
|
__publicField(this, "inlineStylesheet");
|
|
11298
11304
|
__publicField(this, "maskInputOptions");
|
|
11299
11305
|
__publicField(this, "maskTextFn");
|
|
@@ -11357,6 +11363,7 @@ class MutationBuffer {
|
|
|
11357
11363
|
blockSelector: this.blockSelector,
|
|
11358
11364
|
maskTextClass: this.maskTextClass,
|
|
11359
11365
|
maskTextSelector: this.maskTextSelector,
|
|
11366
|
+
ignoreAttribute: this.ignoreAttribute || "",
|
|
11360
11367
|
skipChild: true,
|
|
11361
11368
|
newlyAddedElement: true,
|
|
11362
11369
|
inlineStylesheet: this.inlineStylesheet,
|
|
@@ -11585,7 +11592,7 @@ class MutationBuffer {
|
|
|
11585
11592
|
if (attributeName === "type" && target.tagName === "INPUT" && (m.oldValue || "").toLowerCase() === "password") {
|
|
11586
11593
|
target.setAttribute("data-rr-is-password", "true");
|
|
11587
11594
|
}
|
|
11588
|
-
if (!
|
|
11595
|
+
if (!isIgnoreAttribute(target.tagName, attributeName)) {
|
|
11589
11596
|
item.attributes[attributeName] = transformAttribute(
|
|
11590
11597
|
this.doc,
|
|
11591
11598
|
toLowerCase(target.tagName),
|
|
@@ -11704,6 +11711,7 @@ class MutationBuffer {
|
|
|
11704
11711
|
"blockSelector",
|
|
11705
11712
|
"maskTextClass",
|
|
11706
11713
|
"maskTextSelector",
|
|
11714
|
+
"ignoreAttribute",
|
|
11707
11715
|
"inlineStylesheet",
|
|
11708
11716
|
"maskInputOptions",
|
|
11709
11717
|
"maskTextFn",
|
|
@@ -13953,6 +13961,7 @@ function record(options = {}) {
|
|
|
13953
13961
|
blockSelector = null,
|
|
13954
13962
|
ignoreClass = "rr-ignore",
|
|
13955
13963
|
ignoreSelector = null,
|
|
13964
|
+
ignoreAttribute = "rr-ignore-attribute",
|
|
13956
13965
|
maskTextClass = "rr-mask",
|
|
13957
13966
|
maskTextSelector = null,
|
|
13958
13967
|
inlineStylesheet = true,
|
|
@@ -14148,7 +14157,7 @@ function record(options = {}) {
|
|
|
14148
14157
|
canvasManager = new CanvasManager({
|
|
14149
14158
|
recordCanvas,
|
|
14150
14159
|
mutationCb: wrappedCanvasMutationEmit,
|
|
14151
|
-
win
|
|
14160
|
+
win,
|
|
14152
14161
|
blockClass,
|
|
14153
14162
|
blockSelector,
|
|
14154
14163
|
mirror,
|
|
@@ -14163,6 +14172,7 @@ function record(options = {}) {
|
|
|
14163
14172
|
blockSelector,
|
|
14164
14173
|
maskTextClass,
|
|
14165
14174
|
maskTextSelector,
|
|
14175
|
+
ignoreAttribute,
|
|
14166
14176
|
inlineStylesheet,
|
|
14167
14177
|
maskInputOptions,
|
|
14168
14178
|
dataURLOptions,
|
|
@@ -14189,8 +14199,8 @@ function record(options = {}) {
|
|
|
14189
14199
|
type: EventType.Meta,
|
|
14190
14200
|
data: {
|
|
14191
14201
|
href: win.location.href,
|
|
14192
|
-
width: getWindowWidth(),
|
|
14193
|
-
height: getWindowHeight()
|
|
14202
|
+
width: getWindowWidth(win),
|
|
14203
|
+
height: getWindowHeight(win)
|
|
14194
14204
|
}
|
|
14195
14205
|
},
|
|
14196
14206
|
isCheckout
|
|
@@ -14198,7 +14208,7 @@ function record(options = {}) {
|
|
|
14198
14208
|
stylesheetManager.reset();
|
|
14199
14209
|
shadowDomManager.init();
|
|
14200
14210
|
mutationBuffers.forEach((buf) => buf.lock());
|
|
14201
|
-
const node2 = snapshot(
|
|
14211
|
+
const node2 = snapshot(doc, {
|
|
14202
14212
|
mirror,
|
|
14203
14213
|
blockClass,
|
|
14204
14214
|
blockSelector,
|
|
@@ -14220,7 +14230,7 @@ function record(options = {}) {
|
|
|
14220
14230
|
stylesheetManager.trackLinkElement(n2);
|
|
14221
14231
|
}
|
|
14222
14232
|
if (hasShadowRoot(n2)) {
|
|
14223
|
-
shadowDomManager.addShadowRoot(index.shadowRoot(n2),
|
|
14233
|
+
shadowDomManager.addShadowRoot(index.shadowRoot(n2), doc);
|
|
14224
14234
|
}
|
|
14225
14235
|
},
|
|
14226
14236
|
onIframeLoad: (iframe, childSn) => {
|
|
@@ -14240,7 +14250,7 @@ function record(options = {}) {
|
|
|
14240
14250
|
type: EventType.FullSnapshot,
|
|
14241
14251
|
data: {
|
|
14242
14252
|
node: node2,
|
|
14243
|
-
initialOffset: getWindowScroll(
|
|
14253
|
+
initialOffset: getWindowScroll(win)
|
|
14244
14254
|
}
|
|
14245
14255
|
},
|
|
14246
14256
|
isCheckout
|
|
@@ -14349,6 +14359,7 @@ function record(options = {}) {
|
|
|
14349
14359
|
ignoreSelector,
|
|
14350
14360
|
maskTextClass,
|
|
14351
14361
|
maskTextSelector,
|
|
14362
|
+
ignoreAttribute,
|
|
14352
14363
|
maskInputOptions,
|
|
14353
14364
|
inlineStylesheet,
|
|
14354
14365
|
sampling,
|
|
@@ -14395,7 +14406,7 @@ function record(options = {}) {
|
|
|
14395
14406
|
});
|
|
14396
14407
|
const init = () => {
|
|
14397
14408
|
takeFullSnapshot$1();
|
|
14398
|
-
handlers.push(observe(
|
|
14409
|
+
handlers.push(observe(doc));
|
|
14399
14410
|
recording = true;
|
|
14400
14411
|
};
|
|
14401
14412
|
if (doc.readyState === "interactive" || doc.readyState === "complete") {
|
|
@@ -14420,7 +14431,7 @@ function record(options = {}) {
|
|
|
14420
14431
|
});
|
|
14421
14432
|
if (recordAfter === "load") init();
|
|
14422
14433
|
},
|
|
14423
|
-
|
|
14434
|
+
win
|
|
14424
14435
|
)
|
|
14425
14436
|
);
|
|
14426
14437
|
}
|