Changeset 3264604
- Timestamp:
- 03/31/2025 04:56:31 PM (12 months ago)
- Location:
- wp-meteor/trunk
- Files:
-
- 10 edited
-
assets/css/admin/settings.css.map (modified) (1 diff)
-
assets/js/public/public-debug.js (modified) (4 diffs)
-
assets/js/public/public-debug.js.map (modified) (1 diff)
-
assets/js/public/public.js (modified) (1 diff)
-
assets/js/public/public.js.map (modified) (1 diff)
-
blocker/Exclusions/GDPR.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
src/js/public/public.js (modified) (4 diffs)
-
vendor/composer/installed.php (modified) (2 diffs)
-
wp-meteor.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-meteor/trunk/assets/css/admin/settings.css.map
r3264090 r3264604 1 1 { 2 2 "version": 3, 3 "sources": ["../../../src/css/vendor/settings.css", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/settings.scss", "../../../src/css/admin/%3Cinput%20css%20 p50BwT%3E", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/ultimate.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/simple.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/textarea.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/regexp-textarea.scss"],3 "sources": ["../../../src/css/vendor/settings.css", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/settings.scss", "../../../src/css/admin/%3Cinput%20css%20xnf7yB%3E", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/ultimate.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/simple.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/textarea.scss", "../../../src/css/admin/Users/ag/development/fastpixel-servers/packages/wp-meteor/src/css/admin/components/regexp-textarea.scss"], 4 4 "sourcesContent": [".ui-state-default{display:inline;border-color:#ccc;border-width:1px;border-style:solid;border-bottom-width:0px;padding:12px 0px;background:none repeat scroll 0% 0% #e4e4e4}.ui-tabs-nav{padding-bottom:9px;padding-left:10px;border-bottom:1px solid #ccc}.ui-tabs-anchor,.ui-tabs-anchor:focus{text-decoration:none;font-weight:600;font-size:15px;line-height:24px;color:#7f7f7f;padding:10px;box-shadow:none}.ui-tabs-anchor:hover,.ui-state-active a{color:black}.ui-tabs-active,.ui-tabs-active:hover,.ui-tabs-active:active{color:#000;background:#efefef !important}.metabox-holder .postbox{max-width:100%}.metabox-holder .postbox h3{padding-left:10px}.settings-tab{float:left}.right-column-settings-page{max-width:270px;float:right}\n", "\n@import '../vendor/settings.css';\n\n@keyframes opacity {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 1\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n#tabs .ui-state-disabled {\n opacity: 0.1;\n}\n\n#tabs {\n .ui-tabs-nav {\n display: flex;\n padding-bottom: 0px;\n\n .ui-tabs-tab {\n margin-bottom: 0px;\n }\n\n .ui-tabs-anchor, .ui-tabs-anchor:focus {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n }\n\n .tab { \n display: none; \n padding: 0 20px;\n }\n\n ul.content {\n padding-inline-start: 40px;\n li {\n list-style-type: circle;\n margin-left: 8px;\n }\n }\n\n .answer {\n padding-left: 20px;\n }\n\n}\n\n.settings-tab {\n float: none;\n [dir=\"rtl\"] & {\n direction: ltr;\n }\n}\n\n#author {\n .row {\n display: flex;\n flex-direction: row;\n }\n .author-image img {\n width: 20vw;\n height: auto;\n }\n .author-bio {\n padding-left: 10px;\n width: 70vw;\n button {\n padding: 2px;\n }\n }\n ul {\n padding-inline-start: 1em;\n li {\n list-style-type: circle;\n margin-left: 1em;\n }\n }\n}\n\n@media screen and (max-width: 414px) {\n #tabs {\n .ui-tabs-nav {\n display: flex;\n \n .ui-tabs-tab {\n writing-mode: vertical-lr;\n flex-grow: 1;\n }\n\n }\n }\n #author {\n h1 {\n text-align: center;\n }\n .row {\n flex-direction: column;\n }\n .author-image img {\n width: 100%;\n }\n }\n}\n\n.tooltip {\n &.__react_component_tooltip {\n z-index: 9999;\n }\n line-height: 1.4em;\n}\n\nsection.banner {\n width: 100%;\n background-color: #fff;\n display: flex;\n align-items: center;\n border: 1px solid #ccc;\n margin-top: 35px;\n margin-bottom: 45px;\n position: relative;\n\n .image, .line, .button-wrap {\n padding: 2px 4px;\n }\n\n .image img {\n width: 120px;\n }\n\n .line {\n font-weight: 600;\n font-size: 15px;\n }\n}\n\n\n@import './components/ultimate.scss';\n@import './components/simple.scss';\n@import './components/textarea.scss';\n@import './components/regexp-textarea.scss';", "@import '../vendor/settings.css';\n@keyframes opacity {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n#tabs .ui-state-disabled {\n opacity: 0.1;\n}\n\n#tabs .ui-tabs-nav {\n display: flex;\n padding-bottom: 0px;\n}\n#tabs .ui-tabs-nav .ui-tabs-tab {\n margin-bottom: 0px;\n}\n#tabs .ui-tabs-nav .ui-tabs-anchor, #tabs .ui-tabs-nav .ui-tabs-anchor:focus {\n display: block;\n width: 100%;\n height: 100%;\n}\n#tabs .tab {\n display: none;\n padding: 0 20px;\n}\n#tabs ul.content {\n padding-inline-start: 40px;\n}\n#tabs ul.content li {\n list-style-type: circle;\n margin-left: 8px;\n}\n#tabs .answer {\n padding-left: 20px;\n}\n\n.settings-tab {\n float: none;\n}\n[dir=rtl] .settings-tab {\n direction: ltr;\n}\n\n#author .row {\n display: flex;\n flex-direction: row;\n}\n#author .author-image img {\n width: 20vw;\n height: auto;\n}\n#author .author-bio {\n padding-left: 10px;\n width: 70vw;\n}\n#author .author-bio button {\n padding: 2px;\n}\n#author ul {\n padding-inline-start: 1em;\n}\n#author ul li {\n list-style-type: circle;\n margin-left: 1em;\n}\n\n@media screen and (max-width: 414px) {\n #tabs .ui-tabs-nav {\n display: flex;\n }\n #tabs .ui-tabs-nav .ui-tabs-tab {\n writing-mode: vertical-lr;\n flex-grow: 1;\n }\n #author h1 {\n text-align: center;\n }\n #author .row {\n flex-direction: column;\n }\n #author .author-image img {\n width: 100%;\n }\n}\n.tooltip {\n line-height: 1.4em;\n}\n.tooltip.__react_component_tooltip {\n z-index: 9999;\n}\n\nsection.banner {\n width: 100%;\n background-color: #fff;\n display: flex;\n align-items: center;\n border: 1px solid #ccc;\n margin-top: 35px;\n margin-bottom: 45px;\n position: relative;\n}\nsection.banner .image, section.banner .line, section.banner .button-wrap {\n padding: 2px 4px;\n}\nsection.banner .image img {\n width: 120px;\n}\nsection.banner .line {\n font-weight: 600;\n font-size: 15px;\n}\n\n.ultimate ul {\n display: flex;\n flex-direction: column;\n}\n.ultimate ul li {\n font-size: 1.2em;\n}\n.ultimate ul li .enabled {\n display: flex;\n margin: 0 4px;\n width: 322px;\n /* width: 434px; for 3s and 4s delays */\n overflow: hidden;\n line-height: 22px;\n}\n.ultimate ul li .enabled .slider {\n margin: 4px;\n width: 112px;\n /* width: 224px; for 3s and 4s delays */\n height: 20px;\n}\n.ultimate ul li .enabled .thumb {\n height: 20px;\n line-height: 20px;\n width: 20px;\n text-align: center;\n background-color: #fff;\n color: #000;\n border-radius: 50%;\n cursor: grab;\n box-shadow: 0 0 2px 3px #3bf;\n}\n.ultimate ul li .enabled .track {\n top: 0;\n bottom: 0;\n height: 16px;\n margin: 2px 0;\n border-radius: 999px;\n}\n.ultimate ul li label, .ultimate ul li .question-mark {\n margin-left: 8px;\n line-height: 30px;\n}\n.ultimate ul li .question-mark {\n margin-left: 4px;\n cursor: pointer;\n}\n\n[dir=rtl] .simple ul .enabled label {\n padding-left: 4px;\n}\n\n.textarea ul .enabled {\n display: block;\n}\n[dir=rtl] .textarea ul .enabled label {\n padding-left: 4px;\n}\n.textarea ul .description {\n margin: 10px 0 4px 0;\n width: 80vw;\n}\n.textarea ul textarea {\n height: 200px;\n width: 80vw;\n white-space: pre-line;\n}\n\n.regexp-textarea ul .enabled {\n display: block;\n}\n[dir=rtl] .regexp-textarea ul .enabled label {\n padding-left: 4px;\n}\n.regexp-textarea ul .description {\n margin: 10px 0 4px 0;\n width: 80vw;\n}\n.regexp-textarea ul div[contenteditable] {\n white-space: pre;\n display: inline-block;\n min-height: 16em;\n background-color: white;\n box-shadow: 0 0 0 transparent;\n border-radius: 4px;\n border: 1px solid #8c8f94;\n background-color: #fff;\n color: #2c3338;\n overflow: auto;\n padding: 2px 6px;\n line-height: 1.42857143;\n resize: vertical;\n width: 80%;\n}\n.regexp-textarea ul div[contenteditable] .error {\n margin: 0;\n border-bottom: 0;\n border-top: 0;\n padding: 0 4px;\n}\n.regexp-textarea ul div[contenteditable] .error::after {\n content: \"invalid regular expression\";\n float: right;\n color: red;\n}\n.regexp-textarea ul textarea {\n height: 200px;\n width: 80vw;\n white-space: pre-line;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL2FnL2RldmVsb3BtZW50L2Zhc3RwaXhlbC1zZXJ2ZXJzL3BhY2thZ2VzL3dwLW1ldGVvci9zcmMvY3NzL2FkbWluIiwic291cmNlcyI6WyJzZXR0aW5ncy5zY3NzIiwiY29tcG9uZW50cy91bHRpbWF0ZS5zY3NzIiwiY29tcG9uZW50cy9zaW1wbGUuc2NzcyIsImNvbXBvbmVudHMvdGV4dGFyZWEuc2NzcyIsImNvbXBvbmVudHMvcmVnZXhwLXRleHRhcmVhLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ1E7QUFFUjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7RUFHRjtJQUNFOzs7QUFJSjtFQUNFOzs7QUFJQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFLSjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFDQTtFQUNFO0VBQ0E7O0FBSUo7RUFDRTs7O0FBS0o7RUFDRTs7QUFDQTtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7O0FBRUY7RUFDRTtFQUNBOztBQUVGO0VBQ0U7RUFDQTs7QUFDQTtFQUNFOztBQUdKO0VBQ0U7O0FBQ0E7RUFDRTtFQUNBOzs7QUFLTjtFQUVJO0lBQ0U7O0VBRUE7SUFDRTtJQUNBOztFQU1KO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFLTjtFQUlFOztBQUhBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOzs7QUM3SUo7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0FBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUVBOztBQUdKO0VBQ0k7RUFDQTs7O0FDaERKO0VBQ0k7OztBQ0ZSO0VBQ0k7O0FBRUk7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQ2pCSjtFQUNJOztBQUVJO0VBQ0k7O0FBS1o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiXG5AaW1wb3J0ICcuLi92ZW5kb3Ivc2V0dGluZ3MuY3NzJztcblxuQGtleWZyYW1lcyBvcGFjaXR5IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuI3RhYnMgLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4xO1xufVxuXG4jdGFicyB7XG4gIC51aS10YWJzLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuXG4gICAgLnVpLXRhYnMtdGFiIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG5cbiAgICAudWktdGFicy1hbmNob3IsIC51aS10YWJzLWFuY2hvcjpmb2N1cyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICB9XG5cbiAgLnRhYiB7IFxuICAgIGRpc3BsYXk6IG5vbmU7IFxuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gIHVsLmNvbnRlbnQge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA0MHB4O1xuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAuYW5zd2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cblxufVxuXG4uc2V0dGluZ3MtdGFiIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gIH1cbn1cblxuI2F1dGhvciB7XG4gIC5yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAuYXV0aG9yLWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDIwdnc7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5hdXRob3ItYmlvIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgd2lkdGg6IDcwdnc7XG4gICAgYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICB9XG4gIH1cbiAgdWwge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxZW07XG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG4gICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MTRweCkge1xuICAjdGFicyB7XG4gICAgLnVpLXRhYnMtbmF2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gIFxuICAgICAgLnVpLXRhYnMtdGFiIHtcbiAgICAgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gICNhdXRob3Ige1xuICAgIGgxIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLnJvdyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICAuYXV0aG9yLWltYWdlIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnRvb2x0aXAge1xuICAmLl9fcmVhY3RfY29tcG9uZW50X3Rvb2x0aXAge1xuICAgIHotaW5kZXg6IDk5OTk7XG4gIH1cbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xufVxuXG5zZWN0aW9uLmJhbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLmltYWdlLCAubGluZSwgLmJ1dHRvbi13cmFwIHtcbiAgICBwYWRkaW5nOiAycHggNHB4O1xuICB9XG5cbiAgLmltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICB9XG5cbiAgLmxpbmUge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG59XG5cblxuQGltcG9ydCAnLi9jb21wb25lbnRzL3VsdGltYXRlLnNjc3MnO1xuQGltcG9ydCAnLi9jb21wb25lbnRzL3NpbXBsZS5zY3NzJztcbkBpbXBvcnQgJy4vY29tcG9uZW50cy90ZXh0YXJlYS5zY3NzJztcbkBpbXBvcnQgJy4vY29tcG9uZW50cy9yZWdleHAtdGV4dGFyZWEuc2Nzcyc7IiwiLnVsdGltYXRlIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG5cbiAgICAgICAgLmVuYWJsZWQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICB3aWR0aDogMzIycHg7XG4gICAgICAgICAgICAvKiB3aWR0aDogNDM0cHg7IGZvciAzcyBhbmQgNHMgZGVsYXlzICovXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG5cbiAgICAgICAgICAgIC5zbGlkZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMTJweDtcbiAgICAgICAgICAgICAgICAvKiB3aWR0aDogMjI0cHg7IGZvciAzcyBhbmQgNHMgZGVsYXlzICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGh1bWIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggM3B4ICMzYmZcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIC50cmFjayB7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycHggMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsLCAucXVlc3Rpb24tbWFyayB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgLy8gZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1ZXN0aW9uLW1hcmsge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5zaW1wbGUgdWwge1xuXG4gICAgLmVuYWJsZWQgbGFiZWwge1xuICAgICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gLnRvb2x0aXAge1xuICAgIC8vICAgICB6LWluZGV4OiA5OTk5O1xuICAgIC8vICAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgLy8gfVxufVxuIiwiLnRleHRhcmVhIHVsIHtcblxuICAgIC5lbmFibGVkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46IDEwcHggMCA0cHggMDtcbiAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICB3aWR0aDogODB2dztcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgIH1cbn1cbiIsIi5yZWdleHAtdGV4dGFyZWEgdWwge1xuXG4gICAgLmVuYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7IFxuICAgICAgICBtYXJnaW46IDEwcHggMCA0cHggMDtcbiAgICAgICAgd2lkdGg6IDgwdnc7XG4gICAgfVxuXG4gICAgZGl2W2NvbnRlbnRlZGl0YWJsZV0ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgXG4gICAgICAgIG1pbi1oZWlnaHQ6IDE2ZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOGM4Zjk0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBjb2xvcjogIzJjMzMzODtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgICB3aWR0aDogODAlO1xuXG4gICAgICAgIC5lcnJvciB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICB9XG4gICAgICAgIC5lcnJvcjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvblwiO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIHdpZHRoOiA4MHZ3O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgfVxufVxuIl19 */", ".ultimate ul {\n display: flex;\n flex-direction: column;\n\n li {\n font-size: 1.2em;\n\n .enabled {\n display: flex;\n margin: 0 4px;\n width: 322px;\n /* width: 434px; for 3s and 4s delays */\n overflow: hidden;\n line-height: 22px;\n\n .slider {\n margin: 4px;\n width: 112px;\n /* width: 224px; for 3s and 4s delays */\n height: 20px;\n }\n\n .thumb {\n height: 20px;\n line-height: 20px;\n width: 20px;\n text-align: center;\n background-color: #fff;\n color: #000;\n border-radius: 50%;\n cursor: grab;\n box-shadow: 0 0 2px 3px #3bf\n }\n \n .track {\n top: 0;\n bottom: 0;\n height: 16px;\n margin: 2px 0;\n border-radius: 999px;\n }\n }\n\n label, .question-mark {\n margin-left: 8px;\n // font-weight: 700;\n line-height: 30px;\n }\n\n .question-mark {\n margin-left: 4px;\n cursor: pointer;\n }\n }\n}\n", ".simple ul {\n\n .enabled label {\n [dir=\"rtl\"] & {\n padding-left: 4px;\n }\n }\n // .tooltip {\n // z-index: 9999;\n // line-height: 1.4em;\n // }\n}\n", ".textarea ul {\n\n .enabled {\n display: block;\n label {\n [dir=\"rtl\"] & {\n padding-left: 4px;\n }\n }\n }\n\n .description {\n margin: 10px 0 4px 0;\n width: 80vw;\n }\n\n textarea {\n height: 200px;\n width: 80vw;\n white-space: pre-line;\n }\n}\n", ".regexp-textarea ul {\n\n .enabled {\n display: block;\n label {\n [dir=\"rtl\"] & {\n padding-left: 4px;\n }\n }\n }\n\n .description { \n margin: 10px 0 4px 0;\n width: 80vw;\n }\n\n div[contenteditable] {\n white-space: pre;\n display: inline-block; \n min-height: 16em;\n background-color: white;\n box-shadow: 0 0 0 transparent;\n border-radius: 4px;\n border: 1px solid #8c8f94;\n background-color: #fff;\n color: #2c3338;\n overflow: auto;\n padding: 2px 6px;\n line-height: 1.42857143;\n resize: vertical;\n width: 80%;\n\n .error {\n margin: 0;\n border-bottom: 0;\n border-top: 0;\n padding: 0 4px;\n }\n .error::after {\n content: \"invalid regular expression\";\n float: right;\n color: red;\n }\n }\n \n textarea {\n height: 200px;\n width: 80vw;\n white-space: pre-line;\n }\n}\n"], 5 5 "mappings": "AAAA,CAAC,iBAAiB,QAAQ,OAAO,aAAa,KAAK,aAAa,IAAI,aAAa,MAAM,oBAAoB,IAA3G,QAAuH,KAAK,EAAI,WAAW,KAAK,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,CAAC,YAAY,eAAe,IAAI,aAAa,KAAK,cAAc,IAAI,MAAM,IAAI,CAAC,CAAC,eAAe,CAAf,cAA8B,OAAO,gBAAgB,KAAK,YAAY,IAAI,UAAU,KAAK,YAAY,KAAK,MAAM,QAA5W,QAA4X,KAAK,WAAW,IAAI,CAAC,CAArJ,cAAoK,OAAO,CAAC,gBAAgB,EAAE,MAAM,IAAK,CAAC,CAAC,eAAe,CAAf,cAA8B,OAAO,CAArC,cAAoD,QAAQ,MAAM,KAAK,WAAW,iBAAkB,CAAC,CAAC,eAAe,CAAC,QAAQ,UAAU,IAAI,CAAC,CAAvC,eAAuD,CAAvC,QAAgD,GAAG,aAAa,IAAI,CAAC,CAAC,aAAa,MAAM,IAAI,CAAC,CAAC,2BAA2B,UAAU,MAAM,MAAM,KAAK,CCGltB,WAAA,QACE,GACE,QAAA,CCDF,CDIA,IACE,QAAA,CCFF,CDKA,GACE,QAAA,CCHF,CACF,CDMA,CAAA,KAAA,CAAA,kBACE,QAAA,ECJF,CDQE,CALF,KAKE,CAAA,YACE,QAAA,KACA,eAAA,CCLJ,CDOI,CATJ,KASI,CAJF,YAIE,CAAA,YACE,cAAA,CCLN,CDQI,CAbJ,KAaI,CARF,YAQE,CAAA,eAAA,CAbJ,KAaI,CARF,YAQE,CAAA,cAAA,OACE,QAAA,MACA,MAAA,KACA,OAAA,ICNN,CDWE,CArBF,KAqBE,CAAA,IACE,QAAA,KAtCI,QAuCJ,EAAA,ICTJ,CDYE,CA1BF,KA0BE,EAAA,CAAA,QACE,qBAAA,ICVJ,CDWI,CA5BJ,KA4BI,EAAA,CAFF,QAEE,GACE,gBAAA,OACA,YAAA,GCTN,CDaE,CAlCF,KAkCE,CAAA,OACE,aAAA,ICXJ,CDgBA,CAAA,aACE,MAAA,ICbF,CDcE,CAAA,SAAA,CAFF,aAGI,UAAA,GCZJ,CDiBE,CAAA,OAAA,CAAA,IACE,QAAA,KACA,eAAA,GCdJ,CDgBE,CAJA,OAIA,CAAA,aAAA,IACE,MAAA,KACA,OAAA,ICdJ,CDgBE,CARA,OAQA,CAAA,WACE,aAAA,KACA,MAAA,ICdJ,CDeI,CAXF,OAWE,CAHF,WAGE,OA3EI,QA4EF,GCbN,CDgBE,CAfA,OAeA,GACE,qBAAA,GCdJ,CDeI,CAjBF,OAiBE,GAAA,GACE,gBAAA,OACA,YAAA,GCbN,CDkBA,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA,OAEI,CA1EJ,KA0EI,CArEF,YAsEI,QAAA,IChBJ,CDkBI,CA7EN,KA6EM,CAxEJ,YAwEI,CApEF,YAqEI,iBAAA,MAAA,aAAA,YACA,UAAA,CChBN,CDsBE,CArCF,OAqCE,GACE,WAAA,MCpBJ,CDsBE,CAxCF,OAwCE,CAxCF,IAyCI,eAAA,MCpBJ,CDsBE,CA3CF,OA2CE,CAvCF,aAuCE,IACE,MAAA,ICpBJ,CACF,CDwBA,CAAA,QAIE,YAAA,KCzBF,CDsBE,CADF,OACE,CAAA,0BACE,QAAA,ICpBJ,CDyBA,OAAA,CAAA,OACE,MAAA,KACA,iBAAA,KACA,QAAA,KACA,YAAA,OACA,OAAA,IAAA,MAAA,KACA,WAAA,KACA,cAAA,KACA,SAAA,QCtBF,CDwBE,OAAA,CAVF,OAUE,CAAA,MAAA,OAAA,CAVF,OAUE,CAAA,KAAA,OAAA,CAVF,OAUE,CAAA,YAlIM,QAmIJ,IAAA,GCtBJ,CDyBE,OAAA,CAdF,OAcE,CAJA,MAIA,IACE,MAAA,KCvBJ,CD0BE,OAAA,CAlBF,OAkBE,CARA,KASE,YAAA,IACA,UAAA,ICxBJ,CCrHA,CAAA,SAAA,GACI,QAAA,KACA,eAAA,MDwHJ,CCtHI,CAJJ,SAII,GAAA,GACI,UAAA,KDwHR,CCtHQ,CAPR,SAOQ,GAAA,GAAA,CAAA,QACI,QAAA,KFPJ,OEQI,EAAA,IACA,MAAA,MAEA,SAAA,OACA,YAAA,IDwHZ,CCtHY,CAfZ,SAeY,GAAA,GAAA,CARJ,QAQI,CAAA,OFdJ,OEeQ,IACA,MAAA,MAEA,OAAA,IDwHhB,CCrHY,CAtBZ,SAsBY,GAAA,GAAA,CAfJ,QAeI,CAAA,MACI,OAAA,KACA,YAAA,KACA,MAAA,KACA,WAAA,OACA,iBAAA,KACA,MAAA,KF3BR,cE4BQ,IACA,OAAA,KACA,WAAA,EAAA,EAAA,IAAA,IAAA,IDuHhB,CCpHY,CAlCZ,SAkCY,GAAA,GAAA,CA3BJ,QA2BI,CAAA,MACI,IAAA,EACA,OAAA,EACA,OAAA,KFpCR,OEqCQ,IAAA,EFrCR,cEsCQ,KDsHhB,CClHQ,CA3CR,SA2CQ,GAAA,GAAA,MAAA,CA3CR,SA2CQ,GAAA,GAAA,CAAA,cACI,YAAA,IAEA,YAAA,IDmHZ,CChHQ,CAjDR,SAiDQ,GAAA,GAAA,CANA,cAOI,YAAA,IACA,OAAA,ODkHZ,CElKQ,CAAA,SAAA,CAAA,OAAA,GAAA,CDIA,QCJA,MACI,aAAA,GFqKZ,CGvKI,CAAA,SAAA,GAAA,CFKI,QEJA,QAAA,KH0KR,CGxKY,CAAA,SAAA,CAHR,SAGQ,GAAA,CFEJ,QEFI,MACI,aAAA,GH0KhB,CGrKI,CATA,SASA,GAAA,CAAA,YJVI,OIWA,KAAA,EAAA,IACA,MAAA,IHuKR,CGpKI,CAdA,SAcA,GAAA,SACI,OAAA,MACA,MAAA,KACA,YAAA,QHsKR,CIvLI,CAAA,gBAAA,GAAA,CHKI,QGJA,QAAA,KJ0LR,CIxLY,CAAA,SAAA,CAHR,gBAGQ,GAAA,CHEJ,QGFI,MACI,aAAA,GJ0LhB,CIrLI,CATA,gBASA,GAAA,CDAA,YJVI,OKWA,KAAA,EAAA,IACA,MAAA,IJuLR,CIpLI,CAdA,gBAcA,GAAA,GAAA,CAAA,iBACI,YAAA,IACA,QAAA,aACA,WAAA,KAEA,WAAA,EAAA,EAAA,EAAA,YLpBA,cKqBA,IACA,OAAA,IAAA,MAAA,QACA,iBAAA,KACA,MAAA,QACA,SAAA,KLzBA,QK0BA,IAAA,IACA,YAAA,WACA,OAAA,SACA,MAAA,GJsLR,CIpLQ,CA9BJ,gBA8BI,GAAA,GAAA,CAAA,iBAAA,CAAA,ML/BA,OKgCI,EACA,cAAA,EACA,WAAA,ELlCJ,QKmCI,EAAA,GJsLZ,CIpLQ,CApCJ,gBAoCI,GAAA,GAAA,CAAA,iBAAA,CANA,KAMA,OACI,QAAA,6BACA,MAAA,MACA,MAAA,GJsLZ,CIlLI,CA3CA,gBA2CA,GAAA,SACI,OAAA,MACA,MAAA,KACA,YAAA,QJoLR", -
wp-meteor/trunk/assets/js/public/public-debug.js
r3264090 r3264604 853 853 const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt); 854 854 const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt); 855 const originalRemoveAttribute = scriptElt[removeAttribute].bind(scriptElt); 855 856 const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt); 856 857 const originalAttributes = scriptElt[__lookupGetter__]("attributes").bind(scriptElt); … … 862 863 c(delta_default(), "setting ", property, value); 863 864 if (property === "type" && value && !isJavascriptRegexp.test(value)) { 864 return scriptElt[setAttribute](property, value);865 return originalSetAttribute(property, value); 865 866 } 866 867 if (property === "src" && value) { … … 869 870 originalSetAttribute("type", javascriptBlocked); 870 871 } 871 return value ? scriptElt[setAttribute](prefix2 + property, value) : scriptElt[removeAttribute](prefix2 + property);872 return value ? originalSetAttribute(prefix2 + property, value) : originalRemoveAttribute(prefix2 + property); 872 873 }, 873 874 get() { … … 903 904 originalSetAttribute("type", javascriptBlocked); 904 905 } 905 return value ? originalSetAttribute(prefix2 + property, value) : scriptElt[removeAttribute](prefix2 + property);906 return value ? originalSetAttribute(prefix2 + property, value) : originalRemoveAttribute(prefix2 + property); 906 907 } else { 907 908 originalSetAttribute(property, value); -
wp-meteor/trunk/assets/js/public/public-debug.js.map
r3264090 r3264604 2 2 "version": 3, 3 3 "sources": ["../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/delta.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/literals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/globals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/mocks/jquery.js", "../../../../fpo-inpage-first-interaction/src/browser/utils/delta.mjs", "../../../../fpo-inpage-first-interaction/src/browser/utils/console.mjs", "../../../../fpo-inpage-events/src/index.mjs", "../../../../fpo-inpage-first-interaction/src/browser/index.mjs", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/event-emitter.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/dispatcher.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/device-mode.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/animations.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/pp-menu.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/public.js"], 4 "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 // the goal here is to capture a real jQuery object and override its load and ready methods\n // to delay firing ready() until WP-Meteor finishes loading JS\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 // there is a loop when you call $(\"selector\", $), as it calls $.ready\n // which in turn calls readyList.then( fn ) and returns this\n // without this code, page-infinite-loop.html hangs\n if (func === jQuery) {\n return this;\n }\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 if (jQuery.fn.init?.prototype?.ready) {\n jQuery.fn.init.prototype.ready = enqueue;\n }\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 if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n jQuery.fn.init.prototype.ready = oldPrototypeReady;\n }\n });\n mocked = false;\n }\n}\n", "export default () => Math.round(performance.now()) / 1000;\n", "const c = process.env.DEBUG ? console.log : () => { };\nexport default c;", "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_LAZY_ELEMENT = \"fpo:lazy-element\";\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_LAZY_ELEMENT,\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, // eslint-disable-line camelcase\n Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\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\n if (!object[property + \"__def\"]) {\n const descriptor = O[getOwnPropertyDescriptor](object, property);\n Object_defineProperty(object, property, {\n set(value) {\n if (object[property + \"__set\"]) {\n return object[property + \"__set\"].call(object, value);\n }\n return descriptor.set.call(object, value);\n },\n get() {\n if (object[property + \"__get\"]) {\n return object[property + \"__get\"].call(object);\n }\n return descriptor.get.call(object);\n }\n });\n object[property + \"__def\"] = true;\n }\n\n if (options.get) {\n object[property + \"__get\"] = options.get;\n }\n\n if (options.set) {\n object[property + \"__set\"] = 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 O.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); \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 {\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\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(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 = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\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 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 original HasAttribute = 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 \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 \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 const origType = node[getAttribute](prefix + \"type\");\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 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n // \"There is no need to use the defer attribute (see <script> attributes) \n // when loading a module script; modules are deferred automatically.\"\n } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\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 preloadAsScript(src, origType === \"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\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\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"],5 "mappings": "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",4 "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 // the goal here is to capture a real jQuery object and override its load and ready methods\n // to delay firing ready() until WP-Meteor finishes loading JS\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 // there is a loop when you call $(\"selector\", $), as it calls $.ready\n // which in turn calls readyList.then( fn ) and returns this\n // without this code, page-infinite-loop.html hangs\n if (func === jQuery) {\n return this;\n }\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 if (jQuery.fn.init?.prototype?.ready) {\n jQuery.fn.init.prototype.ready = enqueue;\n }\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 if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n jQuery.fn.init.prototype.ready = oldPrototypeReady;\n }\n });\n mocked = false;\n }\n}\n", "export default () => Math.round(performance.now()) / 1000;\n", "const c = process.env.DEBUG ? console.log : () => { };\nexport default c;", "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_LAZY_ELEMENT = \"fpo:lazy-element\";\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_LAZY_ELEMENT,\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, // eslint-disable-line camelcase\n Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\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\n if (!object[property + \"__def\"]) {\n const descriptor = O[getOwnPropertyDescriptor](object, property);\n Object_defineProperty(object, property, {\n set(value) {\n if (object[property + \"__set\"]) {\n return object[property + \"__set\"].call(object, value);\n }\n return descriptor.set.call(object, value);\n },\n get() {\n if (object[property + \"__get\"]) {\n return object[property + \"__get\"].call(object);\n }\n return descriptor.get.call(object);\n }\n });\n object[property + \"__def\"] = true;\n }\n\n if (options.get) {\n object[property + \"__get\"] = options.get;\n }\n\n if (options.set) {\n object[property + \"__set\"] = 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 O.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); \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 {\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\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(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 = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\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 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 originalRemoveAttribute = scriptElt[removeAttribute].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 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 : originalRemoveAttribute(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 \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 : originalRemoveAttribute(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 \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 const origType = node[getAttribute](prefix + \"type\");\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 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n // \"There is no need to use the defer attribute (see <script> attributes) \n // when loading a module script; modules are deferred automatically.\"\n } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\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 preloadAsScript(src, origType === \"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\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\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"], 5 "mappings": "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", 6 6 "names": ["jQuery", "delta_default", "c", "w", "dispatchEvent", "delta_default", "c", "i", "key", "ul", "observer", "separator", "prefix", "i", "wOrigAddEventListener", "wOrigRemoveEventListener", "readyState", "addEventListener", "createElement"] 7 7 } -
wp-meteor/trunk/assets/js/public/public.js
r3264090 r3264604 1 (()=>{var h="addEventListener",de="removeEventListener",u="getAttribute",v="setAttribute",K="removeAttribute",U="hasAttribute",At="querySelector",H=At+"All",G="appendChild",J="removeChild",ue="createElement",T="tagName",be="getOwnPropertyDescriptor",y="prototype",q="__lookupGetter__",pe="__lookupSetter__",E="DOMContentLoaded",f="load",fe="error";var l=window,c=document,Te=c.documentElement;var F=console.error;var Ye=!0,Q=class{constructor(){this.known=[]}init(){let t,s,o=(r,a)=>{if(Ye&&r&&r.fn&&!r.__wpmeteor){let n=function(i){return i===r?this:(c[h](E,p=>{i.call(c,r,p,"jQueryMock")}),this)};this.known.push([r,r.fn.ready,r.fn.init?.prototype?.ready]),r.fn.ready=n,r.fn.init?.prototype?.ready&&(r.fn.init.prototype.ready=n),r.__wpmeteor=!0}return r};window.jQuery||window.$,Object.defineProperty(window,"jQuery",{get(){return t},set(r){t=o(r,"jQuery")},configurable:!0}),Object.defineProperty(window,"$",{get(){return s},set(r){s=o(r,"$")},configurable:!0})}unmock(){this.known.forEach(([t,s,o])=>{t.fn.ready=s,t.fn.init?.prototype?.ready&&o&&(t.fn.init.prototype.ready=o)}),Ye=!1}};var Ee="fpo:first-interaction",me="fpo:replay-captured-events";var Ke="fpo:element-loaded",Ae="fpo:images-loaded",k="fpo:the-end";var X="click",P=window,Je=P.addEventListener.bind(P),Qe=P.removeEventListener.bind(P),Se="removeAttribute",ge="getAttribute",St="setAttribute",Ue=["touchstart","touchmove","touchend","touchcancel","keydown","wheel"],Xe=["mouseover","mouseout",X],Ut=["touchstart","touchend","touchcancel","mouseover","mouseout",X],N="data-wpmeteor-";var Ge="dispatchEvent",Ze=e=>{let t=new MouseEvent(X,{view:e.view,bubbles:!0,cancelable:!0});return Object.defineProperty(t,"target",{writable:!1,value:e.target}),t},Ce=class{static capture(){let t=!1,[,s,o]=`${window.Promise}`.split(/[\s[(){]+/s);if(P["__"+o+s])return;let r=[],a=n=>{if(n.target&&Ge in n.target){if(!n.isTrusted)return;if(n.cancelable&&!Ue.includes(n.type))try{n.preventDefault()}catch{}n.stopImmediatePropagation(),n.type===X?r.push(Ze(n)):Ut.includes(n.type)&&r.push(n),n.target[St](N+n.type,!0),t||(t=!0,P[Ge](new CustomEvent(Ee)))}};P.addEventListener(me,()=>{Xe.forEach(p=>Qe(p,a,{passive:!1,capture:!0})),Ue.forEach(p=>Qe(p,a,{passive:!0,capture:!0}));let n;for(;n=r.shift();){var i=n.target;i[ge](N+"touchstart")&&i[ge](N+"touchend")&&!i[ge](N+X)?(i[ge](N+"touchmove")||r.push(Ze(n)),i[Se](N+"touchstart"),i[Se](N+"touchend")):i[Se](N+n.type),i[Ge](n)}}),Xe.forEach(n=>Je(n,a,{passive:!1,capture:!0})),Ue.forEach(n=>Je(n,a,{passive:!0,capture:!0}))}};var je=Ce;var Z=class{constructor(){this.l=[]}emit(t,s=null){this.l[t]&&this.l[t].forEach(o=>o(s))}on(t,s){this.l[t]||=[],this.l[t].push(s)}off(t,s){this.l[t]=(this.l[t]||[]).filter(o=>o!==s)}};var D=new Z;var he=c[ue]("span");he[v]("id","elementor-device-mode");he[v]("class","elementor-screen-only");var Gt=!1,et=()=>(Gt||c.body[G](he),getComputedStyle(he,":after").content.replace(/"/g,""));var tt=e=>e[u]("class")||"",rt=(e,t)=>e[v]("class",t),nt=()=>{l[h](f,function(){let e=et(),t=Math.max(Te.clientWidth||0,l.innerWidth||0),s=Math.max(Te.clientHeight||0,l.innerHeight||0),o=["_animation_"+e,"animation_"+e,"_animation","_animation","animation"];Array.from(c[H](".elementor-invisible")).forEach(r=>{let a=r.getBoundingClientRect();if(a.top+l.scrollY<=s&&a.left+l.scrollX<t)try{let i=JSON.parse(r[u]("data-settings"));if(i.trigger_source)return;let p=i._animation_delay||i.animation_delay||0,d,L;for(var n=0;n<o.length;n++)if(i[o[n]]){L=o[n],d=i[L];break}if(d){let z=tt(r),Y=d==="none"?z:z+" animated "+d,bt=setTimeout(()=>{rt(r,Y.replace(/\belementor-invisible\b/,"")),o.forEach(Tt=>delete i[Tt]),r[v]("data-settings",JSON.stringify(i))},p);D.on("fi",()=>{clearTimeout(bt),rt(r,tt(r).replace(new RegExp("\\b"+d+"\\b"),""))})}}catch(i){console.error(i)}})})};var st="data-in-mega_smartmenus",ot=()=>{let e=c[ue]("div");e.innerHTML='<span class="sub-arrow --wp-meteor"><i class="fa" aria-hidden="true"></i></span>';let t=e.firstChild,s=o=>{let r=[];for(;o=o.previousElementSibling;)r.push(o);return r};c[h](E,function(){Array.from(c[H](".pp-advanced-menu ul")).forEach(o=>{if(o[u](st))return;(o[u]("class")||"").match(/\bmega-menu\b/)&&o[H]("ul").forEach(n=>{n[v](st,!0)});let r=s(o),a=r.filter(n=>n).filter(n=>n[T]==="A").pop();if(a||(a=r.map(n=>Array.from(n[H]("a"))).filter(n=>n).flat().pop()),a){let n=t.cloneNode(!0);a[G](n),new MutationObserver(p=>{p.forEach(({addedNodes:d})=>{d.forEach(L=>{if(L.nodeType===1&&L[T]==="SPAN")try{a[J](n)}catch{}})})}).observe(a,{childList:!0})}})})};var w="readystatechange",S="message";var $="SCRIPT",m="data-wpmeteor-",b=Object.defineProperty,Me=Object.defineProperties,O="javascript/blocked",Re=/^\s*(application|text)\/javascript|module\s*$/i,Et="requestAnimationFrame",mt="requestIdleCallback",ie="setTimeout",Ie="__dynamic",M=l.constructor.name+"::",ce=c.constructor.name+"::",gt=function(e,t){t=t||l;for(var s=0;s<this.length;s++)e.call(t,this[s],s,this)};"NodeList"in l&&!NodeList[y].forEach&&(NodeList[y].forEach=gt);"HTMLCollection"in l&&!HTMLCollection[y].forEach&&(HTMLCollection[y].forEach=gt);_wpmeteor["elementor-animations"]&&nt(),_wpmeteor["elementor-pp"]&&ot();var ve=[],ye=[],j=[],ne=!1,V=[],g={},Ve=!1,Ct=0,I=c.visibilityState==="visible"?l[Et]:l[ie],ht=l[mt]||I;c[h]("visibilitychange",()=>{I=c.visibilityState==="visible"?l[Et]:l[ie],ht=l[mt]||I});var C=l[ie],Le,W=["src","type"],R=Object,ee="definePropert";R[ee+"y"]=(e,t,s)=>{if(e===l&&["jQuery","onload"].indexOf(t)>=0||(e===c||e===c.body)&&["readyState","write","writeln","on"+w].indexOf(t)>=0)return["on"+w,"on"+f].indexOf(t)&&s.set&&(g["on"+w]=g["on"+w]||[],g["on"+w].push(s.set)),e;if(e instanceof HTMLScriptElement&&W.indexOf(t)>=0){if(!e[t+"__def"]){let o=R[be](e,t);b(e,t,{set(r){return e[t+"__set"]?e[t+"__set"].call(e,r):o.set.call(e,r)},get(){return e[t+"__get"]?e[t+"__get"].call(e):o.get.call(e)}}),e[t+"__def"]=!0}return s.get&&(e[t+"__get"]=s.get),s.set&&(e[t+"__set"]=s.set),e}return b(e,t,s)};R[ee+"ies"]=(e,t)=>{for(let s in t)R[ee+"y"](e,s,t[s]);for(let s of R.getOwnPropertySymbols(t))R[ee+"y"](e,s,t[s]);return e};var He=EventTarget[y][h],vt=EventTarget[y][de],ae=He.bind(c),Bt=vt.bind(c),B=He.bind(l),yt=vt.bind(l),_t=Document[y].createElement,le=_t.bind(c),we=c.__proto__[q]("readyState").bind(c),it="loading";b(c,"readyState",{get(){return it},set(e){return it=e}});var ct=e=>V.filter(([t,,s],o)=>{if(!(e.indexOf(t.type)<0)){s||(s=t.target);try{let r=s.constructor.name+"::"+t.type;for(let a=0;a<g[r].length;a++)if(g[r][a]){let n=r+"::"+o+"::"+a;if(!xe[n])return!0}}catch{}}}).length,se,xe={},oe=e=>{V.forEach(([t,s,o],r)=>{if(!(e.indexOf(t.type)<0)){o||(o=t.target);try{let a=o.constructor.name+"::"+t.type;if((g[a]||[]).length)for(let n=0;n<g[a].length;n++){let i=g[a][n];if(i){let p=a+"::"+r+"::"+n;if(!xe[p]){xe[p]=!0,c.readyState=s,se=a;try{Ct++,!i[y]||i[y].constructor===i?i.bind(o)(t):i(t)}catch(d){F(d,i)}se=null}}}}catch(a){F(a)}}})};ae(E,e=>{V.push([new e.constructor(E,e),we(),c])});ae(w,e=>{V.push([new e.constructor(w,e),we(),c])});B(E,e=>{V.push([new e.constructor(E,e),we(),l])});B(f,e=>{Ve=!0,V.push([new e.constructor(f,e),we(),l]),x||oe([E,w,S,f])});var Lt=e=>{V.push([e,c.readyState,l])},Nt=l[q]("onmessage"),Ot=l[pe]("onmessage"),Rt=()=>{yt(S,Lt),(g[M+"message"]||[]).forEach(e=>{B(S,e)}),b(l,"onmessage",{get:Nt,set:Ot})};B(S,Lt);var Dt=new Q;Dt.init();var qe=()=>{!x&&!ne&&(x=!0,c.readyState="loading",I(We),I(A)),Ve||B(f,()=>{qe()})};B(Ee,()=>{qe()});D.on(Ae,()=>{qe()});_wpmeteor.rdelay>=0&&je.capture();var te=[-1],Be=e=>{te=te.filter(t=>t!==e.target),te.length||C(D.emit.bind(D,k))};var x=!1,A=()=>{let e=ve.shift();if(e)e[u](m+"src")?e[U]("async")||e[Ie]?(e.isConnected&&(te.push(e),setTimeout(Be,1e3,{target:e})),Ne(e,Be),C(A)):Ne(e,C.bind(null,A)):(e.origtype==O&&Ne(e),C(A));else if(ye.length)ve.push(...ye),ye.length=0,C(A);else if(ct([E,w,S]))oe([E,w,S]),C(A);else if(Ve)if(ct([f,S]))oe([f,S]),C(A);else if(te.length>1)ht(A);else if(j.length)ve.push(...j),j.length=0,C(A);else{if(l.RocketLazyLoadScripts)try{RocketLazyLoadScripts.run()}catch(t){F(t)}c.readyState="complete",Rt(),Dt.unmock(),x=!1,ne=!0,l[ie](()=>Be({target:-1}))}else x=!1},xt=e=>{let t=le($),s=e.attributes;for(var o=s.length-1;o>=0;o--)s[o].name.startsWith(m)||t[v](s[o].name,s[o].value);let r=e[u](m+"type");r?t.type=r:t.type="text/javascript",(e.textContent||"").match(/^\s*class RocketLazyLoadScripts/)?t.textContent=e.textContent.replace(/^\s*class\s*RocketLazyLoadScripts/,"window.RocketLazyLoadScripts=class").replace("RocketLazyLoadScripts.run();",""):t.textContent=e.textContent;for(let a of["onload","onerror","onreadystatechange"])e[a]&&(t[a]=e[a]);return t},Ne=(e,t)=>{let s=e[u](m+"src");if(s){let o=He.bind(e);e.isConnected&&t&&(o(f,t),o(fe,t)),e.origtype=e[u](m+"type")||"text/javascript",e.origsrc=s,(!e.isConnected||e[U]("nomodule")||e.type&&!Re.test(e.type))&&t&&t(new Event(f,{target:e}))}else e.origtype===O?(e.origtype=e[u](m+"type")||"text/javascript",e[K]("integrity"),e.textContent=e.textContent+`2 `):t&&t(new Event(f,{target:e}))},Fe=(e,t)=>{let s=(g[e]||[]).indexOf(t);if(s>=0)return g[e][s]=void 0,!0},at=(e,t,...s)=>{if("HTMLDocument::"+E==se&&e===E&&!t.toString().match(/jQueryMock/)){D.on(k,c[h].bind(c,e,t,...s));return}if(t&&(e===E||e===w)){let o=ce+e;g[o]=g[o]||[],g[o].push(t),ne&&oe([e]);return}return ae(e,t,...s)},lt=(e,t,...s)=>{if(e===E){let o=ce+e;Fe(o,t)}return Bt(e,t,...s)};Me(c,{[h]:{get(){return at},set(){return at}},[de]:{get(){return lt},set(){return lt}}});var re=c.createDocumentFragment(),We=()=>{re.hasChildNodes()&&(c.head[G](re),re=c.createDocumentFragment())},dt={},_e=e=>{if(e)try{let t=new URL(e,c.location.href),s=t.origin;if(s&&!dt[s]&&c.location.host!==t.host){let o=le("link");o.rel="preconnect",o.href=s,re[G](o),dt[s]=!0,x&&I(We)}}catch{}},De={},kt=(e,t,s,o)=>{let r=le("link");r.rel=t?"modulepre"+f:"pre"+f,r.as="script",s&&r[v]("crossorigin",s),o&&r[v]("integrity",o);try{e=new URL(e,c.location.href).href}catch{}r.href=e,re[G](r),De[e]=!0,x&&I(We)},ke=function(...e){let t=le(...e);if(!e||e[0].toUpperCase()!==$||!x)return t;let s=t[v].bind(t),o=t[u].bind(t),r=t[U].bind(t),a=t[q]("attributes").bind(t);return W.forEach(n=>{let i=t[q](n).bind(t),p=t[pe](n).bind(t);R[ee+"y"](t,n,{set(d){return n==="type"&&d&&!Re.test(d)?t[v](n,d):((n==="src"&&d||n==="type"&&d&&t.origsrc)&&s("type",O),d?t[v](m+n,d):t[K](m+n))},get(){let d=t[u](m+n);if(n==="src")try{return new URL(d,c.location.href).href}catch{}return d}}),b(t,"orig"+n,{set(d){return p(d)},get(){return i()}})}),t[v]=function(n,i){if(W.includes(n))return n==="type"&&i&&!Re.test(i)?s(n,i):((n==="src"&&i||n==="type"&&i&&t.origsrc)&&s("type",O),i?s(m+n,i):t[K](m+n));s(n,i)},t[u]=function(n){let i=W.indexOf(n)>=0?o(m+n):o(n);if(n==="src")try{return new URL(i,c.location.href).href}catch{}return i},t[U]=function(n){return W.indexOf(n)>=0?r(m+n):r(n)},b(t,"attributes",{get(){return[...a()].filter(i=>i.name!=="type").map(i=>({name:i.name.match(new RegExp(m))?i.name.replace(m,""):i.name,value:i.value}))}}),t[Ie]=!0,t};Object.defineProperty(Document[y],"createElement",{set(e){e!==ke&&(Le=e)},get(){return Le||ke}});var Oe=new Set,$e=new MutationObserver(e=>{e.forEach(({removedNodes:t,addedNodes:s,target:o})=>{t.forEach(r=>{r.nodeType===1&&$===r[T]&&"origtype"in r&&Oe.delete(r)}),s.forEach(r=>{if(r.nodeType===1)if($===r[T]){if("origtype"in r){if(r.origtype!==O)return}else if(r[u]("type")!==O)return;"origtype"in r||W.forEach(n=>{let i=r[q](n).bind(r),p=r[pe](n).bind(r);b(r,"orig"+n,{set(d){return p(d)},get(){return i()}})});let a=r[u](m+"src");if(Oe.has(r)&&F("Inserted twice",r),r.parentNode){Oe.add(r);let n=r[u](m+"type");(a||"").match(/\/gtm.js\?/)||r[U]("async")||r[Ie]?(j.push(r),_e(a)):r[U]("defer")||n==="module"?(ye.push(r),_e(a)):(a&&!r[U]("nomodule")&&!De[a]&&kt(a,n==="module",r[U]("crossorigin")&&r[u]("crossorigin"),r[u]("integrity")),ve.push(r))}else r[h](f,n=>n.target.parentNode[J](n.target)),r[h](fe,n=>n.target.parentNode[J](n.target)),o[G](r)}else r[T]==="LINK"&&r[u]("as")==="script"&&(De[r[u]("href")]=!0)})})}),wt={childList:!0,subtree:!0};$e.observe(c.documentElement,wt);var Pt=HTMLElement[y].attachShadow;HTMLElement[y].attachShadow=function(e){let t=Pt.call(this,e);return e.mode==="open"&&$e.observe(t,wt),t};(()=>{let e=R[be](HTMLIFrameElement[y],"src");b(HTMLIFrameElement[y],"src",{get(){return this.dataset.fpoSrc?this.dataset.fpoSrc:e.get.call(this)},set(t){delete this.dataset.fpoSrc,e.set.call(this,t)}})})();D.on(k,()=>{(!Le||Le===ke)&&(Document[y].createElement=_t,$e.disconnect()),dispatchEvent(new CustomEvent(me)),dispatchEvent(new CustomEvent(k))});var Pe=e=>{let t,s;!c.currentScript||!c.currentScript.parentNode?(t=c.body,s=t.lastChild):(s=c.currentScript,t=s.parentNode);try{let o=le("div");o.innerHTML=e,Array.from(o.childNodes).forEach(r=>{r.nodeName===$?t.insertBefore(xt(r),s):t.insertBefore(r,s)})}catch(o){F(o)}},ut=e=>Pe(e+`3 `);Me(c,{write:{get(){return Pe},set(e){return Pe=e}},writeln:{get(){return ut},set(e){return ut=e}}});var pt=(e,t,... s)=>{if(M+E==se&&e===E&&!t.toString().match(/jQueryMock/)){D.on(k,l[h].bind(l,e,t,...s));return}if(M+f==se&&e===f){D.on(k,l[h].bind(l,e,t,...s));return}if(t&&(e===f||e===E||e===S&&!ne)){let o=e===E?ce+e:M+e;g[o]=g[o]||[],g[o].push(t),ne&&oe([e]);return}return B(e,t,...s)},ft=(e,t,...s)=>{if(e===f){let o=e===E?ce+e:M+e;Fe(o,t)}return yt(e,t,...s)};Me(l,{[h]:{get(){return pt},set(){return pt}},[de]:{get(){return ft},set(){return ft}}});var ze=e=>{let t;return{get(){return t},set(s){return t&&Fe(e,s),g[e]=g[e]||[],g[e].push(s),t=s}}};B(Ke,e=>{let{target:t,event:s}=e.detail,o=t===l?c.body:t,r=o[u](m+"on"+s.type);o[K](m+"on"+s.type);try{let a=new Function("event",r);t===l?l[h](f,a.bind(t,s)):a.call(t,s)}catch(a){console.err(a)}});{let e=ze(M+f);b(l,"onload",e),ae(E,()=>{b(c.body,"onload",e)})}b(c,"onreadystatechange",ze(ce+w));b(l,"onmessage",ze(M+S));(()=>{let e=l.innerHeight,t=l.innerWidth,s=r=>{let n={"4g":1250,"3g":2500,"2g":2500}[(navigator.connection||{}).effectiveType]||0,i=r.getBoundingClientRect(),p={top:-1*e-n,left:-1*t-n,bottom:e+n,right:t+n};return!(i.left>=p.right||i.right<=p.left||i.top>=p.bottom||i.bottom<=p.top)},o=(r=!0)=>{let a=1,n=-1,i={},p=()=>{n++,--a||l[ie](D.emit.bind(D,Ae),_wpmeteor.rdelay)};Array.from(c.getElementsByTagName("*")).forEach(d=>{let L,z,Y;if(d[T]==="IMG"){let _=d.currentSrc||d.src;_&&!i[_]&&!_.match(/^data:/i)&&((d.loading||"").toLowerCase()!=="lazy"||s(d))&&(L=_)}else if(d[T]===$)_e(d[u](m+"src"));else if(d[T]==="LINK"&&d[u]("as")==="script"&&["pre"+f,"modulepre"+f].indexOf(d[u]("rel"))>=0)De[d[u]("href")]=!0;else if((z=l.getComputedStyle(d))&&(Y=(z.backgroundImage||"").match(/^url\s*\((.*?)\)/i))&&(Y||[]).length){let _=Y[0].slice(4,-1).replace(/"/g,"");!i[_]&&!_.match(/^data:/i)&&(L=_)}if(L){i[L]=!0;let _=new Image;r&&(a++,_[h](f,p),_[h](fe,p)),_.src=L}}),c.fonts.ready.then(()=>{p()})};_wpmeteor.rdelay===0?ae(E,o):B(f,o)})();})();1 (()=>{var v="addEventListener",le="removeEventListener",p="getAttribute",L="setAttribute",de="removeAttribute",U="hasAttribute",Tt="querySelector",q=Tt+"All",G="appendChild",K="removeChild",ue="createElement",A="tagName",be="getOwnPropertyDescriptor",y="prototype",F="__lookupGetter__",pe="__lookupSetter__",m="DOMContentLoaded",f="load",fe="error";var d=window,c=document,Ae=c.documentElement;var W=console.error;var Ye=!0,J=class{constructor(){this.known=[]}init(){let t,n,s=(r,a)=>{if(Ye&&r&&r.fn&&!r.__wpmeteor){let o=function(i){return i===r?this:(c[v](m,l=>{i.call(c,r,l,"jQueryMock")}),this)};this.known.push([r,r.fn.ready,r.fn.init?.prototype?.ready]),r.fn.ready=o,r.fn.init?.prototype?.ready&&(r.fn.init.prototype.ready=o),r.__wpmeteor=!0}return r};window.jQuery||window.$,Object.defineProperty(window,"jQuery",{get(){return t},set(r){t=s(r,"jQuery")},configurable:!0}),Object.defineProperty(window,"$",{get(){return n},set(r){n=s(r,"$")},configurable:!0})}unmock(){this.known.forEach(([t,n,s])=>{t.fn.ready=n,t.fn.init?.prototype?.ready&&s&&(t.fn.init.prototype.ready=s)}),Ye=!1}};var Ee="fpo:first-interaction",me="fpo:replay-captured-events";var Ke="fpo:element-loaded",Te="fpo:images-loaded",k="fpo:the-end";var Q="click",P=window,Je=P.addEventListener.bind(P),Qe=P.removeEventListener.bind(P),Se="removeAttribute",ge="getAttribute",St="setAttribute",Ue=["touchstart","touchmove","touchend","touchcancel","keydown","wheel"],Xe=["mouseover","mouseout",Q],Ut=["touchstart","touchend","touchcancel","mouseover","mouseout",Q],N="data-wpmeteor-";var Ge="dispatchEvent",Ze=e=>{let t=new MouseEvent(Q,{view:e.view,bubbles:!0,cancelable:!0});return Object.defineProperty(t,"target",{writable:!1,value:e.target}),t},Ce=class{static capture(){let t=!1,[,n,s]=`${window.Promise}`.split(/[\s[(){]+/s);if(P["__"+s+n])return;let r=[],a=o=>{if(o.target&&Ge in o.target){if(!o.isTrusted)return;if(o.cancelable&&!Ue.includes(o.type))try{o.preventDefault()}catch{}o.stopImmediatePropagation(),o.type===Q?r.push(Ze(o)):Ut.includes(o.type)&&r.push(o),o.target[St](N+o.type,!0),t||(t=!0,P[Ge](new CustomEvent(Ee)))}};P.addEventListener(me,()=>{Xe.forEach(l=>Qe(l,a,{passive:!1,capture:!0})),Ue.forEach(l=>Qe(l,a,{passive:!0,capture:!0}));let o;for(;o=r.shift();){var i=o.target;i[ge](N+"touchstart")&&i[ge](N+"touchend")&&!i[ge](N+Q)?(i[ge](N+"touchmove")||r.push(Ze(o)),i[Se](N+"touchstart"),i[Se](N+"touchend")):i[Se](N+o.type),i[Ge](o)}}),Xe.forEach(o=>Je(o,a,{passive:!1,capture:!0})),Ue.forEach(o=>Je(o,a,{passive:!0,capture:!0}))}};var je=Ce;var X=class{constructor(){this.l=[]}emit(t,n=null){this.l[t]&&this.l[t].forEach(s=>s(n))}on(t,n){this.l[t]||=[],this.l[t].push(n)}off(t,n){this.l[t]=(this.l[t]||[]).filter(s=>s!==n)}};var D=new X;var he=c[ue]("span");he[L]("id","elementor-device-mode");he[L]("class","elementor-screen-only");var Gt=!1,et=()=>(Gt||c.body[G](he),getComputedStyle(he,":after").content.replace(/"/g,""));var tt=e=>e[p]("class")||"",rt=(e,t)=>e[L]("class",t),nt=()=>{d[v](f,function(){let e=et(),t=Math.max(Ae.clientWidth||0,d.innerWidth||0),n=Math.max(Ae.clientHeight||0,d.innerHeight||0),s=["_animation_"+e,"animation_"+e,"_animation","_animation","animation"];Array.from(c[q](".elementor-invisible")).forEach(r=>{let a=r.getBoundingClientRect();if(a.top+d.scrollY<=n&&a.left+d.scrollX<t)try{let i=JSON.parse(r[p]("data-settings"));if(i.trigger_source)return;let l=i._animation_delay||i.animation_delay||0,u,E;for(var o=0;o<s.length;o++)if(i[s[o]]){E=s[o],u=i[E];break}if(u){let H=tt(r),Y=u==="none"?H:H+" animated "+u,bt=setTimeout(()=>{rt(r,Y.replace(/\belementor-invisible\b/,"")),s.forEach(At=>delete i[At]),r[L]("data-settings",JSON.stringify(i))},l);D.on("fi",()=>{clearTimeout(bt),rt(r,tt(r).replace(new RegExp("\\b"+u+"\\b"),""))})}}catch(i){console.error(i)}})})};var st="data-in-mega_smartmenus",ot=()=>{let e=c[ue]("div");e.innerHTML='<span class="sub-arrow --wp-meteor"><i class="fa" aria-hidden="true"></i></span>';let t=e.firstChild,n=s=>{let r=[];for(;s=s.previousElementSibling;)r.push(s);return r};c[v](m,function(){Array.from(c[q](".pp-advanced-menu ul")).forEach(s=>{if(s[p](st))return;(s[p]("class")||"").match(/\bmega-menu\b/)&&s[q]("ul").forEach(o=>{o[L](st,!0)});let r=n(s),a=r.filter(o=>o).filter(o=>o[A]==="A").pop();if(a||(a=r.map(o=>Array.from(o[q]("a"))).filter(o=>o).flat().pop()),a){let o=t.cloneNode(!0);a[G](o),new MutationObserver(l=>{l.forEach(({addedNodes:u})=>{u.forEach(E=>{if(E.nodeType===1&&E[A]==="SPAN")try{a[K](o)}catch{}})})}).observe(a,{childList:!0})}})})};var w="readystatechange",S="message";var z="SCRIPT",g="data-wpmeteor-",b=Object.defineProperty,Me=Object.defineProperties,O="javascript/blocked",Re=/^\s*(application|text)\/javascript|module\s*$/i,Et="requestAnimationFrame",mt="requestIdleCallback",oe="setTimeout",Ie="__dynamic",M=d.constructor.name+"::",ie=c.constructor.name+"::",gt=function(e,t){t=t||d;for(var n=0;n<this.length;n++)e.call(t,this[n],n,this)};"NodeList"in d&&!NodeList[y].forEach&&(NodeList[y].forEach=gt);"HTMLCollection"in d&&!HTMLCollection[y].forEach&&(HTMLCollection[y].forEach=gt);_wpmeteor["elementor-animations"]&&nt(),_wpmeteor["elementor-pp"]&&ot();var ve=[],ye=[],Z=[],re=!1,V=[],h={},Ve=!1,Ct=0,I=c.visibilityState==="visible"?d[Et]:d[oe],ht=d[mt]||I;c[v]("visibilitychange",()=>{I=c.visibilityState==="visible"?d[Et]:d[oe],ht=d[mt]||I});var C=d[oe],Le,$=["src","type"],R=Object,j="definePropert";R[j+"y"]=(e,t,n)=>{if(e===d&&["jQuery","onload"].indexOf(t)>=0||(e===c||e===c.body)&&["readyState","write","writeln","on"+w].indexOf(t)>=0)return["on"+w,"on"+f].indexOf(t)&&n.set&&(h["on"+w]=h["on"+w]||[],h["on"+w].push(n.set)),e;if(e instanceof HTMLScriptElement&&$.indexOf(t)>=0){if(!e[t+"__def"]){let s=R[be](e,t);b(e,t,{set(r){return e[t+"__set"]?e[t+"__set"].call(e,r):s.set.call(e,r)},get(){return e[t+"__get"]?e[t+"__get"].call(e):s.get.call(e)}}),e[t+"__def"]=!0}return n.get&&(e[t+"__get"]=n.get),n.set&&(e[t+"__set"]=n.set),e}return b(e,t,n)};R[j+"ies"]=(e,t)=>{for(let n in t)R[j+"y"](e,n,t[n]);for(let n of R.getOwnPropertySymbols(t))R[j+"y"](e,n,t[n]);return e};var He=EventTarget[y][v],vt=EventTarget[y][le],ce=He.bind(c),Bt=vt.bind(c),B=He.bind(d),yt=vt.bind(d),_t=Document[y].createElement,ae=_t.bind(c),we=c.__proto__[F]("readyState").bind(c),it="loading";b(c,"readyState",{get(){return it},set(e){return it=e}});var ct=e=>V.filter(([t,,n],s)=>{if(!(e.indexOf(t.type)<0)){n||(n=t.target);try{let r=n.constructor.name+"::"+t.type;for(let a=0;a<h[r].length;a++)if(h[r][a]){let o=r+"::"+s+"::"+a;if(!xe[o])return!0}}catch{}}}).length,ne,xe={},se=e=>{V.forEach(([t,n,s],r)=>{if(!(e.indexOf(t.type)<0)){s||(s=t.target);try{let a=s.constructor.name+"::"+t.type;if((h[a]||[]).length)for(let o=0;o<h[a].length;o++){let i=h[a][o];if(i){let l=a+"::"+r+"::"+o;if(!xe[l]){xe[l]=!0,c.readyState=n,ne=a;try{Ct++,!i[y]||i[y].constructor===i?i.bind(s)(t):i(t)}catch(u){W(u,i)}ne=null}}}}catch(a){W(a)}}})};ce(m,e=>{V.push([new e.constructor(m,e),we(),c])});ce(w,e=>{V.push([new e.constructor(w,e),we(),c])});B(m,e=>{V.push([new e.constructor(m,e),we(),d])});B(f,e=>{Ve=!0,V.push([new e.constructor(f,e),we(),d]),x||se([m,w,S,f])});var Lt=e=>{V.push([e,c.readyState,d])},Nt=d[F]("onmessage"),Ot=d[pe]("onmessage"),Rt=()=>{yt(S,Lt),(h[M+"message"]||[]).forEach(e=>{B(S,e)}),b(d,"onmessage",{get:Nt,set:Ot})};B(S,Lt);var Dt=new J;Dt.init();var qe=()=>{!x&&!re&&(x=!0,c.readyState="loading",I(We),I(T)),Ve||B(f,()=>{qe()})};B(Ee,()=>{qe()});D.on(Te,()=>{qe()});_wpmeteor.rdelay>=0&&je.capture();var ee=[-1],Be=e=>{ee=ee.filter(t=>t!==e.target),ee.length||C(D.emit.bind(D,k))};var x=!1,T=()=>{let e=ve.shift();if(e)e[p](g+"src")?e[U]("async")||e[Ie]?(e.isConnected&&(ee.push(e),setTimeout(Be,1e3,{target:e})),Ne(e,Be),C(T)):Ne(e,C.bind(null,T)):(e.origtype==O&&Ne(e),C(T));else if(ye.length)ve.push(...ye),ye.length=0,C(T);else if(ct([m,w,S]))se([m,w,S]),C(T);else if(Ve)if(ct([f,S]))se([f,S]),C(T);else if(ee.length>1)ht(T);else if(Z.length)ve.push(...Z),Z.length=0,C(T);else{if(d.RocketLazyLoadScripts)try{RocketLazyLoadScripts.run()}catch(t){W(t)}c.readyState="complete",Rt(),Dt.unmock(),x=!1,re=!0,d[oe](()=>Be({target:-1}))}else x=!1},xt=e=>{let t=ae(z),n=e.attributes;for(var s=n.length-1;s>=0;s--)n[s].name.startsWith(g)||t[L](n[s].name,n[s].value);let r=e[p](g+"type");r?t.type=r:t.type="text/javascript",(e.textContent||"").match(/^\s*class RocketLazyLoadScripts/)?t.textContent=e.textContent.replace(/^\s*class\s*RocketLazyLoadScripts/,"window.RocketLazyLoadScripts=class").replace("RocketLazyLoadScripts.run();",""):t.textContent=e.textContent;for(let a of["onload","onerror","onreadystatechange"])e[a]&&(t[a]=e[a]);return t},Ne=(e,t)=>{let n=e[p](g+"src");if(n){let s=He.bind(e);e.isConnected&&t&&(s(f,t),s(fe,t)),e.origtype=e[p](g+"type")||"text/javascript",e.origsrc=n,(!e.isConnected||e[U]("nomodule")||e.type&&!Re.test(e.type))&&t&&t(new Event(f,{target:e}))}else e.origtype===O?(e.origtype=e[p](g+"type")||"text/javascript",e[de]("integrity"),e.textContent=e.textContent+` 2 `):t&&t(new Event(f,{target:e}))},Fe=(e,t)=>{let n=(h[e]||[]).indexOf(t);if(n>=0)return h[e][n]=void 0,!0},at=(e,t,...n)=>{if("HTMLDocument::"+m==ne&&e===m&&!t.toString().match(/jQueryMock/)){D.on(k,c[v].bind(c,e,t,...n));return}if(t&&(e===m||e===w)){let s=ie+e;h[s]=h[s]||[],h[s].push(t),re&&se([e]);return}return ce(e,t,...n)},lt=(e,t,...n)=>{if(e===m){let s=ie+e;Fe(s,t)}return Bt(e,t,...n)};Me(c,{[v]:{get(){return at},set(){return at}},[le]:{get(){return lt},set(){return lt}}});var te=c.createDocumentFragment(),We=()=>{te.hasChildNodes()&&(c.head[G](te),te=c.createDocumentFragment())},dt={},_e=e=>{if(e)try{let t=new URL(e,c.location.href),n=t.origin;if(n&&!dt[n]&&c.location.host!==t.host){let s=ae("link");s.rel="preconnect",s.href=n,te[G](s),dt[n]=!0,x&&I(We)}}catch{}},De={},kt=(e,t,n,s)=>{let r=ae("link");r.rel=t?"modulepre"+f:"pre"+f,r.as="script",n&&r[L]("crossorigin",n),s&&r[L]("integrity",s);try{e=new URL(e,c.location.href).href}catch{}r.href=e,te[G](r),De[e]=!0,x&&I(We)},ke=function(...e){let t=ae(...e);if(!e||e[0].toUpperCase()!==z||!x)return t;let n=t[L].bind(t),s=t[p].bind(t),r=t[de].bind(t),a=t[U].bind(t),o=t[F]("attributes").bind(t);return $.forEach(i=>{let l=t[F](i).bind(t),u=t[pe](i).bind(t);R[j+"y"](t,i,{set(E){return i==="type"&&E&&!Re.test(E)?n(i,E):((i==="src"&&E||i==="type"&&E&&t.origsrc)&&n("type",O),E?n(g+i,E):r(g+i))},get(){let E=t[p](g+i);if(i==="src")try{return new URL(E,c.location.href).href}catch{}return E}}),b(t,"orig"+i,{set(E){return u(E)},get(){return l()}})}),t[L]=function(i,l){if($.includes(i))return i==="type"&&l&&!Re.test(l)?n(i,l):((i==="src"&&l||i==="type"&&l&&t.origsrc)&&n("type",O),l?n(g+i,l):r(g+i));n(i,l)},t[p]=function(i){let l=$.indexOf(i)>=0?s(g+i):s(i);if(i==="src")try{return new URL(l,c.location.href).href}catch{}return l},t[U]=function(i){return $.indexOf(i)>=0?a(g+i):a(i)},b(t,"attributes",{get(){return[...o()].filter(l=>l.name!=="type").map(l=>({name:l.name.match(new RegExp(g))?l.name.replace(g,""):l.name,value:l.value}))}}),t[Ie]=!0,t};Object.defineProperty(Document[y],"createElement",{set(e){e!==ke&&(Le=e)},get(){return Le||ke}});var Oe=new Set,$e=new MutationObserver(e=>{e.forEach(({removedNodes:t,addedNodes:n,target:s})=>{t.forEach(r=>{r.nodeType===1&&z===r[A]&&"origtype"in r&&Oe.delete(r)}),n.forEach(r=>{if(r.nodeType===1)if(z===r[A]){if("origtype"in r){if(r.origtype!==O)return}else if(r[p]("type")!==O)return;"origtype"in r||$.forEach(o=>{let i=r[F](o).bind(r),l=r[pe](o).bind(r);b(r,"orig"+o,{set(u){return l(u)},get(){return i()}})});let a=r[p](g+"src");if(Oe.has(r)&&W("Inserted twice",r),r.parentNode){Oe.add(r);let o=r[p](g+"type");(a||"").match(/\/gtm.js\?/)||r[U]("async")||r[Ie]?(Z.push(r),_e(a)):r[U]("defer")||o==="module"?(ye.push(r),_e(a)):(a&&!r[U]("nomodule")&&!De[a]&&kt(a,o==="module",r[U]("crossorigin")&&r[p]("crossorigin"),r[p]("integrity")),ve.push(r))}else r[v](f,o=>o.target.parentNode[K](o.target)),r[v](fe,o=>o.target.parentNode[K](o.target)),s[G](r)}else r[A]==="LINK"&&r[p]("as")==="script"&&(De[r[p]("href")]=!0)})})}),wt={childList:!0,subtree:!0};$e.observe(c.documentElement,wt);var Pt=HTMLElement[y].attachShadow;HTMLElement[y].attachShadow=function(e){let t=Pt.call(this,e);return e.mode==="open"&&$e.observe(t,wt),t};(()=>{let e=R[be](HTMLIFrameElement[y],"src");b(HTMLIFrameElement[y],"src",{get(){return this.dataset.fpoSrc?this.dataset.fpoSrc:e.get.call(this)},set(t){delete this.dataset.fpoSrc,e.set.call(this,t)}})})();D.on(k,()=>{(!Le||Le===ke)&&(Document[y].createElement=_t,$e.disconnect()),dispatchEvent(new CustomEvent(me)),dispatchEvent(new CustomEvent(k))});var Pe=e=>{let t,n;!c.currentScript||!c.currentScript.parentNode?(t=c.body,n=t.lastChild):(n=c.currentScript,t=n.parentNode);try{let s=ae("div");s.innerHTML=e,Array.from(s.childNodes).forEach(r=>{r.nodeName===z?t.insertBefore(xt(r),n):t.insertBefore(r,n)})}catch(s){W(s)}},ut=e=>Pe(e+` 3 `);Me(c,{write:{get(){return Pe},set(e){return Pe=e}},writeln:{get(){return ut},set(e){return ut=e}}});var pt=(e,t,...n)=>{if(M+m==ne&&e===m&&!t.toString().match(/jQueryMock/)){D.on(k,d[v].bind(d,e,t,...n));return}if(M+f==ne&&e===f){D.on(k,d[v].bind(d,e,t,...n));return}if(t&&(e===f||e===m||e===S&&!re)){let s=e===m?ie+e:M+e;h[s]=h[s]||[],h[s].push(t),re&&se([e]);return}return B(e,t,...n)},ft=(e,t,...n)=>{if(e===f){let s=e===m?ie+e:M+e;Fe(s,t)}return yt(e,t,...n)};Me(d,{[v]:{get(){return pt},set(){return pt}},[le]:{get(){return ft},set(){return ft}}});var ze=e=>{let t;return{get(){return t},set(n){return t&&Fe(e,n),h[e]=h[e]||[],h[e].push(n),t=n}}};B(Ke,e=>{let{target:t,event:n}=e.detail,s=t===d?c.body:t,r=s[p](g+"on"+n.type);s[de](g+"on"+n.type);try{let a=new Function("event",r);t===d?d[v](f,a.bind(t,n)):a.call(t,n)}catch(a){console.err(a)}});{let e=ze(M+f);b(d,"onload",e),ce(m,()=>{b(c.body,"onload",e)})}b(c,"onreadystatechange",ze(ie+w));b(d,"onmessage",ze(M+S));(()=>{let e=d.innerHeight,t=d.innerWidth,n=r=>{let o={"4g":1250,"3g":2500,"2g":2500}[(navigator.connection||{}).effectiveType]||0,i=r.getBoundingClientRect(),l={top:-1*e-o,left:-1*t-o,bottom:e+o,right:t+o};return!(i.left>=l.right||i.right<=l.left||i.top>=l.bottom||i.bottom<=l.top)},s=(r=!0)=>{let a=1,o=-1,i={},l=()=>{o++,--a||d[oe](D.emit.bind(D,Te),_wpmeteor.rdelay)};Array.from(c.getElementsByTagName("*")).forEach(u=>{let E,H,Y;if(u[A]==="IMG"){let _=u.currentSrc||u.src;_&&!i[_]&&!_.match(/^data:/i)&&((u.loading||"").toLowerCase()!=="lazy"||n(u))&&(E=_)}else if(u[A]===z)_e(u[p](g+"src"));else if(u[A]==="LINK"&&u[p]("as")==="script"&&["pre"+f,"modulepre"+f].indexOf(u[p]("rel"))>=0)De[u[p]("href")]=!0;else if((H=d.getComputedStyle(u))&&(Y=(H.backgroundImage||"").match(/^url\s*\((.*?)\)/i))&&(Y||[]).length){let _=Y[0].slice(4,-1).replace(/"/g,"");!i[_]&&!_.match(/^data:/i)&&(E=_)}if(E){i[E]=!0;let _=new Image;r&&(a++,_[v](f,l),_[v](fe,l)),_.src=E}}),c.fonts.ready.then(()=>{l()})};_wpmeteor.rdelay===0?ce(m,s):B(f,s)})();})(); 4 4 //1.0.42 5 5 //# sourceMappingURL=public.js.map -
wp-meteor/trunk/assets/js/public/public.js.map
r3264090 r3264604 2 2 "version": 3, 3 3 "sources": ["../../../../fpo-javascript-rewrite/src/wp-meteor/includes/literals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/globals.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/mocks/jquery.js", "../../../../fpo-inpage-events/src/index.mjs", "../../../../fpo-inpage-first-interaction/src/browser/index.mjs", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/event-emitter.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/utils/dispatcher.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/device-mode.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/animations.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/includes/elementor/pp-menu.js", "../../../../fpo-javascript-rewrite/src/wp-meteor/public.js"], 4 "sourcesContent": ["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 // the goal here is to capture a real jQuery object and override its load and ready methods\n // to delay firing ready() until WP-Meteor finishes loading JS\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 // there is a loop when you call $(\"selector\", $), as it calls $.ready\n // which in turn calls readyList.then( fn ) and returns this\n // without this code, page-infinite-loop.html hangs\n if (func === jQuery) {\n return this;\n }\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 if (jQuery.fn.init?.prototype?.ready) {\n jQuery.fn.init.prototype.ready = enqueue;\n }\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 if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n jQuery.fn.init.prototype.ready = oldPrototypeReady;\n }\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_LAZY_ELEMENT = \"fpo:lazy-element\";\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_LAZY_ELEMENT,\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, // eslint-disable-line camelcase\n Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\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\n if (!object[property + \"__def\"]) {\n const descriptor = O[getOwnPropertyDescriptor](object, property);\n Object_defineProperty(object, property, {\n set(value) {\n if (object[property + \"__set\"]) {\n return object[property + \"__set\"].call(object, value);\n }\n return descriptor.set.call(object, value);\n },\n get() {\n if (object[property + \"__get\"]) {\n return object[property + \"__get\"].call(object);\n }\n return descriptor.get.call(object);\n }\n });\n object[property + \"__def\"] = true;\n }\n\n if (options.get) {\n object[property + \"__get\"] = options.get;\n }\n\n if (options.set) {\n object[property + \"__set\"] = 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 O.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); \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 {\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\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(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 = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\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 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 original HasAttribute = 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 \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 \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 const origType = node[getAttribute](prefix + \"type\");\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 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n // \"There is no need to use the defer attribute (see <script> attributes) \n // when loading a module script; modules are deferred automatically.\"\n } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\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 preloadAsScript(src, origType === \"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\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\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"],5 "mappings": "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",6 "names": ["addEventListener", "removeEventListener", "getAttribute", "setAttribute", "removeAttribute", "hasAttribute", "querySelector", "querySelectorAll", "appendChild", "removeChild", "createElement", "tagName", "getOwnPropertyDescriptor", "prototype", "__lookupGetter__", "__lookupSetter__", "DCL", "L", "E", "w", "d", "de", "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", "descriptor", "getOwnPropertyDescriptor", "value", "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", "origType", "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"]4 "sourcesContent": ["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 // the goal here is to capture a real jQuery object and override its load and ready methods\n // to delay firing ready() until WP-Meteor finishes loading JS\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 // there is a loop when you call $(\"selector\", $), as it calls $.ready\n // which in turn calls readyList.then( fn ) and returns this\n // without this code, page-infinite-loop.html hangs\n if (func === jQuery) {\n return this;\n }\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 if (jQuery.fn.init?.prototype?.ready) {\n jQuery.fn.init.prototype.ready = enqueue;\n }\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 if (jQuery.fn.init?.prototype?.ready && oldPrototypeReady) {\n jQuery.fn.init.prototype.ready = oldPrototypeReady;\n }\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_LAZY_ELEMENT = \"fpo:lazy-element\";\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_LAZY_ELEMENT,\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, // eslint-disable-line camelcase\n Object_defineProperties = Object.defineProperties, // eslint-disable-line camelcase\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\n if (!object[property + \"__def\"]) {\n const descriptor = O[getOwnPropertyDescriptor](object, property);\n Object_defineProperty(object, property, {\n set(value) {\n if (object[property + \"__set\"]) {\n return object[property + \"__set\"].call(object, value);\n }\n return descriptor.set.call(object, value);\n },\n get() {\n if (object[property + \"__get\"]) {\n return object[property + \"__get\"].call(object);\n }\n return descriptor.get.call(object);\n }\n });\n object[property + \"__def\"] = true;\n }\n\n if (options.get) {\n object[property + \"__get\"] = options.get;\n }\n\n if (options.set) {\n object[property + \"__set\"] = 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 O.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); \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 {\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\n// We need CSS to start iterating, because there are cases,\n// when something injects CSS before some <link>, that is \n// inside <noscript>. This is why we wait for EVENT_CSS_LOADED,\n// which triggers EVENT_IMAGES_LOADED\nprocess.env.SPO || wOrigAddEventListener(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 = process.env.SPO && { \"https://cdn.fastpixel.io\": true } || {};\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 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 originalRemoveAttribute = scriptElt[removeAttribute].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 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 : originalRemoveAttribute(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 \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 : originalRemoveAttribute(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 \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 const origType = node[getAttribute](prefix + \"type\");\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 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules:\n // \"There is no need to use the defer attribute (see <script> attributes) \n // when loading a module script; modules are deferred automatically.\"\n } else if (node[hasAttribute](\"defer\") || origType === \"module\") {\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 preloadAsScript(src, origType === \"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\n// rdelay delay is handled in the fpo-inpage-lazyload\n// previously it was handled here along with EVENT_FIRST_INTERACTION\n// I moved both to fpo-inpage-lazyload\nprocess.env.SPO &&\n wOrigAddEventListener(EVENT_CSS_LOADED, () => dispatcher.emit(EVENT_IMAGES_LOADED)); /* , _wpmeteor.rdelay); */\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"], 5 "mappings": "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", 6 "names": ["addEventListener", "removeEventListener", "getAttribute", "setAttribute", "removeAttribute", "hasAttribute", "querySelector", "querySelectorAll", "appendChild", "removeChild", "createElement", "tagName", "getOwnPropertyDescriptor", "prototype", "__lookupGetter__", "__lookupSetter__", "DCL", "L", "E", "w", "d", "de", "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", "descriptor", "getOwnPropertyDescriptor", "value", "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", "rAF", "preloads", "preloadAsScript", "isModule", "crossorigin", "integrity", "s", "createElement", "scriptElt", "originalSetAttribute", "originalGetAttribute", "originalRemoveAttribute", "originalHasAttribute", "originalAttributes", "__lookupGetter__", "capturedAttributes", "originalAttributeGetter", "originalAttributeSetter", "__lookupSetter__", "O", "definePropert", "value", "result", "Object_defineProperty", "attr", "prototype", "createElementOverride", "seenScripts", "observer", "mutations", "removedNodes", "addedNodes", "target", "node", "tagName", "origType", "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"] 7 7 } -
wp-meteor/trunk/blocker/Exclusions/GDPR.php
r3179645 r3264604 132 132 { 133 133 $exists = isset($sanitized[$this->id]['enabled']); 134 $sanitized[$this->id] = array_merge($settings[$this->id], $sanitized[$this->id] ?: []);134 $sanitized[$this->id] = array_merge($settings[$this->id], @$sanitized[$this->id] ?: []); 135 135 $sanitized[$this->id]['enabled'] = $exists; 136 136 -
wp-meteor/trunk/readme.txt
r3264090 r3264604 5 5 Requires at least: 4.5 6 6 Tested up to: 6.7 7 Stable tag: 3.4.1 47 Stable tag: 3.4.15 8 8 Requires PHP: 7.0 9 9 License: GPLv3 or later … … 115 115 == Changelog == 116 116 117 3.4.15 - Undefined index: gdpr warning fixed 117 118 3.4.14 - [Bug](https://wordpress.org/support/topic/elementor-embed-youtube-video-not-showing/) fixed, infinite loop in some conditions fixed 118 119 3.4.13 - Link to [FastPixel](https://wordpress.org/plugins/fastpixel-website-accelerator/) added -
wp-meteor/trunk/src/js/public/public.js
r3264090 r3264604 531 531 const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt); 532 532 const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt); 533 const originalRemoveAttribute = scriptElt[removeAttribute].bind(scriptElt); 533 534 const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt); 534 535 const originalAttributes = scriptElt[__lookupGetter__]("attributes").bind(scriptElt); … … 540 541 process.env.DEBUG && c(delta(), "setting ", property, value); 541 542 if (property === "type" && value && !isJavascriptRegexp.test(value)) { 542 return scriptElt[setAttribute](property, value);543 return originalSetAttribute(property, value); 543 544 } 544 545 if (property === "src" && value) { … … 547 548 originalSetAttribute("type", javascriptBlocked); 548 549 } 549 return value ? scriptElt[setAttribute](prefix + property, value) : scriptElt[removeAttribute](prefix + property);550 return value ? originalSetAttribute(prefix + property, value) : originalRemoveAttribute(prefix + property); 550 551 }, 551 552 get() { … … 581 582 originalSetAttribute("type", javascriptBlocked); 582 583 } 583 return value ? originalSetAttribute(prefix + property, value) : scriptElt[removeAttribute](prefix + property);584 return value ? originalSetAttribute(prefix + property, value) : originalRemoveAttribute(prefix + property); 584 585 } else { 585 586 originalSetAttribute(property, value); -
wp-meteor/trunk/vendor/composer/installed.php
r3264090 r3264604 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' 3aeb667db13d289081c23fcdb86835063b884c20',6 'reference' => 'bd04c4e47f726791e90c66211bd22f91157562dd', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' 3aeb667db13d289081c23fcdb86835063b884c20',16 'reference' => 'bd04c4e47f726791e90c66211bd22f91157562dd', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', -
wp-meteor/trunk/wp-meteor.php
r3264090 r3264604 11 11 * Plugin URI: https://wp-meteor.com/ 12 12 * Description: Improves your page speed, even on top of your existing optimizations 13 * Version: 3.4.1 413 * Version: 3.4.15 14 14 * Author: Aleksandr Guidrevitch 15 15 * Author URI: https://wp-meteor.com/ … … 26 26 } 27 27 28 define('WPMETEOR_VERSION', '3.4.1 4');28 define('WPMETEOR_VERSION', '3.4.15'); 29 29 define('WPMETEOR_TEXTDOMAIN', 'wp-meteor'); 30 30 define('WPMETEOR_NAME', 'WP Meteor');
Note: See TracChangeset
for help on using the changeset viewer.