{"version":3,"sources":["webpack://pdp-tabs-hack/../src/multi-observer.ts","webpack://pdp-tabs-hack/./src/index.js"],"names":["f","observeDocument","domList","value","then","primaryCategory","window","config","padl","namespace","dataLayer","page","pageInfo","blockPDPIDStartsWith","toUpperCase","container","MutationObserver","mutations","_","addedNodes","querySelector","nwc","load","observe","childList","directNode","_prev","document","body","parentElement","documentElement","targetPredicate","addedNode","nodeName","getElementById","prev","classList","contains","Promise","resolve","args","i","arguments","length","apply","e","reject"],"mappings":"2mCA0DsB,O,EAEI,EACtB,CACE,CACE,WAAY,SAAC,GAAD,OAAW,SAAS,MAChC,cAAe,SAAC,GAAD,OAAW,SAAS,iBACnC,gBAAiB,SAAC,GAAD,MAAsC,SAAvB,EAAU,WAE5C,CACE,WAAY,SAAC,GAAD,OAAW,SAAS,eAAe,SAC/C,cAAe,SAAC,GAAD,OAAU,GACzB,gBAAiB,SAAC,GAAD,MAAsC,SAAvB,EAAU,WAE5C,CACE,WAAY,SAAC,GAAD,OAAW,MACvB,cAAe,SAAC,GAAD,OACb,SAAS,cAAT,iBACF,gBAAiB,SAAC,GAAD,MACQ,QAAvB,EAAU,UACV,EAAU,UAAU,SAAS,qBAGnC,O,gDCXmBA,EDjDR,E,YACb,EACA,EACA,EACA,GAEE,OAAK,IAAI,SAAQ,SAAC,GAClB,GAAkB,MAAd,EAAJ,CAIA,IAAM,EAAe,IAAI,kBAAiB,SAAC,EAAW,GACpD,cAAuB,KAAvB,aACE,IADgC,IAChC,MADgC,QACC,cAAjC,aAA6C,KAAlC,EAAkC,QAC3C,GAAI,EAAgB,GAGlB,OAFA,EAAa,kBACb,EAAQ,OAMZ,EAAS,QAAQ,EAAe,CAAE,WAAW,IAC7C,YAAO,kBAAM,EAAa,eAAc,QAf1C,EAAQ,SA7BQC,EAAtB,YAAsCC,EAAqB,GAAe,OACjC,EAAQ,QAAR,SAEnC,EAFmC,GAIjC,IADA,EACA,EADA,WAAY,EACZ,EADY,cAAe,EAC3B,EAD2B,gBAC3B,SACiB,GADjB,SACI,GACN,IAAM,EAAgB,EAAW,GAC3B,EAAmB,EAAc,GAHrC,SAIW,EACX,EACA,EACA,EACA,SAGJ,S,uzBCsDmBF,E,WAnEnB,IAiFmBG,EAAOC,EAjFpBC,EAAkBC,QAAUA,OAAOA,OAAOC,OAAOC,KAAKC,WAAWC,UAAUC,KAAKA,KAAKC,SAASP,gBAChGQ,EAAuB,8BAFP,MAIiB,YAAlCR,EAAgBS,cACfD,EAAuB,8BAEe,YAAlCR,EAAgBS,cACpBD,EAAuB,8BAEe,cAAlCR,EAAgBS,gBACpBD,EAAuB,iCAuEDT,EAlFN,SAadW,GAoBe,IAAIC,kBAAiB,SAACC,EAAWC,GAClD,cAAuBD,KAAvB,aACI,IAD8B,IAC9B,MAD8B,QACGE,cAAjC,aACI,GADyC,QAC3BC,cAAc,uBAExB,YADAd,OAAOe,KAAOf,OAAOe,IAAIC,MAAK,OAMjCC,QAAQR,EAAW,CAAES,WAAW,MAuC1BrB,EArEKF,EACpB,CACI,CACIwB,WAAY,SAACC,GAAD,OAAWC,SAASC,MAChCC,cAAe,SAACH,GAAD,OAAWC,SAASG,iBACnCC,gBAAiB,SAACC,GAAD,MAAsC,SAAvBA,EAAUC,WAE9C,CACIR,WAAY,SAACC,GAAD,OAAWC,SAASO,eAAe,SAC/CL,cAAe,SAACM,GAAD,OAAUA,GACzBJ,gBAAiB,SAACC,GAAD,MAAsC,SAAvBA,EAAUC,WAE9C,CACIR,WAAY,SAACC,GAAD,OAAWA,EAAMN,cAAc,oBAC3CS,cAAe,SAACH,GAAD,OAAWC,SAASP,cAAT,SAAgCP,EAAhC,OAC1BkB,gBAAiB,SAACC,GAAD,MAAsC,QAAvBA,EAAUC,UAAsBD,EAAUI,UAAUC,SAAS,qBAGrG,OAuDQlC,EAAMC,OACpBD,EAAQmC,QAAQC,QAAQpC,IAElBC,EAAOD,EAAMC,KAAKA,GAAQD,GApB1B,WACN,IAAK,IAAIqC,EAAO,GAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAChDD,EAAKC,GAAKC,UAAUD,GAErB,IACC,OAAOH,QAAQC,QAAQvC,EAAE4C,MAAM,KAAMJ,IACpC,MAAMK,GACP,OAAOP,QAAQQ,OAAOD,Q","file":"main.js","sourcesContent":["export async function observeDocument(domList, timeout) {\n    const currentNode = await domList.reduce(async (acc, { directNode, parentElement, targetPredicate }) => {\n        const prev = await acc;\n        const directNodeRef = directNode(prev);\n        const parentElementRef = parentElement(prev);\n        return await observeNode(directNodeRef, parentElementRef, targetPredicate, timeout);\n    }, null);\n    return currentNode;\n}\nasync function observeNode(directNode, parentElement, targetPredicate, timeout) {\n    return new Promise((resolve) => {\n        if (directNode != null) {\n            resolve(directNode);\n            return;\n        }\n        const nodeObserver = new MutationObserver((mutations, _) => {\n            for (const mutation of mutations) {\n                for (const addedNode of mutation.addedNodes) {\n                    if (targetPredicate(addedNode)) {\n                        nodeObserver.disconnect();\n                        resolve(addedNode);\n                        return;\n                    }\n                }\n            }\n        });\n        nodeObserver.observe(parentElement, { childList: true });\n        setTimeout(() => nodeObserver.disconnect(), timeout);\n    });\n}\nasync function example() {\n    const blockPDPIDStartsWith = 'test';\n    const container = await observeDocument([\n        {\n            directNode: (_prev) => document.body,\n            parentElement: (_prev) => document.documentElement,\n            targetPredicate: (addedNode) => addedNode.nodeName === 'BODY',\n        },\n        {\n            directNode: (_prev) => document.getElementById('main'),\n            parentElement: (prev) => prev,\n            targetPredicate: (addedNode) => addedNode.nodeName === 'MAIN',\n        },\n        {\n            directNode: (_prev) => null,\n            parentElement: (_prev) => document.querySelector(`[id*=\"${blockPDPIDStartsWith}\"]`),\n            targetPredicate: (addedNode) => addedNode.nodeName === 'DIV' &&\n                addedNode.classList.contains('ProductDetails'),\n        },\n    ], 8000);\n}\n//# sourceMappingURL=multi-observer.js.map","import { observeDocument } from 'multi-observer'\n\nasync function runHack(){\n    const primaryCategory = window && window[window.config.padl.namespace].dataLayer.page.page.pageInfo.primaryCategory\n    let blockPDPIDStartsWith = 'respProductDetailPDPMachine'\n\n    if(primaryCategory.toUpperCase() === 'MACHINE'){\n        blockPDPIDStartsWith = 'respProductDetailPDPMachine'\n    }\n    else if(primaryCategory.toUpperCase() === 'CAPSULE'){\n        blockPDPIDStartsWith = 'respProductDetailPDPCapsule'\n    }\n    else if(primaryCategory.toUpperCase() === 'ACCESSORY'){\n        blockPDPIDStartsWith = 'respProductDetailPDPAccessory'\n    }\n    const container = await observeDocument(\n        [\n            {\n                directNode: (_prev) => document.body,\n                parentElement: (_prev) => document.documentElement,\n                targetPredicate: (addedNode) => addedNode.nodeName === 'BODY',\n            },\n            {\n                directNode: (_prev) => document.getElementById('main'),\n                parentElement: (prev) => prev,\n                targetPredicate: (addedNode) => addedNode.nodeName === 'MAIN',\n            },\n            {\n                directNode: (_prev) => _prev.querySelector('.ProductDetails'),\n                parentElement: (_prev) => document.querySelector(`[id*=\"${blockPDPIDStartsWith}\"]`),\n                targetPredicate: (addedNode) => addedNode.nodeName === 'DIV' && addedNode.classList.contains('ProductDetails'),\n            },\n        ],\n        8000\n    )\n    const nodeObserver = new MutationObserver((mutations, _) => {\n        for (const mutation of mutations) {\n            for (const addedNode of mutation.addedNodes) {\n                if (addedNode.querySelector('.ProductDetailsBody')) {\n                    window.nwc && window.nwc.load(true)\n                    return\n                }\n            }\n        }\n    })\n    nodeObserver.observe(container, { childList: true })\n};\n\nvoid runHack()\n"],"sourceRoot":""}