@applitools/dom-capture 11.2.3 → 11.2.5

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.
@@ -1,8 +1,8 @@
1
- /* @applitools/dom-capture@11.2.3 */
1
+ /* @applitools/dom-capture@11.2.5 */
2
2
  function __captureDomPoll() {
3
- var captureDomPoll=function(){"use strict";var t=function(){const t=function(t){return function(){function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const o=[];let r=0;for(let s=0;s<t.length;++s){const a=e(t,s);let c=0;a>0&&(c=a<128?1:a<2048?2:a<65536?3:a<2097152?4:a<67108864?5:6),r+c>n?(o.push(s),r=c):r+=c}return o};const o=n,r="SUCCESS",s="SUCCESS_CHUNKED",a="ERROR";var c=function(t,e,n={}){const c=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks){const n=JSON.stringify(t.value);t.chunks=o(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}if(t.from>=0)return{status:s,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:r,value:t.value}}return t.error?{status:a,error:t.error}:{status:"WIP"}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(c.status===r||c.status===a||c.status===s&&c.done)&&(t[e]=null),c};const i=c;var u={chunkify:n,pollify:function(t,e,n){return o=>function(){return e[n]||(e[n]={},t.apply(null,arguments).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message))),i(e,n,o)}},poll:c,absolutizeUrl:function(t,e){return new URL(t,e).href},isInlineFrame:function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)},isAccessibleFrame:function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}},l={EYES_NAMESPACE:"__EYES__APPLITOOLS__",DOM_CAPTURE_KEY:"domCaptureResult",NODE_TYPES:{ELEMENT:1,TEXT:3,DOCUMENT_FRAGMENT:11},DEFAULT_STYLE_PROPS:["background-repeat","background-origin","background-position","background-color","background-image","background-size","border-width","border-color","border-style","color","display","font-size","font-weight","font-family","line-height","margin","opacity","overflow","padding","visibility","text-align","position","border-radius","z-index"],DEFAULT_RECT_PROPS:["width","height","top","left"],DEFAULT_IGNORED_TAG_NAMES:["HEAD","SCRIPT"]};const d=/url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;const{NODE_TYPES:f}=l;function m(t){return Array.prototype.filter.call(t.parentNode.childNodes,(e=>e.tagName===t.tagName)).indexOf(t)+1}var h=function(e){var n=t.implementation.createHTMLDocument(""),o=n.createElement("style");return o.textContent=e,n.body.appendChild(o),o.sheet},p=function(t){const e=Array.from(t.attributes).find((t=>"href"===t.name.toLowerCase()));return e&&e.value},g=function(t){if(t.nodeName&&"LINK"===t.nodeName.toUpperCase()&&t.attributes){const e=new Map(Array.from(t.attributes,(t=>[t.name.toLowerCase(),t.value.toLowerCase()])));return"stylesheet"===e.get("rel")||"style"===e.get("as")&&["preload","prefetch"].includes(e.get("rel"))}return!1};const y=p,w=g;const{absolutizeUrl:E,isInlineFrame:C}=u,T=h,N=p,S=g,{NODE_TYPES:b}=l;const{absolutizeUrl:A,isInlineFrame:$}=u,D=function(t){const e=t?t.match(d):void 0;return e?e[1]:e},_=async function({bgImages:t,timeout:e=5e3,Image:n=window.Image}){return(await Promise.all(Array.from(t).map((t=>{return Promise.race([new Promise((e=>{const o=new n;o.onload=()=>e({url:t,width:o.naturalWidth,height:o.naturalHeight}),o.onerror=()=>e(),o.src=t})),(o=e,new Promise((t=>{setTimeout(t,o)})))]);var o})))).reduce(((t,e)=>(e&&(t[e.url]={width:e.width,height:e.height}),t)),{})},P=function t(e){if(!e.ownerDocument)return"";let n="",o=e,r=e.ownerDocument,s=r.defaultView.frameElement;for(;o!==r&&(!o||o.nodeType!==f.DOCUMENT_FRAGMENT);)n=`${o.tagName}[${m(o)}]/${n}`,o=o.parentNode;return s&&(n=`${t(s)},${n}`),n.replace(/\/$/,"")},R=function({parseCss:t,CSSImportRule:e,absolutizeUrl:n,getCssFromCache:o,unfetchedToken:r}){return function s(a,c){let i,u="";try{const l=t(a);for(const t of Array.from(l.cssRules))if(t instanceof e){const e=n(t.href,c),a=o(e);if(void 0!==a){const{bundledCss:t,unfetchedResources:n}=s(a,e);n&&(i=new Set(n)),u=`${u}${t}`}else i=new Set([e]),u=`\n${r}${e}${r}`}}catch(t){console.log(`error during getBundledCssFromCssText, styleBaseUrl=${c}`,t)}var l,d;return u=`${u}${l=a,d=c,`\n/** ${d} **/\n${l}`}`,{bundledCss:u,unfetchedResources:i}}},U=h,v=function(t){const e=["before","after"];try{let n=[];return e.forEach((e=>{const o=t.ownerDocument.defaultView.getComputedStyle(t,`:${e}`);o&&"none"!==o.getPropertyValue("content")&&n.push(e)})),n.join("_and_")}catch(t){return!1}},O=function(t,{fetchTimeLimit:e}={}){return async function(n){const o=new AbortController,r=[t(n,{cache:"force-cache",signal:o.signal}).then((t=>{if(t.ok)return t.text();console.log("/failed to fetch (status "+t.status+") css from: "+n+"/")})).catch((t=>{console.log("/failed to fetch (error "+t.toString()+") css from: "+n+"/")}))];return Number.isNaN(Number(e))||r.push(new Promise((t=>setTimeout(t,e))).then((()=>o.abort()))),Promise.race(r)}},F=function({getCssFromCache:t,absolutizeUrl:e}){return function(n,o){let r,s,a;if(n&&function(t){return t.nodeName&&"STYLE"===t.nodeName.toUpperCase()}(n))r=Array.from(n.childNodes).map((t=>t.nodeValue)).join(""),s=o;else if(n&&w(n)){const c=y(n);!function(t){return t&&t.startsWith("data:")}(c)?(s=e(c,o),r=t(s)):(s=o,r=c.match(/,(.+)/)[1]),a=void 0===r}return{cssText:r,styleBaseUrl:s,isUnfetched:a}}},k=function({extractCssFromNode:t,getBundledCssFromCssText:e,unfetchedToken:n}){return function(o,r){const{styleBaseUrl:s,cssText:a,isUnfetched:c}=t(o,r);let i,u="";if(a){const{bundledCss:t,unfetchedResources:n}=e(a,s);u+=t,i=new Set(n)}else c&&(u+=`${n}${s}${n}`,i=new Set([s]));return{bundledCss:u,unfetchedResources:i}}},I=function(e){return async function(n=t){const o={},r=Date.now(),s=[];return function t(n,o,r,s){function c(t){if(s.push(async function(t,n,o){let r,s;t&&S(t)&&(s=E(N(t),n),r=await e(s),void 0!==r&&(o[s]=r)),r&&await a(r,s,o)}(t,o,r)),t.nodeType===b.ELEMENT)return"IFRAME"===t.tagName.toUpperCase()?u(t):i(t)}async function i(t){Array.prototype.map.call(t.childNodes,c)}async function u(e){if(i(e),e.contentDocument)try{const n=C(e)?e.baseURI:e.contentDocument.location.href;t(e.contentDocument,n,r,s)}catch(e){console.log(e)}}c(n.documentElement)}(n,n.location.href,o,s),await Promise.all(s),console.log("[prefetchAllCss]",Date.now()-r),function(t){return o[t]};async function a(t,n,o){try{const r=T(t),s=[];for(const t of Array.from(r.cssRules))t instanceof CSSImportRule&&s.push((async()=>{const r=E(t.href,n),s=await e(r);o[r]=s,void 0!==s&&await a(s,r,o)})());await Promise.all(s)}catch(t){console.log(`error during fetchBundledCss, resourceUrl=${n}`,t)}}}},{NODE_TYPES:L,DEFAULT_STYLE_PROPS:x,DEFAULT_RECT_PROPS:M,DEFAULT_IGNORED_TAG_NAMES:V}=l,B="1.3.0";const{pollify:Y}=u,{EYES_NAMESPACE:z,DOM_CAPTURE_KEY:G}=l,J=async function({doc:e=t,styleProps:n=x,rectProps:o=M,ignoredTagNames:r=V,addStats:s=!1,fetchTimeLimit:a=3e4}={}){
3
+ var captureDomPoll=function(){"use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const o=[];let r=0;for(let s=0;s<t.length;++s){const a=e(t,s);let c=0;a>0&&(c=a<128?1:a<2048?2:a<65536?3:a<2097152?4:a<67108864?5:6),r+c>n?(o.push(s),r=c):r+=c}return o};const o=n,r="WIP",s="SUCCESS",a="SUCCESS_CHUNKED",c="ERROR";var u=function(t,e,n={}){const u=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=o(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:c,error:t.message}}if(t.from>=0)return{status:a,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:s,value:t.value}}return t.error?{status:c,error:t.error}:{status:r}}return{status:c,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(u.status===s||u.status===c||u.status===a&&u.done)&&(t[e]=null),u};const i=u;var l={chunkify:n,pollify:function(t,e,n){return o=>function(){return e[n]||(e[n]={},t.apply(null,arguments).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message))),i(e,n,o)}},poll:u,absolutizeUrl:function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const o=new URL(t,e).href;return n?o:decodeURI(o)}catch(e){return n?t:decodeURI(t)}},isInlineFrame:function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)},isAccessibleFrame:function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}},d={EYES_NAMESPACE:"__EYES__APPLITOOLS__",DOM_CAPTURE_KEY:"domCaptureResult",NODE_TYPES:{ELEMENT:1,TEXT:3,DOCUMENT_FRAGMENT:11},DEFAULT_STYLE_PROPS:["background-repeat","background-origin","background-position","background-color","background-image","background-size","border-width","border-color","border-style","color","display","font-size","font-weight","font-family","line-height","margin","opacity","overflow","padding","visibility","text-align","position","border-radius","z-index"],DEFAULT_RECT_PROPS:["width","height","top","left"],DEFAULT_IGNORED_TAG_NAMES:["HEAD","SCRIPT"]};const f=/url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;const{NODE_TYPES:m}=d;function h(t){return Array.prototype.filter.call(t.parentNode.childNodes,(e=>e.tagName===t.tagName)).indexOf(t)+1}var p=function(e){var n=t.implementation.createHTMLDocument(""),o=n.createElement("style");return o.textContent=e,n.body.appendChild(o),o.sheet},g=function(t){const e=Array.from(t.attributes).find((t=>"href"===t.name.toLowerCase()));return e&&e.value},y=function(t){if(t.nodeName&&"LINK"===t.nodeName.toUpperCase()&&t.attributes){const e=new Map(Array.from(t.attributes,(t=>[t.name.toLowerCase(),t.value.toLowerCase()])));return"stylesheet"===e.get("rel")||"style"===e.get("as")&&["preload","prefetch"].includes(e.get("rel"))}return!1};const w=g,E=y;const{absolutizeUrl:C,isInlineFrame:T}=l,N=p,b=g,S=y,{NODE_TYPES:A}=d;const{absolutizeUrl:$,isInlineFrame:_}=l,R=function(t){const e=t?t.match(f):void 0;return e?e[1]:e},P=async function({bgImages:t,timeout:e=5e3,Image:n=window.Image}){return(await Promise.all(Array.from(t).map((t=>{return Promise.race([new Promise((e=>{const o=new n;o.onload=()=>e({url:t,width:o.naturalWidth,height:o.naturalHeight}),o.onerror=()=>e(),o.src=t})),(o=e,new Promise((t=>{setTimeout(t,o)})))]);var o})))).reduce(((t,e)=>(e&&(t[e.url]={width:e.width,height:e.height}),t)),{})},D=function t(e){if(!e.ownerDocument)return"";let n="",o=e,r=e.ownerDocument,s=r.defaultView.frameElement;for(;o!==r&&(!o||o.nodeType!==m.DOCUMENT_FRAGMENT);)n=`${o.tagName}[${h(o)}]/${n}`,o=o.parentNode;return s&&(n=`${t(s)},${n}`),n.replace(/\/$/,"")},U=function({parseCss:t,CSSImportRule:e,absolutizeUrl:n,getCssFromCache:o,unfetchedToken:r}){return function s(a,c){let u,i="";try{const l=t(a);for(const t of Array.from(l.cssRules))if(t instanceof e){const e=n(t.href,c),a=o(e);if(void 0!==a){const{bundledCss:t,unfetchedResources:n}=s(a,e);n&&(u=new Set(n)),i=`${i}${t}`}else u=new Set([e]),i=`\n${r}${e}${r}`}}catch(t){console.log(`error during getBundledCssFromCssText, styleBaseUrl=${c}`,t)}var l,d;return i=`${i}${l=a,d=c,`\n/** ${d} **/\n${l}`}`,{bundledCss:i,unfetchedResources:u}}},O=p,v=function(t){const e=["before","after"];try{let n=[];return e.forEach((e=>{const o=t.ownerDocument.defaultView.getComputedStyle(t,`:${e}`);o&&"none"!==o.getPropertyValue("content")&&n.push(e)})),n.join("_and_")}catch(t){return!1}},F=function(t,{fetchTimeLimit:e}={}){return async function(n){const o=new AbortController,r=[t(n,{cache:"force-cache",signal:o.signal}).then((t=>{if(t.ok)return t.text();console.log("/failed to fetch (status "+t.status+") css from: "+n+"/")})).catch((t=>{console.log("/failed to fetch (error "+t.toString()+") css from: "+n+"/")}))];return Number.isNaN(Number(e))||r.push(new Promise((t=>setTimeout(t,e))).then((()=>o.abort()))),Promise.race(r)}},I=function({getCssFromCache:t,absolutizeUrl:e}){return function(n,o){let r,s,a;if(n&&function(t){return t.nodeName&&"STYLE"===t.nodeName.toUpperCase()}(n))r=Array.from(n.childNodes).map((t=>t.nodeValue)).join(""),s=o;else if(n&&E(n)){const c=w(n);!function(t){return t&&t.startsWith("data:")}(c)?(s=e(c,o),r=t(s)):(s=o,r=c.match(/,(.+)/)[1]),a=void 0===r}return{cssText:r,styleBaseUrl:s,isUnfetched:a}}},k=function({extractCssFromNode:t,getBundledCssFromCssText:e,unfetchedToken:n}){return function(o,r){const{styleBaseUrl:s,cssText:a,isUnfetched:c}=t(o,r);let u,i="";if(a){const{bundledCss:t,unfetchedResources:n}=e(a,s);i+=t,u=new Set(n)}else c&&(i+=`${n}${s}${n}`,u=new Set([s]));return{bundledCss:i,unfetchedResources:u}}},L=function(e){return async function(n=t){const o={},r=Date.now(),s=[];return function t(n,o,r,s){function c(t){if(s.push(async function(t,n,o){let r,s;t&&S(t)&&(s=C(b(t),n),r=await e(s),void 0!==r&&(o[s]=r)),r&&await a(r,s,o)}(t,o,r)),t.nodeType===A.ELEMENT)return"IFRAME"===t.tagName.toUpperCase()?i(t):u(t)}async function u(t){Array.prototype.map.call(t.childNodes,c)}async function i(e){if(u(e),e.contentDocument)try{const n=T(e)?e.baseURI:e.contentDocument.location.href;t(e.contentDocument,n,r,s)}catch(e){console.log(e)}}c(n.documentElement)}(n,n.location.href,o,s),await Promise.all(s),console.log("[prefetchAllCss]",Date.now()-r),function(t){return o[t]};async function a(t,n,o){try{const r=N(t),s=[];for(const t of Array.from(r.cssRules))t instanceof CSSImportRule&&s.push((async()=>{const r=C(t.href,n),s=await e(r);o[r]=s,void 0!==s&&await a(s,r,o)})());await Promise.all(s)}catch(t){console.log(`error during fetchBundledCss, resourceUrl=${n}`,t)}}}},{NODE_TYPES:x,DEFAULT_STYLE_PROPS:M,DEFAULT_RECT_PROPS:V,DEFAULT_IGNORED_TAG_NAMES:B}=d;const{pollify:Y}=l,{EYES_NAMESPACE:z,DOM_CAPTURE_KEY:G}=d,j=async function({doc:e=t,styleProps:n=M,rectProps:o=V,ignoredTagNames:r=B,addStats:s=!1,fetchTimeLimit:a=3e4}={}){
4
4
  /* MARKER FOR TEST - DO NOT DELETE */
5
- arguments[1]&&(e=arguments[1]),arguments[2]&&(s=arguments[2]),arguments[3]&&(a=arguments[3]);const c={total:{},prefetchCss:{},doCaptureDoc:{},waitForImages:{}};function i(t){t.startTime=Date.now()}function u(t){t.endTime=Date.now(),t.elapsedTime=t.endTime-t.startTime}const l=[];i(c.total);const d=new Set,f=[],m="@@@@@",h="#####",p="-----";i(c.prefetchCss);const g=I(O(fetch,{fetchTimeLimit:a})),y=await g(e);u(c.prefetchCss);const w=R({parseCss:U,CSSImportRule:CSSImportRule,getCssFromCache:y,absolutizeUrl:A,unfetchedToken:h}),E=F({getCssFromCache:y,absolutizeUrl:A}),C=k({extractCssFromNode:E,getBundledCssFromCssText:w,unfetchedToken:h});i(c.doCaptureDoc);const T=j(e);u(c.doCaptureDoc),i(c.waitForImages),await Promise.all(l),u(c.waitForImages),T.version=B,T.scriptVersion="11.2.3";const N=f.length?`${f.join("\n")}\n`:"",S=d.size?`${Array.from(d).join("\n")}\n`:"",b=JSON.stringify({separator:p,cssStartToken:h,cssEndToken:h,iframeStartToken:`"${m}`,iframeEndToken:`${m}"`});function Y(){return s?`\n${p}\n${JSON.stringify(c)}`:""}u(c.total);const z=`${b}\n${S}${p}\n${N}${p}\n${JSON.stringify(T)}${Y()}`;return console.log("[captureFrame]",JSON.stringify(c)),z;function G(t){return Object.keys(t).length?t:void 0}function J(t){return{tagName:"#text",text:t.textContent}}function j(t,s=t.location&&t.location.href){const a=new Set;let c="";const i=u(t.documentElement||t);return i.css=c,l.push(_({bgImages:a}).then((t=>i.images=t))),i;function u(t){if(t.hasAttribute&&t.hasAttribute("data-applitools-skip"))return null;const{bundledCss:e,unfetchedResources:n}=C(t,s);if(c+=e,n)for(const t of n)d.add(t);switch(t.nodeType){case L.TEXT:return J(t);case L.ELEMENT:return"IFRAME"===t.tagName.toUpperCase()?function(t){const e=h(t);let n;try{n=t.contentDocument}catch(t){return o(),e}try{n?e.childNodes=[j(n,$(t)?t.baseURI:n.location.href)]:o()}catch(t){console.log("error in iframeToJSON",t)}return e;function o(){const n=P(t);f.push(n),e.childNodes=[`${m}${n}${m}`]}}(t):h(t);case L.DOCUMENT_FRAGMENT:return{childNodes:Array.prototype.map.call(t.childNodes,u).filter(Boolean)};default:return null}}function h(t){const c=Array.prototype.map.call(t.childNodes,u).filter(Boolean),i=t.shadowRoot&&j(t.shadowRoot,s),l=t.tagName.toUpperCase();if(r.indexOf(l)>-1)return null;const d=e.defaultView.getComputedStyle(t),f=t.getBoundingClientRect(),m={};for(const t of n)m[t]=d.getPropertyValue(t);m["border-width"]||(m["border-width"]=`${d.getPropertyValue("border-top-width")} ${d.getPropertyValue("border-right-width")} ${d.getPropertyValue("border-bottom-width")} ${d.getPropertyValue("border-left-width")}`);const h={};for(const t of o)h[t]=f[t];const p=Array.from(t.attributes).map((t=>({key:t.name,value:t.value}))).reduce(((t,e)=>(t[e.key]=e.value,t)),{}),g=D(d.getPropertyValue("background-image"));g&&a.add(g);const y=v(t);y&&(p["data-applitools-has-pseudo"]=y);const w={tagName:l,style:G(m),rect:G(h),attributes:G(p),childNodes:c};return i&&(w.shadowRoot=i),w}}};window[z]=window[z]||{};const j=Y(J,window[z],G);return function(t){return JSON.stringify(j(t)(t))}}()};let e=!0;try{let n=document.head.querySelector("[data-applitools-sandbox]");n||(n=document.createElement("iframe"),n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n));const o=window.crypto.getRandomValues(new Uint32Array(1))[0],r=n.contentDocument.createElement("script");r.textContent=`window['ctor-${o}'] = ${t.toString()};`,n.contentDocument.head.appendChild(r);const s=n.contentWindow[`ctor-${o}`];if("function"!=typeof s)throw new Error("Sandbox failed to extract function");return e=!1,s(document).apply(null,arguments)}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}};return t}();
5
+ arguments[1]&&(e=arguments[1]),arguments[2]&&(s=arguments[2]),arguments[3]&&(a=arguments[3]);const c={total:{},prefetchCss:{},doCaptureDoc:{},waitForImages:{}};function u(t){t.startTime=Date.now()}function i(t){t.endTime=Date.now(),t.elapsedTime=t.endTime-t.startTime}const l=[];u(c.total);const d=new Set,f=[],m="@@@@@",h="#####",p="-----";u(c.prefetchCss);const g=L(F(fetch,{fetchTimeLimit:a})),y=await g(e);i(c.prefetchCss);const w=U({parseCss:O,CSSImportRule:CSSImportRule,getCssFromCache:y,absolutizeUrl:$,unfetchedToken:h}),E=I({getCssFromCache:y,absolutizeUrl:$}),C=k({extractCssFromNode:E,getBundledCssFromCssText:w,unfetchedToken:h});u(c.doCaptureDoc);const T=function t(s,a=s.location&&s.location.href){const c=new Set;let u="";const i=h(s.documentElement||s);return i.css=u,l.push(P({bgImages:c}).then((t=>i.images=t))),i;function h(e){if(e.hasAttribute&&e.hasAttribute("data-applitools-skip"))return null;const{bundledCss:n,unfetchedResources:o}=C(e,a);if(u+=n,o)for(const t of o)d.add(t);switch(e.nodeType){case x.TEXT:return function(t){return{tagName:"#text",text:t.textContent}}(e);case x.ELEMENT:return"IFRAME"===e.tagName.toUpperCase()?function(e){const n=p(e);let o;try{o=e.contentDocument}catch(e){return r(),n}try{o?n.childNodes=[t(o,_(e)?e.baseURI:o.location.href)]:r()}catch(e){console.log("error in iframeToJSON",e)}return n;function r(){const t=D(e);f.push(t),n.childNodes=[`${m}${t}${m}`]}}(e):p(e);case x.DOCUMENT_FRAGMENT:return{childNodes:Array.prototype.map.call(e.childNodes,h).filter(Boolean)};default:return null}}function p(s){const u=Array.prototype.map.call(s.childNodes,h).filter(Boolean),i=s.shadowRoot&&t(s.shadowRoot,a),l=s.tagName.toUpperCase();if(r.indexOf(l)>-1)return null;const d=e.defaultView.getComputedStyle(s),f=s.getBoundingClientRect(),m={};for(const t of n)m[t]=d.getPropertyValue(t);m["border-width"]||(m["border-width"]=`${d.getPropertyValue("border-top-width")} ${d.getPropertyValue("border-right-width")} ${d.getPropertyValue("border-bottom-width")} ${d.getPropertyValue("border-left-width")}`);const p={};for(const t of o)p[t]=f[t];const g=Array.from(s.attributes).map((t=>({key:t.name,value:t.value}))).reduce(((t,e)=>(t[e.key]=e.value,t)),{}),y=R(d.getPropertyValue("background-image"));y&&c.add(y);const w=v(s);w&&(g["data-applitools-has-pseudo"]=w);const E={tagName:l,style:Y(m),rect:Y(p),attributes:Y(g),childNodes:u};return i&&(E.shadowRoot=i),E}}(e);i(c.doCaptureDoc),u(c.waitForImages),await Promise.all(l),i(c.waitForImages),T.version="1.3.0",T.scriptVersion="11.2.5";const N=f.length?`${f.join("\n")}\n`:"",b=d.size?`${Array.from(d).join("\n")}\n`:"",S=JSON.stringify({separator:p,cssStartToken:h,cssEndToken:h,iframeStartToken:`"${m}`,iframeEndToken:`${m}"`});i(c.total);const A=`${S}\n${b}${p}\n${N}${p}\n${JSON.stringify(T)}${s?`\n${p}\n${JSON.stringify(c)}`:""}`;return console.log("[captureFrame]",JSON.stringify(c)),A;function Y(t){return Object.keys(t).length?t:void 0}};window[z]=window[z]||{};const J=Y(j,window[z],G);return function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}((function(t){return JSON.stringify(J(t)(t))}))}()};let e=!0;try{let n=document.head.querySelector("[data-applitools-sandbox]");n||(n=document.createElement("iframe"),n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n));const o=window.crypto.getRandomValues(new Uint32Array(1))[0],r=n.contentDocument.createElement("script");r.textContent=`window['ctor-${o}'] = ${t.toString()};`,n.contentDocument.head.appendChild(r);const s=n.contentWindow[`ctor-${o}`];if("function"!=typeof s)throw new Error("Sandbox failed to extract function");return e=!1,s(document).apply(null,arguments)}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}};return t(e)}();
6
6
 
7
7
  return captureDomPoll.apply(this, arguments);
8
8
  }
@@ -1,4 +1,4 @@
1
- /* @applitools/dom-capture@11.2.3 */
2
- "use strict";var t=function(){const t=function(t){return function(){function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const o=[];let r=0;for(let s=0;s<t.length;++s){const a=e(t,s);let c=0;a>0&&(c=a<128?1:a<2048?2:a<65536?3:a<2097152?4:a<67108864?5:6),r+c>n?(o.push(s),r=c):r+=c}return o};const o=n,r="SUCCESS",s="SUCCESS_CHUNKED",a="ERROR";var c=function(t,e,n={}){const c=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks){const n=JSON.stringify(t.value);t.chunks=o(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}if(t.from>=0)return{status:s,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:r,value:t.value}}return t.error?{status:a,error:t.error}:{status:"WIP"}}return{status:a,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(c.status===r||c.status===a||c.status===s&&c.done)&&(t[e]=null),c};const i=c;var u={chunkify:n,pollify:function(t,e,n){return o=>function(){return e[n]||(e[n]={},t.apply(null,arguments).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message))),i(e,n,o)}},poll:c,absolutizeUrl:function(t,e){return new URL(t,e).href},isInlineFrame:function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)},isAccessibleFrame:function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}},l={EYES_NAMESPACE:"__EYES__APPLITOOLS__",DOM_CAPTURE_KEY:"domCaptureResult",NODE_TYPES:{ELEMENT:1,TEXT:3,DOCUMENT_FRAGMENT:11},DEFAULT_STYLE_PROPS:["background-repeat","background-origin","background-position","background-color","background-image","background-size","border-width","border-color","border-style","color","display","font-size","font-weight","font-family","line-height","margin","opacity","overflow","padding","visibility","text-align","position","border-radius","z-index"],DEFAULT_RECT_PROPS:["width","height","top","left"],DEFAULT_IGNORED_TAG_NAMES:["HEAD","SCRIPT"]};const d=/url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;const{NODE_TYPES:f}=l;function m(t){return Array.prototype.filter.call(t.parentNode.childNodes,(e=>e.tagName===t.tagName)).indexOf(t)+1}var h=function(e){var n=t.implementation.createHTMLDocument(""),o=n.createElement("style");return o.textContent=e,n.body.appendChild(o),o.sheet},p=function(t){const e=Array.from(t.attributes).find((t=>"href"===t.name.toLowerCase()));return e&&e.value},g=function(t){if(t.nodeName&&"LINK"===t.nodeName.toUpperCase()&&t.attributes){const e=new Map(Array.from(t.attributes,(t=>[t.name.toLowerCase(),t.value.toLowerCase()])));return"stylesheet"===e.get("rel")||"style"===e.get("as")&&["preload","prefetch"].includes(e.get("rel"))}return!1};const y=p,w=g;const{absolutizeUrl:E,isInlineFrame:C}=u,T=h,N=p,S=g,{NODE_TYPES:b}=l;const{absolutizeUrl:A,isInlineFrame:$}=u,_=function(t){const e=t?t.match(d):void 0;return e?e[1]:e},D=async function({bgImages:t,timeout:e=5e3,Image:n=window.Image}){return(await Promise.all(Array.from(t).map((t=>{return Promise.race([new Promise((e=>{const o=new n;o.onload=()=>e({url:t,width:o.naturalWidth,height:o.naturalHeight}),o.onerror=()=>e(),o.src=t})),(o=e,new Promise((t=>{setTimeout(t,o)})))]);var o})))).reduce(((t,e)=>(e&&(t[e.url]={width:e.width,height:e.height}),t)),{})},R=function t(e){if(!e.ownerDocument)return"";let n="",o=e,r=e.ownerDocument,s=r.defaultView.frameElement;for(;o!==r&&(!o||o.nodeType!==f.DOCUMENT_FRAGMENT);)n=`${o.tagName}[${m(o)}]/${n}`,o=o.parentNode;return s&&(n=`${t(s)},${n}`),n.replace(/\/$/,"")},P=function({parseCss:t,CSSImportRule:e,absolutizeUrl:n,getCssFromCache:o,unfetchedToken:r}){return function s(a,c){let i,u="";try{const l=t(a);for(const t of Array.from(l.cssRules))if(t instanceof e){const e=n(t.href,c),a=o(e);if(void 0!==a){const{bundledCss:t,unfetchedResources:n}=s(a,e);n&&(i=new Set(n)),u=`${u}${t}`}else i=new Set([e]),u=`\n${r}${e}${r}`}}catch(t){console.log(`error during getBundledCssFromCssText, styleBaseUrl=${c}`,t)}var l,d;return u=`${u}${l=a,d=c,`\n/** ${d} **/\n${l}`}`,{bundledCss:u,unfetchedResources:i}}},U=h,v=function(t){const e=["before","after"];try{let n=[];return e.forEach((e=>{const o=t.ownerDocument.defaultView.getComputedStyle(t,`:${e}`);o&&"none"!==o.getPropertyValue("content")&&n.push(e)})),n.join("_and_")}catch(t){return!1}},O=function(t,{fetchTimeLimit:e}={}){return async function(n){const o=new AbortController,r=[t(n,{cache:"force-cache",signal:o.signal}).then((t=>{if(t.ok)return t.text();console.log("/failed to fetch (status "+t.status+") css from: "+n+"/")})).catch((t=>{console.log("/failed to fetch (error "+t.toString()+") css from: "+n+"/")}))];return Number.isNaN(Number(e))||r.push(new Promise((t=>setTimeout(t,e))).then((()=>o.abort()))),Promise.race(r)}},F=function({getCssFromCache:t,absolutizeUrl:e}){return function(n,o){let r,s,a;if(n&&function(t){return t.nodeName&&"STYLE"===t.nodeName.toUpperCase()}(n))r=Array.from(n.childNodes).map((t=>t.nodeValue)).join(""),s=o;else if(n&&w(n)){const c=y(n);!function(t){return t&&t.startsWith("data:")}(c)?(s=e(c,o),r=t(s)):(s=o,r=c.match(/,(.+)/)[1]),a=void 0===r}return{cssText:r,styleBaseUrl:s,isUnfetched:a}}},k=function({extractCssFromNode:t,getBundledCssFromCssText:e,unfetchedToken:n}){return function(o,r){const{styleBaseUrl:s,cssText:a,isUnfetched:c}=t(o,r);let i,u="";if(a){const{bundledCss:t,unfetchedResources:n}=e(a,s);u+=t,i=new Set(n)}else c&&(u+=`${n}${s}${n}`,i=new Set([s]));return{bundledCss:u,unfetchedResources:i}}},I=function(e){return async function(n=t){const o={},r=Date.now(),s=[];return function t(n,o,r,s){function c(t){if(s.push(async function(t,n,o){let r,s;t&&S(t)&&(s=E(N(t),n),r=await e(s),void 0!==r&&(o[s]=r)),r&&await a(r,s,o)}(t,o,r)),t.nodeType===b.ELEMENT)return"IFRAME"===t.tagName.toUpperCase()?u(t):i(t)}async function i(t){Array.prototype.map.call(t.childNodes,c)}async function u(e){if(i(e),e.contentDocument)try{const n=C(e)?e.baseURI:e.contentDocument.location.href;t(e.contentDocument,n,r,s)}catch(e){console.log(e)}}c(n.documentElement)}(n,n.location.href,o,s),await Promise.all(s),console.log("[prefetchAllCss]",Date.now()-r),function(t){return o[t]};async function a(t,n,o){try{const r=T(t),s=[];for(const t of Array.from(r.cssRules))t instanceof CSSImportRule&&s.push((async()=>{const r=E(t.href,n),s=await e(r);o[r]=s,void 0!==s&&await a(s,r,o)})());await Promise.all(s)}catch(t){console.log(`error during fetchBundledCss, resourceUrl=${n}`,t)}}}},{NODE_TYPES:L,DEFAULT_STYLE_PROPS:x,DEFAULT_RECT_PROPS:M,DEFAULT_IGNORED_TAG_NAMES:V}=l,B="1.3.0";const{pollify:Y}=u,{EYES_NAMESPACE:z,DOM_CAPTURE_KEY:G}=l,J=async function({doc:e=t,styleProps:n=x,rectProps:o=M,ignoredTagNames:r=V,addStats:s=!1,fetchTimeLimit:a=3e4}={}){
1
+ /* @applitools/dom-capture@11.2.5 */
2
+ "use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e=function(){const t=function(t){return function(){function e(t,e=0){const n=t.charCodeAt(e);return n>=55296&&n<56320?1024*(n-55296)+(t.charCodeAt(e+1)-56320)+65536:56320<=n&&n<=57343?-1:n}var n=function(t,n){const o=[];let r=0;for(let s=0;s<t.length;++s){const a=e(t,s);let c=0;a>0&&(c=a<128?1:a<2048?2:a<65536?3:a<2097152?4:a<67108864?5:6),r+c>n?(o.push(s),r=c):r+=c}return o};const o=n,r="WIP",s="SUCCESS",a="SUCCESS_CHUNKED",c="ERROR";var u=function(t,e,n={}){const u=function(t,{chunkByteLength:e=0}={}){if(t){if(t.value){if(e){if(!t.chunks)try{const n=JSON.stringify(t.value);t.chunks=o(n,e),t.chunks.length>0&&(t.from=0,t.value=n)}catch(t){return{status:c,error:t.message}}if(t.from>=0)return{status:a,value:t.value.substring(t.from,t.from=t.chunks.shift()),done:!t.from}}return{status:s,value:t.value}}return t.error?{status:c,error:t.error}:{status:r}}return{status:c,error:"unexpected poll request received - cannot find state of current operation"}}((t=t||{})[e],n);return(u.status===s||u.status===c||u.status===a&&u.done)&&(t[e]=null),u};const i=u;var l={chunkify:n,pollify:function(t,e,n){return o=>function(){return e[n]||(e[n]={},t.apply(null,arguments).then((t=>e[n].value=t)).catch((t=>e[n].error=t.message))),i(e,n,o)}},poll:u,absolutizeUrl:function(t,e){if(function(t){try{return new URL(t),!0}catch(t){return!1}}(t))return t;let n=!0;try{n=t!==decodeURI(t)}catch(t){n=!0}try{const o=new URL(t,e).href;return n?o:decodeURI(o)}catch(e){return n?t:decodeURI(t)}},isInlineFrame:function(t){return t.contentDocument&&t.contentDocument.location&&!/^https?:$/.test(t.contentDocument.location.protocol)},isAccessibleFrame:function(t){try{const e=t.contentDocument;return Boolean(e&&e.defaultView&&e.defaultView.frameElement)}catch(t){return!1}}},d={EYES_NAMESPACE:"__EYES__APPLITOOLS__",DOM_CAPTURE_KEY:"domCaptureResult",NODE_TYPES:{ELEMENT:1,TEXT:3,DOCUMENT_FRAGMENT:11},DEFAULT_STYLE_PROPS:["background-repeat","background-origin","background-position","background-color","background-image","background-size","border-width","border-color","border-style","color","display","font-size","font-weight","font-family","line-height","margin","opacity","overflow","padding","visibility","text-align","position","border-radius","z-index"],DEFAULT_RECT_PROPS:["width","height","top","left"],DEFAULT_IGNORED_TAG_NAMES:["HEAD","SCRIPT"]};const f=/url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;const{NODE_TYPES:m}=d;function h(t){return Array.prototype.filter.call(t.parentNode.childNodes,(e=>e.tagName===t.tagName)).indexOf(t)+1}var p=function(e){var n=t.implementation.createHTMLDocument(""),o=n.createElement("style");return o.textContent=e,n.body.appendChild(o),o.sheet},g=function(t){const e=Array.from(t.attributes).find((t=>"href"===t.name.toLowerCase()));return e&&e.value},y=function(t){if(t.nodeName&&"LINK"===t.nodeName.toUpperCase()&&t.attributes){const e=new Map(Array.from(t.attributes,(t=>[t.name.toLowerCase(),t.value.toLowerCase()])));return"stylesheet"===e.get("rel")||"style"===e.get("as")&&["preload","prefetch"].includes(e.get("rel"))}return!1};const w=g,E=y;const{absolutizeUrl:C,isInlineFrame:T}=l,N=p,b=g,S=y,{NODE_TYPES:A}=d;const{absolutizeUrl:$,isInlineFrame:_}=l,R=function(t){const e=t?t.match(f):void 0;return e?e[1]:e},P=async function({bgImages:t,timeout:e=5e3,Image:n=window.Image}){return(await Promise.all(Array.from(t).map((t=>{return Promise.race([new Promise((e=>{const o=new n;o.onload=()=>e({url:t,width:o.naturalWidth,height:o.naturalHeight}),o.onerror=()=>e(),o.src=t})),(o=e,new Promise((t=>{setTimeout(t,o)})))]);var o})))).reduce(((t,e)=>(e&&(t[e.url]={width:e.width,height:e.height}),t)),{})},D=function t(e){if(!e.ownerDocument)return"";let n="",o=e,r=e.ownerDocument,s=r.defaultView.frameElement;for(;o!==r&&(!o||o.nodeType!==m.DOCUMENT_FRAGMENT);)n=`${o.tagName}[${h(o)}]/${n}`,o=o.parentNode;return s&&(n=`${t(s)},${n}`),n.replace(/\/$/,"")},U=function({parseCss:t,CSSImportRule:e,absolutizeUrl:n,getCssFromCache:o,unfetchedToken:r}){return function s(a,c){let u,i="";try{const l=t(a);for(const t of Array.from(l.cssRules))if(t instanceof e){const e=n(t.href,c),a=o(e);if(void 0!==a){const{bundledCss:t,unfetchedResources:n}=s(a,e);n&&(u=new Set(n)),i=`${i}${t}`}else u=new Set([e]),i=`\n${r}${e}${r}`}}catch(t){console.log(`error during getBundledCssFromCssText, styleBaseUrl=${c}`,t)}var l,d;return i=`${i}${l=a,d=c,`\n/** ${d} **/\n${l}`}`,{bundledCss:i,unfetchedResources:u}}},O=p,v=function(t){const e=["before","after"];try{let n=[];return e.forEach((e=>{const o=t.ownerDocument.defaultView.getComputedStyle(t,`:${e}`);o&&"none"!==o.getPropertyValue("content")&&n.push(e)})),n.join("_and_")}catch(t){return!1}},F=function(t,{fetchTimeLimit:e}={}){return async function(n){const o=new AbortController,r=[t(n,{cache:"force-cache",signal:o.signal}).then((t=>{if(t.ok)return t.text();console.log("/failed to fetch (status "+t.status+") css from: "+n+"/")})).catch((t=>{console.log("/failed to fetch (error "+t.toString()+") css from: "+n+"/")}))];return Number.isNaN(Number(e))||r.push(new Promise((t=>setTimeout(t,e))).then((()=>o.abort()))),Promise.race(r)}},I=function({getCssFromCache:t,absolutizeUrl:e}){return function(n,o){let r,s,a;if(n&&function(t){return t.nodeName&&"STYLE"===t.nodeName.toUpperCase()}(n))r=Array.from(n.childNodes).map((t=>t.nodeValue)).join(""),s=o;else if(n&&E(n)){const c=w(n);!function(t){return t&&t.startsWith("data:")}(c)?(s=e(c,o),r=t(s)):(s=o,r=c.match(/,(.+)/)[1]),a=void 0===r}return{cssText:r,styleBaseUrl:s,isUnfetched:a}}},k=function({extractCssFromNode:t,getBundledCssFromCssText:e,unfetchedToken:n}){return function(o,r){const{styleBaseUrl:s,cssText:a,isUnfetched:c}=t(o,r);let u,i="";if(a){const{bundledCss:t,unfetchedResources:n}=e(a,s);i+=t,u=new Set(n)}else c&&(i+=`${n}${s}${n}`,u=new Set([s]));return{bundledCss:i,unfetchedResources:u}}},L=function(e){return async function(n=t){const o={},r=Date.now(),s=[];return function t(n,o,r,s){function c(t){if(s.push(async function(t,n,o){let r,s;t&&S(t)&&(s=C(b(t),n),r=await e(s),void 0!==r&&(o[s]=r)),r&&await a(r,s,o)}(t,o,r)),t.nodeType===A.ELEMENT)return"IFRAME"===t.tagName.toUpperCase()?i(t):u(t)}async function u(t){Array.prototype.map.call(t.childNodes,c)}async function i(e){if(u(e),e.contentDocument)try{const n=T(e)?e.baseURI:e.contentDocument.location.href;t(e.contentDocument,n,r,s)}catch(e){console.log(e)}}c(n.documentElement)}(n,n.location.href,o,s),await Promise.all(s),console.log("[prefetchAllCss]",Date.now()-r),function(t){return o[t]};async function a(t,n,o){try{const r=N(t),s=[];for(const t of Array.from(r.cssRules))t instanceof CSSImportRule&&s.push((async()=>{const r=C(t.href,n),s=await e(r);o[r]=s,void 0!==s&&await a(s,r,o)})());await Promise.all(s)}catch(t){console.log(`error during fetchBundledCss, resourceUrl=${n}`,t)}}}},{NODE_TYPES:x,DEFAULT_STYLE_PROPS:M,DEFAULT_RECT_PROPS:V,DEFAULT_IGNORED_TAG_NAMES:B}=d;const{pollify:Y}=l,{EYES_NAMESPACE:z,DOM_CAPTURE_KEY:G}=d,j=async function({doc:e=t,styleProps:n=M,rectProps:o=V,ignoredTagNames:r=B,addStats:s=!1,fetchTimeLimit:a=3e4}={}){
3
3
  /* MARKER FOR TEST - DO NOT DELETE */
4
- arguments[1]&&(e=arguments[1]),arguments[2]&&(s=arguments[2]),arguments[3]&&(a=arguments[3]);const c={total:{},prefetchCss:{},doCaptureDoc:{},waitForImages:{}};function i(t){t.startTime=Date.now()}function u(t){t.endTime=Date.now(),t.elapsedTime=t.endTime-t.startTime}const l=[];i(c.total);const d=new Set,f=[],m="@@@@@",h="#####",p="-----";i(c.prefetchCss);const g=I(O(fetch,{fetchTimeLimit:a})),y=await g(e);u(c.prefetchCss);const w=P({parseCss:U,CSSImportRule:CSSImportRule,getCssFromCache:y,absolutizeUrl:A,unfetchedToken:h}),E=F({getCssFromCache:y,absolutizeUrl:A}),C=k({extractCssFromNode:E,getBundledCssFromCssText:w,unfetchedToken:h});i(c.doCaptureDoc);const T=j(e);u(c.doCaptureDoc),i(c.waitForImages),await Promise.all(l),u(c.waitForImages),T.version=B,T.scriptVersion="11.2.3";const N=f.length?`${f.join("\n")}\n`:"",S=d.size?`${Array.from(d).join("\n")}\n`:"",b=JSON.stringify({separator:p,cssStartToken:h,cssEndToken:h,iframeStartToken:`"${m}`,iframeEndToken:`${m}"`});function Y(){return s?`\n${p}\n${JSON.stringify(c)}`:""}u(c.total);const z=`${b}\n${S}${p}\n${N}${p}\n${JSON.stringify(T)}${Y()}`;return console.log("[captureFrame]",JSON.stringify(c)),z;function G(t){return Object.keys(t).length?t:void 0}function J(t){return{tagName:"#text",text:t.textContent}}function j(t,s=t.location&&t.location.href){const a=new Set;let c="";const i=u(t.documentElement||t);return i.css=c,l.push(D({bgImages:a}).then((t=>i.images=t))),i;function u(t){if(t.hasAttribute&&t.hasAttribute("data-applitools-skip"))return null;const{bundledCss:e,unfetchedResources:n}=C(t,s);if(c+=e,n)for(const t of n)d.add(t);switch(t.nodeType){case L.TEXT:return J(t);case L.ELEMENT:return"IFRAME"===t.tagName.toUpperCase()?function(t){const e=h(t);let n;try{n=t.contentDocument}catch(t){return o(),e}try{n?e.childNodes=[j(n,$(t)?t.baseURI:n.location.href)]:o()}catch(t){console.log("error in iframeToJSON",t)}return e;function o(){const n=R(t);f.push(n),e.childNodes=[`${m}${n}${m}`]}}(t):h(t);case L.DOCUMENT_FRAGMENT:return{childNodes:Array.prototype.map.call(t.childNodes,u).filter(Boolean)};default:return null}}function h(t){const c=Array.prototype.map.call(t.childNodes,u).filter(Boolean),i=t.shadowRoot&&j(t.shadowRoot,s),l=t.tagName.toUpperCase();if(r.indexOf(l)>-1)return null;const d=e.defaultView.getComputedStyle(t),f=t.getBoundingClientRect(),m={};for(const t of n)m[t]=d.getPropertyValue(t);m["border-width"]||(m["border-width"]=`${d.getPropertyValue("border-top-width")} ${d.getPropertyValue("border-right-width")} ${d.getPropertyValue("border-bottom-width")} ${d.getPropertyValue("border-left-width")}`);const h={};for(const t of o)h[t]=f[t];const p=Array.from(t.attributes).map((t=>({key:t.name,value:t.value}))).reduce(((t,e)=>(t[e.key]=e.value,t)),{}),g=_(d.getPropertyValue("background-image"));g&&a.add(g);const y=v(t);y&&(p["data-applitools-has-pseudo"]=y);const w={tagName:l,style:G(m),rect:G(h),attributes:G(p),childNodes:c};return i&&(w.shadowRoot=i),w}}};window[z]=window[z]||{};const j=Y(J,window[z],G);return function(t){return JSON.stringify(j(t)(t))}}()};let e=!0;try{let n=document.head.querySelector("[data-applitools-sandbox]");n||(n=document.createElement("iframe"),n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n));const o=window.crypto.getRandomValues(new Uint32Array(1))[0],r=n.contentDocument.createElement("script");r.textContent=`window['ctor-${o}'] = ${t.toString()};`,n.contentDocument.head.appendChild(r);const s=n.contentWindow[`ctor-${o}`];if("function"!=typeof s)throw new Error("Sandbox failed to extract function");return e=!1,s(document).apply(null,arguments)}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}};module.exports=t;
4
+ arguments[1]&&(e=arguments[1]),arguments[2]&&(s=arguments[2]),arguments[3]&&(a=arguments[3]);const c={total:{},prefetchCss:{},doCaptureDoc:{},waitForImages:{}};function u(t){t.startTime=Date.now()}function i(t){t.endTime=Date.now(),t.elapsedTime=t.endTime-t.startTime}const l=[];u(c.total);const d=new Set,f=[],m="@@@@@",h="#####",p="-----";u(c.prefetchCss);const g=L(F(fetch,{fetchTimeLimit:a})),y=await g(e);i(c.prefetchCss);const w=U({parseCss:O,CSSImportRule:CSSImportRule,getCssFromCache:y,absolutizeUrl:$,unfetchedToken:h}),E=I({getCssFromCache:y,absolutizeUrl:$}),C=k({extractCssFromNode:E,getBundledCssFromCssText:w,unfetchedToken:h});u(c.doCaptureDoc);const T=function t(s,a=s.location&&s.location.href){const c=new Set;let u="";const i=h(s.documentElement||s);return i.css=u,l.push(P({bgImages:c}).then((t=>i.images=t))),i;function h(e){if(e.hasAttribute&&e.hasAttribute("data-applitools-skip"))return null;const{bundledCss:n,unfetchedResources:o}=C(e,a);if(u+=n,o)for(const t of o)d.add(t);switch(e.nodeType){case x.TEXT:return function(t){return{tagName:"#text",text:t.textContent}}(e);case x.ELEMENT:return"IFRAME"===e.tagName.toUpperCase()?function(e){const n=p(e);let o;try{o=e.contentDocument}catch(e){return r(),n}try{o?n.childNodes=[t(o,_(e)?e.baseURI:o.location.href)]:r()}catch(e){console.log("error in iframeToJSON",e)}return n;function r(){const t=D(e);f.push(t),n.childNodes=[`${m}${t}${m}`]}}(e):p(e);case x.DOCUMENT_FRAGMENT:return{childNodes:Array.prototype.map.call(e.childNodes,h).filter(Boolean)};default:return null}}function p(s){const u=Array.prototype.map.call(s.childNodes,h).filter(Boolean),i=s.shadowRoot&&t(s.shadowRoot,a),l=s.tagName.toUpperCase();if(r.indexOf(l)>-1)return null;const d=e.defaultView.getComputedStyle(s),f=s.getBoundingClientRect(),m={};for(const t of n)m[t]=d.getPropertyValue(t);m["border-width"]||(m["border-width"]=`${d.getPropertyValue("border-top-width")} ${d.getPropertyValue("border-right-width")} ${d.getPropertyValue("border-bottom-width")} ${d.getPropertyValue("border-left-width")}`);const p={};for(const t of o)p[t]=f[t];const g=Array.from(s.attributes).map((t=>({key:t.name,value:t.value}))).reduce(((t,e)=>(t[e.key]=e.value,t)),{}),y=R(d.getPropertyValue("background-image"));y&&c.add(y);const w=v(s);w&&(g["data-applitools-has-pseudo"]=w);const E={tagName:l,style:Y(m),rect:Y(p),attributes:Y(g),childNodes:u};return i&&(E.shadowRoot=i),E}}(e);i(c.doCaptureDoc),u(c.waitForImages),await Promise.all(l),i(c.waitForImages),T.version="1.3.0",T.scriptVersion="11.2.5";const N=f.length?`${f.join("\n")}\n`:"",b=d.size?`${Array.from(d).join("\n")}\n`:"",S=JSON.stringify({separator:p,cssStartToken:h,cssEndToken:h,iframeStartToken:`"${m}`,iframeEndToken:`${m}"`});i(c.total);const A=`${S}\n${b}${p}\n${N}${p}\n${JSON.stringify(T)}${s?`\n${p}\n${JSON.stringify(c)}`:""}`;return console.log("[captureFrame]",JSON.stringify(c)),A;function Y(t){return Object.keys(t).length?t:void 0}};window[z]=window[z]||{};const J=Y(j,window[z],G);return function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}((function(t){return JSON.stringify(J(t)(t))}))}()};let e=!0;try{let n=document.head.querySelector("[data-applitools-sandbox]");n||(n=document.createElement("iframe"),n.setAttribute("data-applitools-sandbox",""),n.setAttribute("data-applitools-skip",""),document.head.appendChild(n));const o=window.crypto.getRandomValues(new Uint32Array(1))[0],r=n.contentDocument.createElement("script");r.textContent=`window['ctor-${o}'] = ${t.toString()};`,n.contentDocument.head.appendChild(r);const s=n.contentWindow[`ctor-${o}`];if("function"!=typeof s)throw new Error("Sandbox failed to extract function");return e=!1,s(document).apply(null,arguments)}catch(n){try{return t(document).apply(null,arguments)}catch(t){throw e?t:n}}},n=t(e);module.exports=n;