{"version":3,"sources":["webpack:///./app/components/m/reference-object-snippet-variants/index.js"],"names":["activateTag","tag","addToCartButton","artNumber","buttonLabel","hint","classList","add","remove","setAttribute","innerHTML","style","display","deactivateTag","removeAttribute","referenceObjectSnippetVariants","containers","document","querySelectorAll","forEach","container","variants","variant","contains","getAttribute","details","closest","querySelector","removeEventListener","handleVariantClick","addEventListener","e","target","activeTag","parentElement","reloadROSV","results","result","clicked","resultList","showMoreButton","observer","MutationObserver","mutations","mutation","type","config","childList","observe"],"mappings":";;;;;;;;;;;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,WAAW,GAAGA,CAACC,GAAG,EAAEC,eAAe,EAAEC,SAAS,EAAEC,WAAW,EAAEC,IAAI,KAAK;EAC1EJ,GAAG,CAACK,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;EAC3BL,eAAe,CAACI,SAAS,CAACE,MAAM,CAAC,UAAU,CAAC;EAC5CN,eAAe,CAACO,YAAY,CAAC,iBAAiB,EAAEN,SAAS,CAAC;EAC1DC,WAAW,CAACM,SAAS,GAAGP,SAAS;EACjCE,IAAI,CAACM,KAAK,CAACC,OAAO,GAAG,MAAM;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CAACZ,GAAG,EAAEC,eAAe,EAAEE,WAAW,EAAEC,IAAI,KAAK;EACjEJ,GAAG,CAACK,SAAS,CAACE,MAAM,CAAC,QAAQ,CAAC;EAC9BN,eAAe,CAACI,SAAS,CAACC,GAAG,CAAC,UAAU,CAAC;EACzCL,eAAe,CAACY,eAAe,CAAC,iBAAiB,CAAC;EAClDV,WAAW,CAACM,SAAS,GAAG,EAAE;EAC1BL,IAAI,CAACM,KAAK,CAACC,OAAO,GAAG,OAAO;AAC9B,CAAC;;AAED;AACA;AACA;AACA,MAAMG,8BAA8B,GAAGA,CAAA,KAAM;EAC3C,MAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,oCAAoC,CAAC;EAClFF,UAAU,CAACG,OAAO,CAAEC,SAAS,IAAK;IAChC,MAAMC,QAAQ,GAAGD,SAAS,CAACF,gBAAgB,CAAC,sDAAsD,CAAC;IACnGG,QAAQ,CAACF,OAAO,CAAEG,OAAO,IAAK;MAC5B,IAAIA,OAAO,CAAChB,SAAS,CAACiB,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACxC,MAAMpB,SAAS,GAAGmB,OAAO,CAACE,YAAY,CAAC,iBAAiB,CAAC;QACzD,MAAMC,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,oCAAoC,CAAC;QACrE,MAAMxB,eAAe,GAAGuB,OAAO,CAACE,aAAa,CAAC,6BAA6B,CAAC;QAC5E,MAAMvB,WAAW,GAAGF,eAAe,CAACyB,aAAa,CAAC,aAAa,CAAC;QAChE,MAAMtB,IAAI,GAAGoB,OAAO,CAACE,aAAa,CAAC,yCAAyC,CAAC;QAC7E3B,WAAW,CAACsB,OAAO,EAAEpB,eAAe,EAAEC,SAAS,EAAEC,WAAW,EAAEC,IAAI,CAAC;MACrE;MAEAiB,OAAO,CAACM,mBAAmB,CAAC,OAAO,EAAEC,kBAAkB,CAAC;MACxDP,OAAO,CAACQ,gBAAgB,CAAC,OAAO,EAAED,kBAAkB,CAAC;IACvD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAMA,kBAAkB,GAAIE,CAAC,IAAK;EAChC,MAAM9B,GAAG,GAAG8B,CAAC,CAACC,MAAM;EACpB,MAAMC,SAAS,GAAGhC,GAAG,CAACiC,aAAa,CAACP,aAAa,CAAC,6DAA6D,CAAC;EAChH,MAAMxB,SAAS,GAAGF,GAAG,CAACuB,YAAY,CAAC,iBAAiB,CAAC;EACrD,MAAMC,OAAO,GAAGxB,GAAG,CAACyB,OAAO,CAAC,oCAAoC,CAAC;EACjE,MAAMxB,eAAe,GAAGuB,OAAO,CAACE,aAAa,CAAC,6BAA6B,CAAC;EAC5E,MAAMvB,WAAW,GAAGF,eAAe,CAACyB,aAAa,CAAC,aAAa,CAAC;EAChE,MAAMtB,IAAI,GAAGoB,OAAO,CAACE,aAAa,CAAC,yCAAyC,CAAC;EAE7E,IAAIM,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAKhC,GAAG,EAAE;IAC3CY,aAAa,CAACoB,SAAS,EAAE/B,eAAe,EAAEE,WAAW,EAAEC,IAAI,CAAC;IAC5D;EACF;EAEA,IAAI4B,SAAS,KAAK,IAAI,EAAE;IACtBA,SAAS,CAAC3B,SAAS,CAACE,MAAM,CAAC,QAAQ,CAAC;EACtC;EAEAR,WAAW,CAACC,GAAG,EAAEC,eAAe,EAAEC,SAAS,EAAEC,WAAW,EAAEC,IAAI,CAAC;AACjE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAM8B,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAMC,OAAO,GAAGnB,QAAQ,CAACC,gBAAgB,CAAC,gBAAgB,CAAC;EAC3DkB,OAAO,CAACjB,OAAO,CAAEkB,MAAM,IAAK;IAC1B,IAAIC,OAAO,GAAG,KAAK;IACnB,MAAMC,UAAU,GAAGF,MAAM,CAACV,aAAa,CAAC,sBAAsB,CAAC;IAC/D,MAAMa,cAAc,GAAGH,MAAM,CAACV,aAAa,CAAC,iCAAiC,CAAC;IAE9E,IAAIa,cAAc,EAAE;MAClBA,cAAc,CAACV,gBAAgB,CAAC,OAAO,EAAE,MAAM;QAC7CQ,OAAO,GAAG,IAAI;MAChB,CAAC,CAAC;IACJ;IAEA,MAAMG,QAAQ,GAAG,IAAIC,gBAAgB,CAAEC,SAAS,IAAK;MACnDA,SAAS,CAACxB,OAAO,CAAEyB,QAAQ,IAAK;QAC9B,IAAIA,QAAQ,CAACC,IAAI,KAAK,WAAW,IAAIP,OAAO,EAAE;UAC5C;UACAvB,8BAA8B,EAAE;QAClC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;;IAEF;IACA,MAAM+B,MAAM,GAAG;MAAEC,SAAS,EAAE;IAAK,CAAC;;IAElC;IACAN,QAAQ,CAACO,OAAO,CAACT,UAAU,EAAEO,MAAM,CAAC;EACtC,CAAC,CAAC;AACJ,CAAC;;AAED;AACA,CAAC,YAAY;EACX/B,8BAA8B,EAAE;EAChCoB,UAAU,EAAE;AACd,CAAC,GAAG","file":"reference-object-snippet-variants.chunk.js","sourcesContent":["/**\r\n * Activates the given tag and applies the appropriate styles\r\n * to the other elements\r\n * @param tag\r\n * @param addToCartButton\r\n * @param artNumber\r\n * @param buttonLabel\r\n * @param hint\r\n */\r\nconst activateTag = (tag, addToCartButton, artNumber, buttonLabel, hint) => {\r\n  tag.classList.add('active');\r\n  addToCartButton.classList.remove('disabled');\r\n  addToCartButton.setAttribute('data-art-number', artNumber);\r\n  buttonLabel.innerHTML = artNumber;\r\n  hint.style.display = 'none';\r\n};\r\n\r\n/**\r\n * De-activates the given tag and applies the appropriate styles\r\n * to the other elements\r\n * @param tag\r\n * @param addToCartButton\r\n * @param buttonLabel\r\n * @param hint\r\n */\r\nconst deactivateTag = (tag, addToCartButton, buttonLabel, hint) => {\r\n  tag.classList.remove('active');\r\n  addToCartButton.classList.add('disabled');\r\n  addToCartButton.removeAttribute('data-art-number');\r\n  buttonLabel.innerHTML = '';\r\n  hint.style.display = 'block';\r\n};\r\n\r\n/**\r\n * Init all the reference-object-snippet elements\r\n */\r\nconst referenceObjectSnippetVariants = () => {\r\n  const containers = document.querySelectorAll('.reference-object-snippet-variants');\r\n  containers.forEach((container) => {\r\n    const variants = container.querySelectorAll('.reference-object-snippet__details-variants-list-tag');\r\n    variants.forEach((variant) => {\r\n      if (variant.classList.contains('active')) {\r\n        const artNumber = variant.getAttribute('data-art-number');\r\n        const details = variant.closest('.reference-object-snippet__details');\r\n        const addToCartButton = details.querySelector('.add-to-cart__button button');\r\n        const buttonLabel = addToCartButton.querySelector('span > span');\r\n        const hint = details.querySelector('.reference-object-snippet__details-hint');\r\n        activateTag(variant, addToCartButton, artNumber, buttonLabel, hint);\r\n      }\r\n\r\n      variant.removeEventListener('click', handleVariantClick);\r\n      variant.addEventListener('click', handleVariantClick);\r\n    });\r\n  });\r\n};\r\n\r\nconst handleVariantClick = (e) => {\r\n  const tag = e.target;\r\n  const activeTag = tag.parentElement.querySelector('.reference-object-snippet__details-variants-list-tag.active');\r\n  const artNumber = tag.getAttribute('data-art-number');\r\n  const details = tag.closest('.reference-object-snippet__details');\r\n  const addToCartButton = details.querySelector('.add-to-cart__button button');\r\n  const buttonLabel = addToCartButton.querySelector('span > span');\r\n  const hint = details.querySelector('.reference-object-snippet__details-hint');\r\n\r\n  if (activeTag !== null && activeTag === tag) {\r\n    deactivateTag(activeTag, addToCartButton, buttonLabel, hint);\r\n    return;\r\n  }\r\n\r\n  if (activeTag !== null) {\r\n    activeTag.classList.remove('active');\r\n  }\r\n\r\n  activateTag(tag, addToCartButton, artNumber, buttonLabel, hint);\r\n};\r\n\r\n/**\r\n * Reload the reference-object-snippet-variants\r\n * after more products have been loaded via \"Show More\"\r\n */\r\nconst reloadROSV = () => {\r\n  const results = document.querySelectorAll('.filter-result');\r\n  results.forEach((result) => {\r\n    let clicked = false;\r\n    const resultList = result.querySelector('.filter-result__list');\r\n    const showMoreButton = result.querySelector('.filter-result__more-btn button');\r\n\r\n    if (showMoreButton) {\r\n      showMoreButton.addEventListener('click', () => {\r\n        clicked = true;\r\n      });\r\n    }\r\n\r\n    const observer = new MutationObserver((mutations) => {\r\n      mutations.forEach((mutation) => {\r\n        if (mutation.type === 'childList' && clicked) {\r\n          // console.log('Number of children changed:', resultList.children.length);\r\n          referenceObjectSnippetVariants();\r\n        }\r\n      });\r\n    });\r\n\r\n    // Configuration of the observer\r\n    const config = { childList: true };\r\n\r\n    // Start observing the target node for configured mutations\r\n    observer.observe(resultList, config);\r\n  });\r\n};\r\n\r\n// init component\r\n(function () {\r\n  referenceObjectSnippetVariants();\r\n  reloadROSV();\r\n})();\r\n\r\nexport { referenceObjectSnippetVariants };\r\n"],"sourceRoot":""}