%PDF- %PDF-
Direktori : /home/tradesc/www/relax/wp-content/plugins/wp-meteor/assets/js/public/ |
Current File : /home/tradesc/www/relax/wp-content/plugins/wp-meteor/assets/js/public/public.js.map |
{ "version": 3, "sources": ["../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/utils/delta.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/literals.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/globals.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/mocks/jquery.js", "../../../node_modules/@aguidrevitch/fpo-inpage-events/src/index.mjs", "../../../node_modules/@aguidrevitch/fpo-inpage-first-interaction/src/browser/index.mjs", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/utils/event-emitter.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/utils/dispatcher.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/elementor/device-mode.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/elementor/animations.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/elementor/pp-menu.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/public.js"], "sourcesContent": ["export default () => Math.round(performance.now()) / 1000;\n", "export const\n addEventListener = \"addEventListener\",\n removeEventListener = \"removeEventListener\",\n getAttribute = \"getAttribute\",\n setAttribute = \"setAttribute\",\n removeAttribute = \"removeAttribute\",\n hasAttribute = \"hasAttribute\",\n querySelector = \"querySelector\",\n querySelectorAll = querySelector + \"All\",\n appendChild = \"appendChild\",\n removeChild = \"removeChild\",\n createElement = \"createElement\",\n tagName = \"tagName\",\n getOwnPropertyDescriptor = \"getOwnPropertyDescriptor\",\n prototype = \"prototype\",\n __lookupGetter__ = \"__lookupGetter__\",\n __lookupSetter__ = \"__lookupSetter__\",\n DCL = \"DOMContentLoaded\",\n L = \"load\",\n E = \"error\";\n", "const\n w = window,\n d = document,\n de = d.documentElement,\n c = process.env.DEBUG ? console.log : () => { },\n ce = console.error;\n\nexport {\n w,\n d,\n de,\n c,\n ce,\n};", "import delta from \"../utils/delta\";\nimport {\n addEventListener,\n DCL,\n} from \"../literals\";\nimport {\n d,\n c,\n ce,\n} from \"../globals\";\n\n/**\n * class name should not match mocked object\n */\nlet mocked = true;\nexport default class jQueryMock {\n constructor() {\n this.known = [];\n }\n init() {\n\n let Mock;\n let Mock$;\n\n const override = (jQuery, symbol) => {\n\n if (mocked && jQuery && jQuery.fn && !jQuery.__wpmeteor) {\n process.env.DEBUG && c(delta(), \"new \" + symbol + \" detected\", jQuery.__wpmeteor, jQuery);\n\n // can't use () => {} as it binds to different this\n const enqueue = function (func) {\n process.env.DEBUG && c(delta(), \"enqueued jQuery(func)\", func);\n d[addEventListener](DCL, e => {\n process.env.DEBUG && c(delta(), \"running enqueued jQuery function\", func);\n func.call(d, jQuery, e, \"jQueryMock\");\n });\n return this;\n };\n\n this.known.push([jQuery, jQuery.fn.ready, jQuery.fn.init.prototype.ready]);\n jQuery.fn.ready = enqueue;\n jQuery.fn.init.prototype.ready = enqueue;\n jQuery.__wpmeteor = true;\n }\n return jQuery;\n };\n\n if (window.jQuery || window.$) {\n // not throwing error, as it might come from a chrome extension\n // but also not mocking it, just giving a warning\n process.env.DEBUG && ce(delta(), \"WARNING: JQUERY WAS INSTALLED BEFORE WP-METEOR, PROBABLY FROM A CHROME EXTENSION\");\n }\n\n Object.defineProperty(window, \"jQuery\", {\n get() {\n return Mock;\n },\n set(jQuery) {\n Mock = override(jQuery, \"jQuery\");\n },\n // configurable: true\n });\n\n Object.defineProperty(window, \"$\", {\n get() {\n return Mock$;\n },\n set($) {\n Mock$ = override($, \"$\");\n },\n // configurable: true\n });\n }\n unmock() {\n this.known.forEach(([jQuery, oldReady, oldPrototypeReady]) => {\n process.env.DEBUG && c(delta(), \"unmocking jQuery\", jQuery);\n jQuery.fn.ready = oldReady;\n jQuery.fn.init.prototype.ready = oldPrototypeReady;\n });\n mocked = false;\n }\n}\n", "const EVENT_FIRST_INTERACTION = \"fpo:first-interaction\";\nconst EVENT_REPLAY_CAPTURED_EVENTS = \"fpo:replay-captured-events\";\nconst EVENT_LCP_ELEMENT = \"fpo:lcp-element\";\nconst EVENT_LCP_ELEMENT_CANDIDATE = \"fpo:lcp-element-candidate\";\nconst EVENT_LCP_LOADED = \"fpo:lcp-loaded\";\nconst EVENT_LCP_LOADED_CANDIDATE = \"fpo:lcp-loaded-candidate\";\nconst EVENT_LAZY_ELEMENT = \"fpo:lazy-element\";\nconst EVENT_LCP_BOTH = \"fpo:lcp-both\";\nconst EVENT_STYLES_TAG_AVAILABLE = \"fpo:styles-tag-available\";\nconst EVENT_CSS_LOADED = \"fpo:css-loaded\";\nconst EVENT_ELEMENT_LOADED = \"fpo:element-loaded\";\nconst EVENT_IMAGES_LOADED = \"fpo:images-loaded\";\nconst EVENT_THE_END = \"fpo:the-end\";\nconst EVENT_SCROLL_TO_REVEAL_ANIMATIONS = \"fpo:scroll-to-reveal-animations\";\n\nexport {\n EVENT_LCP_ELEMENT,\n EVENT_LCP_ELEMENT_CANDIDATE,\n EVENT_LCP_LOADED,\n EVENT_LCP_LOADED_CANDIDATE,\n EVENT_LAZY_ELEMENT,\n EVENT_LCP_BOTH,\n EVENT_STYLES_TAG_AVAILABLE,\n EVENT_FIRST_INTERACTION, \n EVENT_REPLAY_CAPTURED_EVENTS,\n EVENT_CSS_LOADED,\n EVENT_ELEMENT_LOADED,\n EVENT_IMAGES_LOADED,\n EVENT_THE_END,\n EVENT_SCROLL_TO_REVEAL_ANIMATIONS,\n};\n", "import delta from \"./utils/delta.mjs\";\nimport c from \"./utils/console.mjs\";\nimport { EVENT_FIRST_INTERACTION, EVENT_REPLAY_CAPTURED_EVENTS } from \"@aguidrevitch/fpo-inpage-events\";\n\nconst EVENT_CLICK = \"click\";\n\nconst w = window;\nconst wOrigAddEventListener = w.addEventListener.bind(w);\nconst wOrigRemoveEventListener = w.removeEventListener.bind(w);\nconst ra = \"removeAttribute\";\nconst ga = \"getAttribute\";\nconst sa = \"setAttribute\";\nconst passiveEvents = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"keydown\", \"wheel\"]; //, \"scroll\"];\nconst activeEvents = [\"mouseover\", \"mouseout\", EVENT_CLICK];\nconst captureEvents = [\"touchstart\", \"touchend\", \"touchcancel\", \"mouseover\", \"mouseout\", EVENT_CLICK];\nconst prefix = \"data-wpmeteor-\";\nconst separator = \"----\";\nconst dispatchEvent = \"dispatchEvent\";\n\nconst synteticCick = e => {\n process.env.DEBUG && c(delta(), \"creating syntetic click event for\", e);\n const event = new MouseEvent(EVENT_CLICK, {\n view: e.view,\n bubbles: true,\n cancelable: true\n });\n Object.defineProperty(event, \"target\", { writable: false, value: e.target });\n return event;\n};\n\nclass InteractionEvents {\n static capture() {\n let firstInteractionFired = false;\n\n // lighthouse sets __nativePromise and __nativeURL\n // to the original Promise and URL\n const [, p, n] = `${window.Promise}`.split(/[\\s[(){]+/s);\n if (w[\"__\" + n + p]) {\n return;\n }\n\n const capturedEvents = [];\n const captureEvent = e => {\n if (e.target && (dispatchEvent in e.target)) {\n if (!e.isTrusted) {\n // this is a flag that this event is probably replaying\n process.env.DEBUG && c(delta(), \"the event is not trusted, configuration issues, not recording\", e.type, e.target);\n process.env.DEBUG && c(delta(), \"please double check if first interaction listener was installed before wp-meteor\");\n return;\n }\n if (e.cancelable && !passiveEvents.includes(e.type)) {\n try {\n e.preventDefault();\n } catch { }\n }\n e.stopImmediatePropagation();\n\n if (e.type === EVENT_CLICK) {\n process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n capturedEvents.push(synteticCick(e));\n } else if (captureEvents.includes(e.type)) {\n process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n capturedEvents.push(e);\n }\n // scroll event target doesn't have setAttribute\n // if (e.target[sa]) {\n // e.target[sa](prefix + e.type, true);\n // }\n e.target[sa](prefix + e.type, true);\n if (!firstInteractionFired) {\n firstInteractionFired = true;\n w[dispatchEvent](new CustomEvent(EVENT_FIRST_INTERACTION));\n }\n }\n };\n\n w.addEventListener(EVENT_REPLAY_CAPTURED_EVENTS, () => {\n process.env.DEBUG && c(delta(), separator, \"got \" + EVENT_REPLAY_CAPTURED_EVENTS);\n process.env.DEBUG && c(delta(), separator, \"removing event listeners\");\n activeEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: false, capture: true }));\n passiveEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: true, capture: true }));\n\n let e;\n while (e = capturedEvents.shift()) { // eslint-disable-line no-cond-assign\n var target = e.target;\n if (target[ga](prefix + \"touchstart\") && target[ga](prefix + \"touchend\") && !target[ga](prefix + EVENT_CLICK)) {\n if (target[ga](prefix + \"touchmove\")) {\n process.env.DEBUG && c(delta(), `touchmove happened, so not dispatching ${EVENT_CLICK} to `, e.target);\n } else {\n // why would I want to remove prefix + \"touchmove\", if previous if checks it is present?\n // target[ra](prefix + \"touchmove\");\n capturedEvents.push(synteticCick(e));\n }\n target[ra](prefix + \"touchstart\");\n target[ra](prefix + \"touchend\");\n } else {\n target[ra](prefix + e.type);\n }\n process.env.DEBUG && c(delta(), \" dispatching \" + e.type + \" to \", e.target);\n target[dispatchEvent](e);\n }\n });\n\n process.env.DEBUG && c(delta(), separator, \"installing first interaction event listeners\");\n activeEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: false, capture: true }));\n passiveEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: true, capture: true }));\n }\n}\n\nexport {\n InteractionEvents,\n};\n\nexport default InteractionEvents;", "export default class EventEmitter {\n constructor() {\n this.l = [];\n }\n emit(name, data = null) {\n this.l[name] && this.l[name].forEach(l => l(data));\n }\n on(name, callback) {\n this.l[name] ||= [];\n this.l[name].push(callback);\n }\n off(name, callback) {\n this.l[name] = (this.l[name] || []).filter(c => c !== callback);\n }\n /*\n once(name, callback) {\n const closure = () => {\n this.off(closure);\n callback();\n }\n this.l[name] ||= [];\n this.l[name].push(closure);\n }\n */\n}\n", "import EventEmitter from \"./event-emitter\";\nexport default new EventEmitter();\n", "import {\n setAttribute,\n appendChild,\n createElement,\n} from \"../literals\";\n\nimport {\n d,\n} from \"../globals\";\n\nconst $deviceMode = d[createElement](\"span\");\n$deviceMode[setAttribute](\"id\", \"elementor-device-mode\");\n$deviceMode[setAttribute](\"class\", \"elementor-screen-only\");\n\nlet attached = false;\n\nexport default () => {\n if (!attached) {\n d.body[appendChild]($deviceMode);\n }\n return getComputedStyle($deviceMode, \":after\").content.replace(/\"/g, \"\");\n};\n", "import delta from \"../utils/delta\";\nimport dispatcher from \"../utils/dispatcher\";\nimport getCurrentDeviceMode from \"./device-mode\";\nimport {\n getAttribute,\n setAttribute,\n addEventListener,\n querySelectorAll,\n L,\n} from \"../literals\";\nimport {\n w,\n d,\n de,\n c,\n} from \"../globals\";\n\nconst getClass = (el) => {\n return el[getAttribute](\"class\") || \"\";\n};\n\nconst setClass = (el, value) => {\n return el[setAttribute](\"class\", value);\n};\n\nexport default () => {\n w[addEventListener](L, function () {\n const mode = getCurrentDeviceMode();\n const vw = Math.max(de.clientWidth || 0, w.innerWidth || 0);\n const vh = Math.max(de.clientHeight || 0, w.innerHeight || 0);\n\n const keys = [\"_animation_\" + mode, \"animation_\" + mode, \"_animation\", \"_animation\", \"animation\"];\n Array.from(d[querySelectorAll](\".elementor-invisible\")).forEach(el => {\n\n // we only want to optimize elements in the top of the page\n const viewportOffset = el.getBoundingClientRect();\n if (viewportOffset.top + w.scrollY <= vh && viewportOffset.left + w.scrollX < vw) {\n try {\n const settings = JSON.parse(el[getAttribute](\"data-settings\"));\n if (settings.trigger_source) {\n return;\n }\n const animationDelay = settings._animation_delay || settings.animation_delay || 0;\n let animation, key;\n\n for (var i = 0; i < keys.length; i++) {\n if (settings[keys[i]]) {\n key = keys[i];\n animation = settings[key];\n break;\n }\n }\n\n if (animation) {\n process.env.DEBUG && c(delta(), \"animating with\" + animation, el);\n const oldClass = getClass(el);\n const newClass = animation === \"none\"\n ? oldClass\n : oldClass + \" animated \" + animation;\n\n const animate = () => {\n setClass(el, newClass.replace(/\\belementor-invisible\\b/, \"\"));\n keys.forEach(key => delete settings[key]);\n el[setAttribute](\"data-settings\", JSON.stringify(settings));\n };\n\n let timeout = setTimeout(animate, animationDelay);\n\n dispatcher.on(\"fi\", () => {\n clearTimeout(timeout);\n setClass(el, getClass(el).replace(new RegExp(\"\\\\b\" + animation + \"\\\\b\"), \"\"));\n });\n\n }\n } catch (e) {\n console.error(e);\n }\n }\n });\n });\n};", "import {\n getAttribute,\n setAttribute,\n addEventListener,\n querySelectorAll,\n appendChild,\n removeChild,\n createElement,\n tagName,\n DCL,\n} from \"../literals\";\nimport {\n d,\n} from \"../globals\";\n\nconst inmega = \"data-in-mega_smartmenus\";\n\nexport default () => {\n\n const div = d[createElement](\"div\");\n div.innerHTML = \"<span class=\\\"sub-arrow --wp-meteor\\\"><i class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i></span>\";\n const placeholder = div.firstChild;\n\n const prevAll = el => {\n const result = [];\n while (el = el.previousElementSibling) // eslint-disable-line no-cond-assign\n result.push(el);\n return result;\n };\n\n d[addEventListener](DCL, function () {\n Array.from(d[querySelectorAll](\".pp-advanced-menu ul\")).forEach(ul => {\n /* skipping mega menues */\n if (ul[getAttribute](inmega)) {\n return;\n } else if ((ul[getAttribute](\"class\") || \"\").match(/\\bmega-menu\\b/)) {\n ul[querySelectorAll](\"ul\").forEach(ul => {\n ul[setAttribute](inmega, true);\n });\n }\n let prev = prevAll(ul);\n let a = prev.filter(el => el).filter(el => el[tagName] === \"A\").pop();\n if (!a) {\n a = prev.map(el => Array.from(el[querySelectorAll](\"a\"))).filter(el => el).flat().pop();\n }\n if (a) {\n const span = placeholder.cloneNode(true);\n a[appendChild](span);\n\n const observer = new MutationObserver(mutations => {\n mutations.forEach(({ addedNodes }) => {\n addedNodes.forEach(node => {\n // For each added script tag\n if (node.nodeType === 1 && \"SPAN\" === node[tagName]) {\n try {\n a[removeChild](span);\n } catch {\n // do nothing\n }\n }\n });\n });\n });\n observer.observe(a, { childList: true });\n }\n });\n });\n};", "/* global _wpmeteor, RocketLazyLoadScripts */\n\nimport jQueryMock from \"./includes/mocks/jquery\";\nimport InteractionEvents from \"@aguidrevitch/fpo-inpage-first-interaction\";\nimport dispatcher from \"./includes/utils/dispatcher\";\nimport delta from \"./includes/utils/delta\";\nimport elementorAnimations from \"./includes/elementor/animations\";\nimport elementorPP from \"./includes/elementor/pp-menu\";\nimport {\n addEventListener,\n removeEventListener,\n getAttribute,\n setAttribute,\n removeAttribute,\n hasAttribute,\n // querySelectorAll,\n appendChild,\n removeChild,\n tagName,\n getOwnPropertyDescriptor,\n prototype,\n __lookupGetter__,\n __lookupSetter__,\n DCL,\n L,\n E,\n} from \"./includes/literals\";\nimport {\n w,\n d,\n c,\n ce,\n} from \"./includes/globals\";\n\nimport {\n EVENT_CSS_LOADED,\n EVENT_ELEMENT_LOADED,\n EVENT_FIRST_INTERACTION,\n EVENT_REPLAY_CAPTURED_EVENTS,\n EVENT_IMAGES_LOADED,\n EVENT_THE_END,\n} from \"@aguidrevitch/fpo-inpage-events\";\n\nconst RSC = \"readystatechange\",\n M = \"message\",\n separator = \"----\",\n S = \"SCRIPT\",\n prefix = \"data-wpmeteor-\",\n Object_defineProperty = Object.defineProperty,\n Object_defineProperties = Object.defineProperties,\n javascriptBlocked = \"javascript/blocked\",\n isJavascriptRegexp = /^\\s*(application|text)\\/javascript|module\\s*$/i,\n _rAF = \"requestAnimationFrame\",\n _rIC = \"requestIdleCallback\",\n _setTimeout = \"setTimeout\",\n __dynamic = \"__dynamic\";\n\nconst windowEventPrefix = w.constructor.name + \"::\";\nconst documentEventPrefix = d.constructor.name + \"::\";\n\nconst forEach = function (callback, thisArg) {\n thisArg = thisArg || w;\n for (var i = 0; i < this.length; i++) {\n callback.call(thisArg, this[i], i, this);\n }\n};\n\nif (\"NodeList\" in w && !NodeList[prototype].forEach) {\n process.env.DEBUG && c(\"polyfilling NodeList.forEach\");\n NodeList[prototype].forEach = forEach;\n}\nif (\"HTMLCollection\" in w && !HTMLCollection[prototype].forEach) {\n process.env.DEBUG && c(\"polyfilling HTMLCollection.forEach\");\n HTMLCollection[prototype].forEach = forEach;\n}\n\nprocess.env.SPO || (() => {\n if (_wpmeteor[\"elementor-animations\"]) {\n elementorAnimations();\n }\n\n if (_wpmeteor[\"elementor-pp\"]) {\n elementorPP();\n }\n})();\n\nconst reorder = [];\nconst defer = [];\nconst async = [];\n\nlet DONE = false;\nconst eventQueue = [];\nlet listeners = {};\nlet WindowLoaded = false;\nlet firedEventsCount = 0;\n\nlet rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\nlet rIC = w[_rIC] || rAF;\nd[addEventListener](\"visibilitychange\", () => {\n rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\n rIC = w[_rIC] || rAF;\n});\n\nconst nextTick = w[_setTimeout];\n\nlet createElementOverride;\nconst capturedAttributes = [\"src\", \"type\"];\n\n/* Hack around 'avoid serving legacy javascript to modern browsers' */\nconst O = Object,\n definePropert = \"definePropert\";\n\nO[definePropert + \"y\"] = (object, property, options) => {\n if (object === w && ([\"jQuery\", \"onload\"].indexOf(property) >= 0)\n || (object === d || object === d.body) && [\"readyState\", \"write\", \"writeln\", \"on\" + RSC].indexOf(property) >= 0) {\n if ([\"on\" + RSC, \"on\" + L].indexOf(property) && options.set) {\n listeners[\"on\" + RSC] = listeners[\"on\" + RSC] || [];\n listeners[\"on\" + RSC].push(options.set);\n // objectRedefinitions['onreadystatechange'] = options;\n } else {\n process.env.DEBUG && ce(\"Denied \" + (object.constructor || {}).name + \" \" + property + \" redefinition\");\n }\n return object;\n } else if ((object instanceof HTMLScriptElement) && capturedAttributes.indexOf(property) >= 0) {\n if (!object[property + \"Getters\"]) {\n object[property + \"Getters\"] = [];\n object[property + \"Setters\"] = [];\n Object_defineProperty(object, property, {\n set(value) {\n object[property + \"Setters\"].forEach(setter => setter.call(object, value));\n },\n get() {\n return object[property + \"Getters\"].slice(-1)[0]();\n }\n });\n }\n\n if (options.get) {\n object[property + \"Getters\"].push(options.get);\n }\n\n if (options.set) {\n object[property + \"Setters\"].push(options.set);\n }\n\n return object;\n }\n // console.log(\"object\", object, \"property\", property, \"options\", options, new Error().stack);\n return Object_defineProperty(object, property, options);\n};\n\nO[definePropert + \"ies\"] = (object, properties) => {\n // console.log(\"object\", object, \"properties\", properties);\n for (let i in properties) {\n O[definePropert + \"y\"](object, i, properties[i]);\n }\n // symbols are not enumerable,\n // so we have to use Object.getOwnPropertySymbols\n // for compatibility with https://modelviewer.dev/\n for (let sym of Object.getOwnPropertySymbols(properties)) {\n O[definePropert + \"y\"](object, sym, properties[sym]);\n }\n return object;\n};\n\nif (process.env.DEBUG) {\n d[addEventListener](RSC, () => {\n c(delta(), separator, RSC, d.readyState);\n });\n\n d[addEventListener](DCL, () => {\n c(delta(), separator, DCL);\n });\n\n dispatcher.on(EVENT_THE_END, () => {\n c(delta(), separator, EVENT_THE_END);\n c(delta(), separator, firedEventsCount + \" queued events fired\");\n });\n\n w[addEventListener](L, () => {\n c(delta(), separator, L);\n });\n}\n\n// saving original methods\nconst origAddEventListener = EventTarget[prototype][addEventListener];\nconst origRemoveEventListener = EventTarget[prototype][removeEventListener];\nconst dOrigAddEventListener = origAddEventListener.bind(d);\nconst dOrigRemoveEventListener = origRemoveEventListener.bind(d);\nconst wOrigAddEventListener = origAddEventListener.bind(w);\nconst wOrigRemoveEventListener = origRemoveEventListener.bind(w);\nconst origCreateElement = Document[prototype].createElement;\nconst dOrigCreateElement = origCreateElement.bind(d);\nconst origReadyStateGetter = d.__proto__[__lookupGetter__](\"readyState\").bind(d); // eslint-disable-line no-unused-vars\n\nlet readyState = \"loading\";\nObject_defineProperty(d, \"readyState\", {\n get() { return readyState; },\n set(value) { return readyState = value; },\n});\n\nconst hasUnfiredListeners = (eventNames) => {\n return eventQueue.filter(([event, , context], j) => {\n if (eventNames.indexOf(event.type) < 0) {\n return;\n }\n if (!context) {\n context = event.target;\n }\n try {\n const name = context.constructor.name + \"::\" + event.type;\n for (let i = 0; i < listeners[name].length; i++) {\n if (listeners[name][i]) {\n const listenerKey = name + \"::\" + j + \"::\" + i;\n if (!firedListeners[listenerKey]) {\n return true;\n }\n }\n }\n } catch (e) {\n // do nothing\n }\n }).length;\n};\n\nlet currentlyFiredEvent;\nconst firedListeners = {};\nconst fireQueuedEvents = (eventNames) => {\n eventQueue.forEach(([event, readyState, context], j) => {\n if (eventNames.indexOf(event.type) < 0) {\n return;\n }\n if (!context) {\n context = event.target;\n }\n try {\n const name = context.constructor.name + \"::\" + event.type;\n if ((listeners[name] || []).length) {\n // listeners[name].forEach doesn't work as the listeners might be added \n // during the loop\n for (let i = 0; i < listeners[name].length; i++) {\n const func = listeners[name][i];\n if (func) {\n // readystatechanges fires multiple time times on same \n // listener with different readyState, accounting for that\n // const listenerKey = event === M \n // ? name + '::' + j + '::' + i + '::' + readyState\n // : name + '::' + i + '::' + readyState;\n const listenerKey = name + \"::\" + j + \"::\" + i;\n if (!firedListeners[listenerKey]) {\n firedListeners[listenerKey] = true;\n d.readyState = readyState;\n currentlyFiredEvent = name;\n try {\n firedEventsCount++;\n process.env.DEBUG && c(delta(), \"firing \" + event.type + \"(\" + d.readyState + \") for\", func[prototype] ? func[prototype].constructor : func);\n if (!func[prototype] || func[prototype].constructor === func) {\n func.bind(context)(event);\n } else {\n func(event);\n }\n } catch (e) {\n ce(e, func);\n }\n currentlyFiredEvent = null;\n }\n }\n }\n }\n } catch (e) {\n ce(e);\n }\n });\n};\n\n// we need to clone L, DCL, RSC events\n// because we internally track them and use them, eg window.load\n// if some script like elementor runs e.stopImmediatePropagation()\n// we won't ever get them, just the same way we do in the inpage-first-interaction\ndOrigAddEventListener(DCL, (e) => {\n process.env.DEBUG && c(delta(), \"enqueued document \" + DCL);\n eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), d]);\n});\ndOrigAddEventListener(RSC, (e) => {\n process.env.DEBUG && c(delta(), \"enqueued document \" + RSC);\n eventQueue.push([new e.constructor(RSC, e), origReadyStateGetter(), d]);\n});\nwOrigAddEventListener(DCL, (e) => {\n process.env.DEBUG && c(delta(), \"enqueued window \" + DCL);\n eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), w]);\n});\nwOrigAddEventListener(L, (e) => {\n WindowLoaded = true;\n process.env.DEBUG && c(delta(), \"enqueued window \" + L);\n eventQueue.push([new e.constructor(L, e), origReadyStateGetter(), w]);\n // we must fire queued events for excluded scripts\n // if firstInteractionFired, then some scripts might have registered load event listeners\n // and they will be fired as well, which is invalid behaviour\n // https://wordpress.org/support/topic/meteor-blocks-contact-form-email/\n if (!iterating) {\n fireQueuedEvents([DCL, RSC, M, L]);\n }\n});\nconst messageListener = (e) => {\n process.env.DEBUG && c(delta(), \"enqueued \" + M);\n eventQueue.push([e, d.readyState, w]);\n};\n\nconst origWindowOnMessageGetter = w[__lookupGetter__](\"onmessage\");\nconst origWindowOnMessageSetter = w[__lookupSetter__](\"onmessage\");\n\n// will be called inside iterate, right before dispatching EVENT_THE_END\nconst restoreMessageListener = () => {\n // this code is called only when all the events were fired\n wOrigRemoveEventListener(M, messageListener);\n // restoring message listeners\n (listeners[windowEventPrefix + \"message\"] || []).forEach(listener => {\n wOrigAddEventListener(M, listener);\n });\n Object_defineProperty(w, \"onmessage\", {\n get: origWindowOnMessageGetter,\n set: origWindowOnMessageSetter,\n });\n process.env.DEBUG && c(delta(), \"message listener restored\");\n};\n// removal will be inside iterate\nwOrigAddEventListener(M, messageListener);\n\n// jQuery mock allows to trigger jQuery.ready early\n// because if we rely on native logics, the ready() listeners will fire after window.load\nconst jQuery = new jQueryMock();\njQuery.init();\n\n// there are 3 cases\n// 1. first interaction fires before window.load as a resut of user interaction\n// 2. window.load fires before first interaction \n// 3. !!!!!!! 3rd party scripts might trigger it programmatically if they were excluded from optimization\nconst startIterating = () => {\n if (!iterating && !DONE) {\n iterating = true;\n // mayBePreloadScripts();\n d.readyState = \"loading\";\n rAF(flushPreloadsAndPreconnects);\n rAF(iterate); // starts the iteration\n // nextTick(iterate); // starts the iteration\n }\n /**\n * If window.load fires after iteration complete, eg some images delay window.load\n * there might be some unfired events left in the queue\n * so we will restart iteration which will fire them\n */\n if (!WindowLoaded) {\n wOrigAddEventListener(L, () => {\n process.env.DEBUG && c(delta(), separator, \"starting iterating after window loaded\");\n startIterating();\n });\n }\n};\n\nwOrigAddEventListener(EVENT_FIRST_INTERACTION, () => {\n process.env.DEBUG && c(delta(), separator, \"starting iterating on first interaction\");\n startIterating();\n});\n\n/* EVENT_IMAGES_LOADED is an internal event, known to dispatcher only */\ndispatcher.on(EVENT_IMAGES_LOADED, () => {\n process.env.DEBUG && c(delta(), separator, \"starting iterating after images loaded\");\n startIterating();\n});\n\nprocess.env.SPO || (() => {\n if (_wpmeteor.rdelay >= 0) {\n InteractionEvents.capture();\n }\n})();\n\n// scriptsToLoad is set to 1 to allow an extra call at the end of iteration\n// that means that once last script loads, it won't trigger the end of the cycle\n// only after all the events fire, the cycle will end\nlet scriptsToLoad = [-1];\nconst scriptLoaded = (event) => {\n process.env.DEBUG && c(delta(), \"scriptLoaded\", event.target, scriptsToLoad.length);\n scriptsToLoad = scriptsToLoad.filter(script => script !== event.target);\n if (!scriptsToLoad.length) {\n // this is ultimate end of the iteration cycle\n nextTick(dispatcher.emit.bind(dispatcher, EVENT_THE_END));\n }\n};\n\nlet i = 0;\nlet iterating = false;\n\n// TODO: async and defer scripts can be injected into the document in parallel\n// we can either insert them in 2 batches (defer, then async), or even in one batch\nconst iterate = () => {\n process.env.DEBUG && c(delta(), \"it\", i++, reorder.length);\n const element = reorder.shift();\n if (element) {\n // process.env.DEBUG && c(separator, \"iterating\", element, element.dataset);\n if (element[getAttribute](prefix + \"src\")) {\n if (element[hasAttribute](\"async\") || element[__dynamic]) {\n if (element.isConnected) {\n // we can't be sure that it is going to be inserted into the DOM\n process.env.DEBUG && c(delta(), \"pushed to scriptsToLoad\", scriptsToLoad);\n scriptsToLoad.push(element);\n // https://github.com/aguidrevitch/fpo-javascript-rewrite/issues/6\n // https://wordpress.org/support/topic/script-loading-waited-on-js-file/\n // if an async script hangs for longer than 1 seconds\n // we stop waiting for it to finish page load\n setTimeout(scriptLoaded, 1000, { target: element });\n }\n // even if it is not in the scriptsToLoad list, \n // scriptLoaded won't remove it from the list\n unblock(element, scriptLoaded);\n nextTick(iterate);\n } else {\n // process.env.DEBUG && c(delta(), \"sync\", element);\n unblock(element, nextTick.bind(null, iterate));\n // iterate()\n }\n } else if (element.origtype == javascriptBlocked) {\n unblock(element);\n // allow inserted script to execute\n nextTick(iterate);\n } else {\n // it might be wrongfully processed script by backend, eg type=\"application/ld+json\" \n // and execution will stop here\n process.env.DEBUG && ce(\"running next iteration\", element, element.origtype, element.origtype == javascriptBlocked);\n nextTick(iterate);\n }\n // } else if (scriptsToInsert) {\n // process.env.DEBUG && c(delta(), scriptsToInsert, \"more scripts to insert\");\n // rAF(iterate);\n } else {\n if (defer.length) {\n process.env.DEBUG &&\n defer.forEach(script =>\n c(delta(), \"adding deferred script from defer queue to reorder\", script.cloneNode(true))\n );\n reorder.push(...defer);\n defer.length = 0;\n\n // mayBePreloadScripts();\n nextTick(iterate);\n\n // process.env.DEBUG && c('loaded all the scripts');\n // not restoring original addEventListener\n // to avoid unexpected failures,\n // however, that triggers spurious handlers which were sleeping\n // d[addEventListener] = dOrigAddEventListener;\n } else if (hasUnfiredListeners([DCL, RSC, M])) {\n process.env.DEBUG && c(delta(), \"firing unfired listeners\");\n fireQueuedEvents([DCL, RSC, M]);\n nextTick(iterate);\n } else if (WindowLoaded) {\n // as cycle starts in 'fi' listener\n if (hasUnfiredListeners([L, M])) {\n fireQueuedEvents([L, M]);\n nextTick(iterate);\n } else if (scriptsToLoad.length > 1) {\n // can get here only if started loading async scripts\n process.env.DEBUG && c(delta(), `waiting for ${scriptsToLoad.length - 1} more scripts to load`, scriptsToLoad);\n rIC(iterate);\n } else if (async.length) {\n process.env.DEBUG &&\n async.forEach(script =>\n c(delta(), \"adding async script from async queue to reorder\", script.cloneNode(true))\n );\n\n reorder.push(...async);\n async.length = 0;\n\n // mayBePreloadScripts();\n nextTick(iterate);\n } else {\n // CloudFlare RocketLoader workaround\n if (w.RocketLazyLoadScripts) {\n try {\n RocketLazyLoadScripts.run();\n } catch (e) {\n ce(e);\n }\n }\n d.readyState = \"complete\";\n\n // restoring message listener here to avoid messages that can fall\n // in the gap before EVENT_THE_END fires\n restoreMessageListener();\n\n // restoring original jQuery.ready here to avoid calls that can fall\n // in the gap before EVENT_THE_END fires\n jQuery.unmock();\n\n // We can't restore original event listeners\n // because on slow connections, 3rd party scripts might be loaded late\n // and bind to window.load or anything else we track\n // documentAddEventListener = dOrigAddEventListener;\n // documentRemoveEventListener = dOrigRemoveEventListener;\n // windowAddEventListener = wOrigAddEventListener;\n // windowRemoveEventListener = wOrigRemoveEventListener;\n\n // process.env.DEBUG && c('running emulatedWindowLoaded');\n // technically, iterating = false is not needed\n // as the only place where it is checked is inside window.load\n // and here he has already fired as WindowLoaded === true\n iterating = false;\n DONE = true;\n\n // setTimeout(() => dispatcher.emit(EVENT_THE_END));\n w[_setTimeout](() => scriptLoaded({ target: -1 }));\n }\n } else {\n // exiting iterate() cycle in case window.load hasn't fired yet\n iterating = false;\n }\n }\n};\n\nconst cloneScript = (el) => {\n\n const newElement = dOrigCreateElement(S);\n\n const attrs = el.attributes;\n // console.log(\"newElement\", attrs.map(attr => attr.name + \"=\" + attr.value));\n\n // move attributes\n for (var i = attrs.length - 1; i >= 0; i--) {\n if (!attrs[i].name.startsWith(prefix)) {\n newElement[setAttribute](attrs[i].name, attrs[i].value);\n }\n }\n\n const type = el[getAttribute](prefix + \"type\"); // data-wpmeteor-type\n if (type) {\n newElement.type = type;\n } else {\n newElement.type = \"text/javascript\";\n }\n\n // CloudFlare RocketLoader workaround\n if ((el.textContent || \"\").match(/^\\s*class RocketLazyLoadScripts/)) {\n newElement.textContent = el.textContent.replace(/^\\s*class\\s*RocketLazyLoadScripts/, \"window.RocketLazyLoadScripts=class\").replace(\"RocketLazyLoadScripts.run();\", \"\");\n } else {\n newElement.textContent = el.textContent;\n }\n\n // these might not be set as attributes, but instead as properties\n for (const property of [\"onload\", \"onerror\", \"onreadystatechange\"]) {\n if (el[property]) {\n process.env.DEBUG && c(delta(), `re-adding ${property} to`, el, el[property]);\n newElement[property] = el[property];\n }\n }\n\n return newElement;\n};\n\n// let scriptsToInsert = 0;\n/*\nconst replaceScript = (el, newElement) => {\n const parentNode = el.parentNode;\n if (parentNode) {\n // some scripts want parentNode to remove script themselves\n const newParent = parentNode.nodeType === 11\n ? dOrigCreateElement(parentNode.host[tagName])\n : dOrigCreateElement(parentNode[tagName]);\n // rAF is probably inacceptable for inline scripts at least. Here is the catch\n // a script is supposed to create another script which should be captured by MutationObserver\n // but by the time document.createElement() is called, iterating = false\n // this is temporary fix, probably there are better solutions\n // scriptsToInsert++;\n // rAF(() => {\n // scriptsToInsert--;\n // newParent[appendChild](parentNode.replaceChild(newElement, el));\n // });\n newParent[appendChild](parentNode.replaceChild(newElement, el));\n if (!parentNode.isConnected) {\n // it happens sometimes, so no need to trigger verbose error\n process.env.DEBUG && ce(\"Parent for\", el, \" is not part of the DOM\");\n // we have to return empty element to trigger onload() callback\n // instantly instead of waiting for never firing onload event listener\n return;\n }\n return el;\n }\n ce(\"No parent for\", el);\n};\n*/\n\nconst unblock = (el, callback) => {\n // const ds = el.dataset;\n let src = el[getAttribute](prefix + \"src\");\n // convert relative to absolute if SPO\n process.env.SPO && src && _wpmeteor.baseURL && (() => { try { src = new URL(src, _wpmeteor.baseURL).href; } catch { } })(); // eslint-disable-line no-empty\n\n if (src) {\n process.env.DEBUG && c(delta(), \"unblocking src\", src);\n\n const addEventListener = origAddEventListener.bind(el);\n\n // if (el.getEventListeners) {\n // el.getEventListeners().forEach(([event, listener]) => {\n // process.env.DEBUG && c(delta(), \"re-adding event listeners to element\", event, listener);\n // addEventListener(event, listener);\n // });\n // }\n\n if (el.isConnected && callback) {\n addEventListener(L, callback);\n addEventListener(E, callback);\n }\n\n /** setting type before src is crucial for load/error events to be triggered \n * According to the HTML5 specification, when a script element is inserted \n * into the document, it starts fetching the script as soon as the src attribute is encountered, \n * provided the type is a recognized script type. If the type is not set correctly at that point, \n * the script will not be fetched.\n */\n /* el.origtypegets and sets original \"type\" attribute, el.type points to data-wpmeteor-src */\n el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n /* el.origsrc gets and sets original \"src\" attribute, el.src points to data-wpmeteor-src */\n el.origsrc = src;\n\n /** Do not remove prefix + \"src\" and prefix + \"type\" attributes, they are needed in the following case:\n * * document.currentScript.getAttribute('src') will return null if they are removed\n * as access to the attributes is still wrapped by us\n */\n // el[removeAttribute](prefix + \"src\");\n // el[removeAttribute](prefix + \"type\");\n\n process.env.DEBUG && c(delta(), \"unblocked src\", src, el);\n // http://www.iana.org/assignments/media-types/media-types.xhtml\n // in fact only text/javascript is the right one, the rest is obsolete\n if ((!el.isConnected || el[hasAttribute](\"nomodule\") || (el.type && !isJavascriptRegexp.test(el.type))) && callback) {\n // listeners won't fire\n // so have to trigger callback\n callback(new Event(L, { target: el }));\n }\n } else if (el.origtype === javascriptBlocked) {\n // onLoad is never passed here\n process.env.DEBUG && c(delta(), \"unblocking inline\", el);\n el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n // have to insert updated content in order to trigger execution\n // we are going to change the content, so integrity is not valid anymore\n el[removeAttribute](\"integrity\");\n el.textContent = el.textContent + \"\\n\";\n process.env.DEBUG && c(delta(), \"unblocked inline\", el);\n } else {\n process.env.DEBUG && ce(delta(), \"already unblocked\", el);\n if (callback) {\n callback(new Event(L, { target: el }));\n }\n }\n};\n// TODO: support for ...args ????\nconst removeQueuedEventListener = (name, func) => {\n const pos = (listeners[name] || []).indexOf(func);\n if (pos >= 0) {\n listeners[name][pos] = undefined;\n return true;\n }\n};\n\nconst documentAddEventListener = (event, func, ...args) => {\n if (\"HTMLDocument::\" + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n dispatcher.on(EVENT_THE_END, d[addEventListener].bind(d, event, func, ...args));\n return;\n }\n if (func && (event === DCL || event === RSC)) {\n process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n const name = documentEventPrefix + event;\n listeners[name] = listeners[name] || [];\n listeners[name].push(func);\n if (DONE) {\n fireQueuedEvents([event]);\n }\n return;\n }\n return dOrigAddEventListener(event, func, ...args);\n};\n\n// ...args were missing, making it impossible to remove listeners for google maps mobile\nconst documentRemoveEventListener = (event, func, ...args) => {\n if (event === DCL) {\n const name = documentEventPrefix + event;\n removeQueuedEventListener(name, func);\n }\n return dOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(d, {\n [addEventListener]: {\n get() { return documentAddEventListener; },\n set() { return documentAddEventListener; },\n },\n [removeEventListener]: {\n get() { return documentRemoveEventListener; },\n set() { return documentRemoveEventListener; },\n }\n});\n\nlet preloadsAndPreconnectsFragment = d.createDocumentFragment();\nconst flushPreloadsAndPreconnects = () => {\n if (preloadsAndPreconnectsFragment.hasChildNodes()) {\n d.head[appendChild](preloadsAndPreconnectsFragment);\n preloadsAndPreconnectsFragment = d.createDocumentFragment();\n }\n};\nconst preconnects = {};\nconst preconnect = (src) => {\n if (!src)\n return;\n try {\n const url = new URL(src, d.location.href);\n const href = url.origin;\n if (href && !preconnects[href] && d.location.host !== url.host) {\n const s = dOrigCreateElement(\"link\");\n s.rel = \"preconnect\";\n s.href = href;\n preloadsAndPreconnectsFragment[appendChild](s);\n process.env.DEBUG && c(delta(), \"preconnecting\", url.origin);\n preconnects[href] = true;\n if (iterating) {\n rAF(flushPreloadsAndPreconnects);\n }\n }\n } catch (e) {\n process.env.DEBUG && ce(delta(), \"failed to parse src for preconnect\", src, e);\n }\n};\n\nconst preloads = {};\nconst preloadAsScript = (src, isModule, crossorigin, integrity) => {\n const s = dOrigCreateElement(\"link\");\n s.rel = isModule\n ? \"modulepre\" + L\n : \"pre\" + L;\n s.as = \"script\";\n if (crossorigin)\n s[setAttribute](\"crossorigin\", crossorigin); // must be setAttribute\n if (integrity)\n s[setAttribute](\"integrity\", integrity); // must be setAttribute\n try {\n src = new URL(src, d.location.href).href;\n } catch { }\n s.href = src;\n preloadsAndPreconnectsFragment[appendChild](s);\n preloads[src] = true;\n process.env.DEBUG && c(delta(), s.rel, src);\n if (iterating) {\n rAF(flushPreloadsAndPreconnects);\n }\n};\n\n/*\nconst mayBePreloadScripts = () => {\n if (_wpmeteor.preload && reorder.length) {\n reorder.forEach(script => {\n const src = script[getAttribute](prefix + \"src\");\n if (src && !preloads[src] && !script[hasAttribute](\"nomodule\")) {\n preloadAsScript(src, script[getAttribute](prefix + \"type\") == \"module\", script[hasAttribute](\"crossorigin\") && script[getAttribute](\"crossorigin\"), script[getAttribute](\"integrity\"));\n }\n });\n }\n};\n*/\n\n/*\ndOrigAddEventListener(DCL, () => {\n const treorder = [...reorder];\n reorder.length = 0;\n [...d[querySelectorAll](\"script[type='\" + javascriptBlocked + \"']\"), ...treorder].forEach(el => {\n // this is a workaround to skip nodes that were detected in MutationObserver\n // and already hit iterate(), however, they miss the next Object_defineProperty() for origtype\n // so this is incorrect, and doesn't work, check for node.origtype presense was added\n // with fixed MutationObserver this is not needed anymore\n if (seenScripts.has(el)) {\n process.env.DEBUG && ce(delta(), \"WARNING: the scripts should have been filtered in MutationObserver\", el);\n return;\n }\n const originalAttributeGetter = el[__lookupGetter__](\"type\").bind(el);\n Object_defineProperty(el, \"origtype\", {\n get() {\n return originalAttributeGetter();\n }\n });\n if ((el[getAttribute](prefix + \"src\") || \"\").match(/\\/gtm.js\\?/)) {\n process.env.DEBUG && c(delta(), \"delaying regex\", el[getAttribute](prefix + \"src\"));\n async.push(el);\n } else if (el[hasAttribute](\"async\")) {\n process.env.DEBUG && c(delta(), \"delaying async\", el[getAttribute](prefix + \"src\"));\n async.unshift(el);\n } else if (el[hasAttribute](\"defer\")) {\n process.env.DEBUG && c(delta(), \"delaying defer\", el[getAttribute](prefix + \"src\"));\n defer.push(el);\n } else {\n reorder.push(el);\n }\n seenScripts.add(el);\n });\n // we will loose all event listeners, so we'd better track addEventListener/removeEventListener as well\n // not supported yet, cant find reference in backend\n // const querySelectors = ['link'].map(n => n + '[' + prefix + 'onload]').join(',');\n // d.querySelectorAll(querySelectors).forEach(el => reorder.push(el));\n});\n*/\n\n/* 3rd party scripts handling */\nconst createElement = function (...args) {\n\n const scriptElt = dOrigCreateElement(...args);\n\n // createElement(null), createElement(undefined) are valid calls\n // so we have to check for args[0] presence\n if (!args || args[0].toUpperCase() !== S || !iterating) {\n return scriptElt;\n }\n\n process.env.DEBUG && c(delta(), \"creating script element\");\n\n // Backup the original setAttribute function\n const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);\n const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);\n const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);\n const originalAttributes = scriptElt[__lookupGetter__](\"attributes\").bind(scriptElt);\n\n // originalSetAttribute(prefix + \"after\", \"REORDER\");\n // originalSetAttribute(prefix + \"type\", \"text/javascript\");\n\n // scriptElt.type = javascriptBlocked;\n\n // const eventListeners = [];\n // scriptElt.getEventListeners = () => {\n // return eventListeners;\n // };\n\n capturedAttributes.forEach(property => {\n const originalAttributeGetter = scriptElt[__lookupGetter__](property).bind(scriptElt);\n const originalAttributeSetter = scriptElt[__lookupSetter__](property).bind(scriptElt);\n O[definePropert + \"y\"](scriptElt, property, {\n set(value) {\n process.env.DEBUG && c(delta(), \"setting \", property, value);\n // bypass for application/ld+json and similar\n if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n return scriptElt[setAttribute](property, value);\n }\n if (property === \"src\" && value) {\n originalSetAttribute(\"type\", javascriptBlocked);\n } else if (property === \"type\" && value && scriptElt.origsrc) {\n originalSetAttribute(\"type\", javascriptBlocked);\n }\n return value\n ? scriptElt[setAttribute](prefix + property, value)\n : scriptElt[removeAttribute](prefix + property);\n },\n get() {\n const result = scriptElt[getAttribute](prefix + property);\n if (property === \"src\") {\n // convert to absolute\n try {\n const url = new URL(result, d.location.href);\n return url.href;\n } catch {\n // eslint-disable-line no-empty\n }\n }\n return result;\n }\n });\n Object_defineProperty(scriptElt, \"orig\" + property, {\n set(value) {\n return originalAttributeSetter(value);\n },\n get() {\n return originalAttributeGetter();\n }\n });\n\n });\n\n // this is not needded anymore as we are not copying the node\n // so we don't need to reattach the listeners\n // scriptElt[addEventListener] = function (event, handler) {\n // eventListeners.push([event, handler]);\n // };\n\n // Monkey patch the setAttribute function so that the setter is called instead.\n // Otherwise, setAttribute('type', 'whatever') will bypass our custom descriptors!\n scriptElt[setAttribute] = function (property, value) {\n if (capturedAttributes.includes(property)) {\n process.env.DEBUG && c(delta(), \"setting attribute\", property, value);\n // bypass for application/ld+json and similar\n if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n return originalSetAttribute(property, value);\n }\n if (property === \"src\" && value) {\n originalSetAttribute(\"type\", javascriptBlocked);\n } else if (property === \"type\" && value && scriptElt.origsrc) {\n originalSetAttribute(\"type\", javascriptBlocked);\n }\n return value\n ? originalSetAttribute(prefix + property, value)\n : scriptElt[removeAttribute](prefix + property);\n } else {\n originalSetAttribute(property, value);\n }\n };\n\n scriptElt[getAttribute] = function (property) {\n const result = capturedAttributes.indexOf(property) >= 0\n ? originalGetAttribute(prefix + property)\n : originalGetAttribute(property);\n if (property === \"src\") {\n // convert to absolute\n try {\n const url = new URL(result, d.location.href);\n return url.href;\n } catch {\n // eslint-disable-line no-empty\n }\n }\n return result;\n };\n\n scriptElt[hasAttribute] = function (property) {\n return capturedAttributes.indexOf(property) >= 0\n ? originalHasAttribute(prefix + property)\n : originalHasAttribute(property);\n };\n\n /* very shallow mocking of NamedNodeMap */\n Object_defineProperty(scriptElt, \"attributes\", {\n get() {\n const mock = [...originalAttributes()]\n .filter(attr => attr.name !== \"type\") // no need to filter as we no longer append it && attr.name !== prefix + \"after\")\n .map(attr => {\n return {\n name: attr.name.match(new RegExp(prefix))\n ? attr.name.replace(prefix, \"\")\n : attr.name,\n value: attr.value\n };\n });\n return mock;\n }\n });\n\n // this is to make it to the async queue where it belongs\n scriptElt[__dynamic] = true;\n\n return scriptElt;\n};\n\n// Allowing to override, but still not the best option - onetrust captures createElement \n// even for users who accepted cookies\nObject.defineProperty(Document[prototype], \"createElement\", {\n set(value) {\n if (process.env.DEBUG) {\n if (value == origCreateElement) {\n process.env.DEBUG && c(delta(), \"document.createElement restored to original\");\n } else if (value === createElement) {\n process.env.DEBUG && c(delta(), \"document.createElement overridden\");\n } else {\n process.env.DEBUG && c(delta(), \"document.createElement overridden by a 3rd party script\");\n }\n }\n if (value !== createElement) {\n createElementOverride = value;\n }\n },\n get() {\n return createElementOverride || createElement;\n }\n});\n\nconst seenScripts = new Set();\nconst observer = new MutationObserver(mutations => {\n mutations.forEach(({ removedNodes, addedNodes, target }) => {\n // this is the case for https://essential-addons.com/elementor/offcanvas-content/\n // which, in EAELOffcanvasContent.prototype = { init: function() { \n // ... 0 === e(\".eael-offcanvas-container\").length && (e(\"body\").wrapInner('<div class=\"eael-offcanvas-container eael-offcanvas-container-' + this.id + '\" />'),\n // }}\n // wraps the whole body into a div, removes some scripts from the DOM and reinserts them wrapped in .eael-offcanvas-container.eael-offcanvas-container-<id>\n removedNodes.forEach(node => {\n // For each removed script tag\n if (node.nodeType === 1 && S === node[tagName] && \"origtype\" in node) {\n seenScripts.delete(node);\n }\n });\n addedNodes.forEach(node => {\n // For each added script tag\n if (node.nodeType === 1) {\n if (S === node[tagName]) {\n // process.env.DEBUG && c(delta(), \"XXXX\", node, node.origtype, node[getAttribute](\"type\"));\n if (\"origtype\" in node) {\n // process.env.DEBUG && c(delta(), \"mutationobserver captured some script\", node.cloneNode(true));\n if (node.origtype !== javascriptBlocked) {\n process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n return;\n }\n } else if (node[getAttribute](\"type\") !== javascriptBlocked) {\n process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n return;\n }\n // all the intercepted nodes inserted by createElement() should have origtype getter\n if (!(\"origtype\" in node)) {\n process.env.DEBUG && (node[getAttribute](\"type\") === javascriptBlocked\n ? c(delta(), \"mutationobserver captured blocked script\", node)\n : c(delta(), \"mutationobserver captured non-javascript script\", node));\n capturedAttributes.forEach(property => {\n const originalAttributeGetter = node[__lookupGetter__](property).bind(node);\n const originalAttributeSetter = node[__lookupSetter__](property).bind(node);\n Object_defineProperty(node, \"orig\" + property, {\n set(value) {\n return originalAttributeSetter(value);\n },\n get() {\n return originalAttributeGetter();\n }\n });\n });\n } else {\n process.env.DEBUG && c(delta(), \"mutationobserver captured new script\", node.cloneNode(true));\n }\n\n // const src = node[getAttribute](prefix + \"src\");\n const src = node[getAttribute](prefix + \"src\");\n\n if (seenScripts.has(node)) {\n ce(\"Inserted twice\", node);\n }\n\n if (node.parentNode) {\n seenScripts.add(node);\n if ((src || \"\").match(/\\/gtm.js\\?/)) {\n process.env.DEBUG && c(delta(), \"delaying regex\", node[getAttribute](prefix + \"src\"));\n async.push(node);\n preconnect(src);\n } else if (node[hasAttribute](\"async\") || node[__dynamic]) {\n process.env.DEBUG && c(delta(),\n node.__async\n ? \"delaying dynamically inserted script as async\"\n : \"delaying async\",\n node[getAttribute](prefix + \"src\"));\n async.push(node);\n preconnect(src);\n } else if (node[hasAttribute](\"defer\")) {\n process.env.DEBUG && c(delta(), \"delaying defer\", node[getAttribute](prefix + \"src\"));\n defer.push(node);\n preconnect(src);\n } else {\n if (src && !node[hasAttribute](\"nomodule\") && !preloads[src]) {\n // no need to preload if it is the next script in the queue\n // VWO removes node instantly\n // preloading \n c(delta(), \"pre preload\", reorder.length);\n preloadAsScript(src, node[getAttribute](prefix + \"type\") == \"module\", node[hasAttribute](\"crossorigin\") && node[getAttribute](\"crossorigin\"), node[getAttribute](\"integrity\"));\n }\n reorder.push(node);\n }\n } else {\n // if the node has been instanly removed, we still want to load it and run\n // I tested appendNode(script); removeNode(script) - it still loads and triggers the code\n process.env.DEBUG && ce(\"No parent node for\", node, \"re-adding to\", target);\n node[addEventListener](L, e => e.target.parentNode[removeChild](e.target));\n node[addEventListener](E, e => e.target.parentNode[removeChild](e.target));\n target[appendChild](node);\n // no need to push to seenScripts and reorder as it will happen on the next iteration\n // of MutationObserver\n }\n } else if (\"LINK\" === node[tagName] && node[getAttribute](\"as\") === \"script\") {\n preloads[node[getAttribute](\"href\")] = true;\n }\n }\n });\n });\n});\n\nconst mutationObserverOptions = {\n childList: true,\n subtree: true,\n // attributes: true,\n // attributeFilter: ['src', 'type'],\n // attributeOldValue: true,\n};\n\nobserver.observe(d.documentElement, mutationObserverOptions);\n\nconst origAttachShadow = HTMLElement[prototype].attachShadow;\nHTMLElement[prototype].attachShadow = function (options) {\n const shadowRoot = origAttachShadow.call(this, options);\n if (options.mode === \"open\") {\n observer.observe(shadowRoot, mutationObserverOptions);\n }\n return shadowRoot;\n};\n\nprocess.env.SPO || (() => {\n const origIFrameSrc = O[getOwnPropertyDescriptor](HTMLIFrameElement[prototype], \"src\");\n Object_defineProperty(HTMLIFrameElement[prototype], \"src\", {\n get() {\n if (this.dataset.fpoSrc) {\n return this.dataset.fpoSrc;\n }\n return origIFrameSrc.get.call(this);\n },\n set(value) {\n delete this.dataset.fpoSrc;\n origIFrameSrc.set.call(this, value);\n }\n });\n})();\n\n// cleaning up\ndispatcher.on(EVENT_THE_END, () => {\n process.env.DEBUG && c(delta(), \"THE END\");\n if (!createElementOverride || createElementOverride === createElement) {\n Document[prototype].createElement = origCreateElement;\n observer.disconnect();\n } else {\n process.env.DEBUG && c(delta(), \"createElement is overridden, keeping observers in place\");\n }\n // we should only fire EVENT_REPLAY_CAPTURED_EVENTS if no lazyload is in the page\n // eg in pure WP METEOR mode, not for FASTPIXEL\n process.env.SPO || dispatchEvent(new CustomEvent(EVENT_REPLAY_CAPTURED_EVENTS));\n dispatchEvent(new CustomEvent(EVENT_THE_END));\n});\n/* end 3rd party scripts handling */\n\n/* we have to override document.write as all of them will fire after DOMContentLoaded */\nlet documentWrite = (str) => {\n let parent, currentScript;\n if (!d.currentScript || !d.currentScript.parentNode) {\n /* trying our best */\n parent = d.body;\n currentScript = parent.lastChild;\n } else {\n currentScript = d.currentScript;\n parent = currentScript.parentNode;\n }\n try {\n const df = dOrigCreateElement(\"div\");\n df.innerHTML = str;\n Array.from(df.childNodes).forEach(node => {\n if (node.nodeName === S) {\n // cloneScript is a must for safari\n parent.insertBefore(cloneScript(node), currentScript);\n } else {\n parent.insertBefore(node, currentScript);\n }\n });\n } catch (e) {\n ce(e);\n }\n};\nlet documentWriteLn = (str) => documentWrite(str + \"\\n\");\n\nObject_defineProperties(d, {\n \"write\": {\n get() { return documentWrite; },\n set(func) { return documentWrite = func; },\n },\n \"writeln\": {\n get() { return documentWriteLn; },\n set(func) { return documentWriteLn = func; },\n },\n});\n\n// Capturing and queueing Window Load event handlers\nlet windowAddEventListener = (event, func, ...args) => {\n // We have to skip registering message listeners if DONE, as we already restored \n // original eventListener to messages in restoreMessageListener()\n // ??? not sure why there is windowEventPrefix instead of documentEventPrefix\n // but I think this was to workaround some external javascripts\n if (windowEventPrefix + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n return;\n }\n if (windowEventPrefix + L == currentlyFiredEvent && event === L) {\n dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n return;\n }\n if (func && (event === L || event === DCL || (event === M && !DONE))) {\n process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n listeners[name] = listeners[name] || [];\n listeners[name].push(func);\n if (DONE) {\n fireQueuedEvents([event]);\n }\n return;\n }\n // process.env.DEBUG && c(event, func);\n return wOrigAddEventListener(event, func, ...args);\n};\nlet windowRemoveEventListener = (event, func, ...args) => {\n if (event === L) { // L = load\n const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n removeQueuedEventListener(name, func);\n }\n return wOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(w, {\n [addEventListener]: {\n get() { return windowAddEventListener; },\n set() { return windowAddEventListener; },\n },\n [removeEventListener]: {\n get() { return windowRemoveEventListener; },\n set() { return windowRemoveEventListener; },\n }\n});\n\nconst onHandlerOptions = (name) => {\n let handler;\n return {\n get() {\n process.env.DEBUG && c(delta(), separator, \"getting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", handler);\n return handler;\n },\n set(func) {\n process.env.DEBUG && c(delta(), separator, \"setting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", func);\n // only last handler should fire\n if (handler) {\n removeQueuedEventListener(name, func);\n }\n listeners[name] = listeners[name] || [];\n listeners[name].push(func);\n return handler = func;\n },\n // rocket-loader from CloudFlare tries to override onload so we will let him\n // configurable: true,\n };\n};\n\n/* \n * this code handles event from onload attributes\n * when rewriting body, iframes, images and scripts\n * we move original onload attribute to data-wpemeteor-onload\n * and replace onload with a function that fires CustomEvent(EVENT_ELEMENT_LOADED)\n */\n// bind to window\n// 2024-02-18: it seems that the only element we need this workaround are <document onload> and <html onload>\nwOrigAddEventListener(EVENT_ELEMENT_LOADED, e => {\n const { target, event } = e.detail;\n const el = target === w ? d.body : target;\n const func = el[getAttribute](prefix + \"on\" + event.type);\n el[removeAttribute](prefix + \"on\" + event.type);\n try {\n const f = new Function(\"event\", func);\n if (target === w) {\n // the trick here is to enqueue Window::load\n // using overridden window.addEventListener\n w[addEventListener](L, f.bind(target, event));\n } else {\n f.call(target, event);\n }\n } catch (err) {\n console.err(err);\n }\n});\n\n// overriding window.onload and document.body.onload, they are the same function\n{\n\n const options = onHandlerOptions(windowEventPrefix + L);\n Object_defineProperty(w, \"onload\", options);\n dOrigAddEventListener(DCL, () => {\n Object_defineProperty(d.body, \"onload\", options);\n });\n}\n// overriding document.onreadystatechange\nObject_defineProperty(d, \"onreadystatechange\", onHandlerOptions(documentEventPrefix + RSC));\n// overriding window.onmessage\nObject_defineProperty(w, \"onmessage\", onHandlerOptions(windowEventPrefix + M));\n\nprocess.env.SPO &&\n wOrigAddEventListener(EVENT_CSS_LOADED, () => {\n w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n });\n\nprocess.env.SPO\n || (() => {\n\n const wheight = w.innerHeight;\n const wwidth = w.innerWidth;\n\n const intersectsViewport = (el) => {\n // chrome settings\n // https://web.dev/browser-level-image-lazy-loading/#improved-data-savings-and-distance-from-viewport-thresholds\n let extras = {\n \"4g\": 1250,\n \"3g\": 2500,\n \"2g\": 2500,\n };\n\n const extra = extras[(navigator.connection || {}).effectiveType] || 0;\n const rect = el.getBoundingClientRect();\n const viewport = {\n top: -1 * wheight - extra,\n left: -1 * wwidth - extra,\n bottom: wheight + extra,\n right: wwidth + extra\n };\n\n // If one rectangle is on left side of other\n if (rect.left >= viewport.right || rect.right <= viewport.left)\n return false;\n\n // If one rectangle is above other\n if (rect.top >= viewport.bottom || rect.bottom <= viewport.top)\n return false;\n\n return true;\n };\n\n const waitForImages = (reallyWait = true) => {\n let imagesToLoad = 1;\n let imagesLoadedCount = -1;\n const seen = {};\n\n const imageLoadedHandler = () => {\n imagesLoadedCount++;\n // let's trigger \n if (!--imagesToLoad) {\n process.env.DEBUG && c(delta(), imagesLoadedCount + \" eager images loaded\");\n // there are 2 options here\n // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n\n // 1.\n w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n // 2. \n // should never get there, as we bypass waitForImages()\n // dispatcher.emit(EVENT_IMAGES_LOADED);\n }\n };\n\n Array.from(d.getElementsByTagName(\"*\")).forEach(tag => {\n let src, style, bgUrl;\n if (tag[tagName] === \"IMG\") {\n let _src = tag.currentSrc || tag.src; // trying to capture srcsets if they are already loading\n if (_src && !seen[_src] && !_src.match(/^data:/i)) {\n if ((tag.loading || \"\").toLowerCase() !== \"lazy\") {\n src = _src;\n process.env.DEBUG && c(delta(), \"loading image\", src, \"for\", tag);\n } else if (intersectsViewport(tag)) { // lazy && already loading\n src = _src;\n process.env.DEBUG && c(delta(), \"loading lazy image\", src, \"for\", tag);\n }\n }\n } else if (tag[tagName] === S) {\n preconnect(tag[getAttribute](prefix + \"src\"));\n } else if (tag[tagName] === \"LINK\" && tag[getAttribute](\"as\") === \"script\" && [\"pre\" + L, \"modulepre\" + L].indexOf(tag[getAttribute](\"rel\")) >= 0) {\n preloads[tag[getAttribute](\"href\")] = true;\n // supposedly all CSS has already been loaded\n } else if ((style = w.getComputedStyle(tag)) && (bgUrl = (style.backgroundImage || \"\").match(/^url\\s*\\((.*?)\\)/i)) && (bgUrl || []).length) { // eslint-disable-line no-cond-assign\n const url = bgUrl[0].slice(4, -1).replace(/\"/g, \"\");\n if (!seen[url] && !url.match(/^data:/i)) {\n src = url;\n process.env.DEBUG && c(delta(), \"loading background\", src, \"for\", tag);\n }\n }\n if (src) {\n seen[src] = true;\n const temp = new Image();\n if (reallyWait) {\n imagesToLoad++;\n temp[addEventListener](L, imageLoadedHandler);\n temp[addEventListener](E, imageLoadedHandler);\n }\n temp.src = src;\n }\n });\n d.fonts.ready.then(() => {\n process.env.DEBUG && c(delta(), \"fonts ready\");\n imageLoadedHandler();\n });\n };\n\n if (_wpmeteor.rdelay === 0) {\n // dOrigAddEventListener(DCL, () => nextTick(waitForImages.bind(null, false)));\n dOrigAddEventListener(DCL, waitForImages);\n } else {\n // there are 2 options here\n // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n // Reasoning for 1. is that on slow connections, we still want to wait for images to load\n\n // 1.\n wOrigAddEventListener(L, waitForImages);\n // 2.\n // w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n }\n })();\n"], "mappings": "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", "names": ["delta_default", "addEventListener", "removeEventListener", "getAttribute", "setAttribute", "removeAttribute", "hasAttribute", "querySelector", "querySelectorAll", "appendChild", "removeChild", "createElement", "tagName", "getOwnPropertyDescriptor", "prototype", "__lookupGetter__", "__lookupSetter__", "DCL", "L", "E", "w", "d", "de", "c", "ce", "mocked", "jQueryMock", "Mock", "Mock$", "override", "jQuery", "symbol", "enqueue", "func", "d", "addEventListener", "DCL", "e", "$", "oldReady", "oldPrototypeReady", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "EVENT_ELEMENT_LOADED", "EVENT_IMAGES_LOADED", "EVENT_THE_END", "EVENT_CLICK", "w", "wOrigAddEventListener", "wOrigRemoveEventListener", "ra", "ga", "sa", "passiveEvents", "activeEvents", "captureEvents", "prefix", "dispatchEvent", "synteticCick", "event", "EVENT_CLICK", "InteractionEvents", "firstInteractionFired", "p", "n", "w", "capturedEvents", "captureEvent", "e", "passiveEvents", "captureEvents", "sa", "prefix", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "activeEvents", "wOrigRemoveEventListener", "target", "ga", "ra", "wOrigAddEventListener", "browser_default", "InteractionEvents", "EventEmitter", "name", "data", "l", "callback", "c", "dispatcher_default", "EventEmitter", "$deviceMode", "d", "createElement", "setAttribute", "attached", "device_mode_default", "appendChild", "getClass", "el", "getAttribute", "setClass", "value", "setAttribute", "animations_default", "w", "addEventListener", "L", "mode", "device_mode_default", "vw", "de", "vh", "keys", "d", "querySelectorAll", "viewportOffset", "settings", "animationDelay", "animation", "key", "i", "oldClass", "newClass", "timeout", "dispatcher_default", "e", "inmega", "pp_menu_default", "div", "d", "createElement", "placeholder", "prevAll", "el", "result", "addEventListener", "DCL", "querySelectorAll", "ul", "getAttribute", "setAttribute", "prev", "tagName", "span", "appendChild", "mutations", "addedNodes", "node", "removeChild", "RSC", "M", "S", "prefix", "Object_defineProperty", "Object_defineProperties", "javascriptBlocked", "isJavascriptRegexp", "_rAF", "_rIC", "_setTimeout", "__dynamic", "windowEventPrefix", "w", "documentEventPrefix", "d", "forEach", "callback", "thisArg", "i", "prototype", "animations_default", "pp_menu_default", "reorder", "defer", "async", "DONE", "eventQueue", "listeners", "WindowLoaded", "firedEventsCount", "rAF", "rIC", "addEventListener", "nextTick", "createElementOverride", "capturedAttributes", "O", "definePropert", "object", "property", "options", "RSC", "L", "value", "setter", "properties", "sym", "origAddEventListener", "origRemoveEventListener", "removeEventListener", "dOrigAddEventListener", "dOrigRemoveEventListener", "wOrigAddEventListener", "wOrigRemoveEventListener", "origCreateElement", "dOrigCreateElement", "origReadyStateGetter", "__lookupGetter__", "readyState", "hasUnfiredListeners", "eventNames", "event", "context", "j", "name", "listenerKey", "firedListeners", "currentlyFiredEvent", "fireQueuedEvents", "func", "e", "ce", "DCL", "iterating", "M", "messageListener", "origWindowOnMessageGetter", "origWindowOnMessageSetter", "__lookupSetter__", "restoreMessageListener", "listener", "jQuery", "jQueryMock", "startIterating", "flushPreloadsAndPreconnects", "iterate", "EVENT_FIRST_INTERACTION", "dispatcher_default", "EVENT_IMAGES_LOADED", "browser_default", "scriptsToLoad", "scriptLoaded", "script", "EVENT_THE_END", "iterating", "iterate", "element", "reorder", "getAttribute", "prefix", "hasAttribute", "__dynamic", "scriptsToLoad", "scriptLoaded", "unblock", "nextTick", "javascriptBlocked", "defer", "hasUnfiredListeners", "DCL", "RSC", "M", "fireQueuedEvents", "WindowLoaded", "L", "rIC", "async", "w", "e", "ce", "d", "restoreMessageListener", "jQuery", "DONE", "_setTimeout", "cloneScript", "el", "newElement", "dOrigCreateElement", "S", "attrs", "i", "setAttribute", "type", "property", "callback", "src", "addEventListener", "origAddEventListener", "E", "isJavascriptRegexp", "removeAttribute", "removeQueuedEventListener", "name", "func", "pos", "listeners", "documentAddEventListener", "event", "args", "currentlyFiredEvent", "dispatcher_default", "EVENT_THE_END", "documentEventPrefix", "dOrigAddEventListener", "documentRemoveEventListener", "dOrigRemoveEventListener", "Object_defineProperties", "removeEventListener", "preloadsAndPreconnectsFragment", "flushPreloadsAndPreconnects", "appendChild", "preconnects", "preconnect", "url", "href", "s", "rAF", "preloads", "preloadAsScript", "isModule", "crossorigin", "integrity", "createElement", "scriptElt", "originalSetAttribute", "originalGetAttribute", "originalHasAttribute", "originalAttributes", "__lookupGetter__", "capturedAttributes", "originalAttributeGetter", "originalAttributeSetter", "__lookupSetter__", "O", "definePropert", "value", "result", "Object_defineProperty", "attr", "prototype", "createElementOverride", "seenScripts", "observer", "mutations", "removedNodes", "addedNodes", "target", "node", "tagName", "c", "delta_default", "removeChild", "mutationObserverOptions", "origAttachShadow", "options", "shadowRoot", "origIFrameSrc", "getOwnPropertyDescriptor", "origCreateElement", "EVENT_REPLAY_CAPTURED_EVENTS", "documentWrite", "str", "parent", "currentScript", "df", "documentWriteLn", "windowAddEventListener", "windowEventPrefix", "wOrigAddEventListener", "windowRemoveEventListener", "wOrigRemoveEventListener", "onHandlerOptions", "handler", "EVENT_ELEMENT_LOADED", "f", "err", "wheight", "wwidth", "intersectsViewport", "extra", "rect", "viewport", "waitForImages", "reallyWait", "imagesToLoad", "imagesLoadedCount", "seen", "imageLoadedHandler", "EVENT_IMAGES_LOADED", "tag", "style", "bgUrl", "_src", "temp"] }