{"version":3,"file":"wzard-customize-id-page.js","names":["document","addEventListener","URLSearchParams","window","location","search","sizeSelected","colorSelected","idType","$","click","this","hasClass","show","removeClass","addClass","data","getAttribute","url","val","urlEngrave","urlToUse","ajax","method","success","response","console","log","error","xhr","status","checkIfAllSelected","ctaElement","querySelector","element","offset","elementPosition","getBoundingClientRect","top","scrollY","scrollTo","behavior","smoothScrollToElement","handleDesktopScroll","upButton","downButton","imagesWrapper","productImages","querySelectorAll","currentPosition","getElementById","sizeContainers","colorContainers","maxScroll","length","style","transform","forEach","sizeContainer","html","container","classList","remove","add","innerHTML","productSize","each","selectedSizeContainer","on","prop","css","text","colorContainer","contains","colorName","productColor","handleColorSelection","selectedColorContainer","pid","textContent","dataUrl","attr","get","selectedVariant","inCart","opacity","err","imageContainer","imageSelected","setAttribute","img","firstColumn","secondColumn","containerRow","Imagewrappercontainer","innerWidth","scrollLeft","marginLeft","isScrollingTogether","firstColumnRect","secondColumnRect","containerRect","bottom","position","customizeid","pdpEditbutton","customizeidQr","updateLinkTarget","link","find","trim","editPid","type","redirectUrl","href","input","counter","nextElementSibling","previewId","id","previewElement","value","remaining","button","event","stopPropagation","body","previousElementSibling","isExpanded","toggle","toggleReadMore","ready","accordion","collapseElement"],"sources":["wzard-customize-id-page.js"],"sourcesContent":["document.addEventListener(\"DOMContentLoaded\", function () {\n // Get the full URL\n var urlParams = new URLSearchParams(window.location.search);\n const productData = {};\n\n let sizeSelected = null;\n let colorSelected = null;\n let idType = null;\n\n $(\".engrave-cards-container\").click(function () {\n if ($(this).hasClass(\"selected-engrave-cards-container\")) {\n return;\n }\n $(\".pdpLoader\").show();\n $(\".engrave-cards-container\").removeClass(\n \"selected-engrave-cards-container\"\n );\n $(this).addClass(\"selected-engrave-cards-container\");\n var data = this.getAttribute(\"data-name\");\n idType = data;\n var url = $(\".call-sm\").val();\n var urlEngrave = $(\".call-engrave\").val();\n var cardType = $(this).data(\"name\");\n var urlToUse = cardType === \"QR\" ? url : urlEngrave;\n\n $.ajax({\n url: urlToUse,\n method: \"GET\",\n success: function (response) {\n console.log(\"Response:\", response);\n },\n error: function (xhr, status, error) {\n console.log(\"AJAX error:\", error);\n },\n });\n\n // Check if all selected to handle desktop scroll\n if (checkIfAllSelected()) {\n handleDesktopScroll();\n }\n });\n\n const upButton = document.querySelector(\".up-button\");\n const downButton = document.querySelector(\".down-button\");\n const imagesWrapper = document.querySelector(\".images-wrapper\");\n const productImages = imagesWrapper.querySelectorAll(\".product-colors-image\");\n let imageHeight = 88 + 5 * 2; // Image height (88px) + margin (8px * 2)\n\n const EngraveID = document.querySelector(\".EngraveID-Container\");\n const compareBenifits = document.querySelector(\".compareBenifits\");\n\n const visibleImagesCount = 5;\n let currentPosition = 0;\n const button = document.getElementById(\"customizeid\");\n\n const sizeContainers = document.querySelectorAll(\n \".customize-size-container-variation\"\n );\n const colorContainers = document.querySelectorAll(\n \".customize-color-container\"\n );\n\n // Calculate the max scroll position based on the number of images\n const maxScroll = -(\n (productImages.length - visibleImagesCount) *\n imageHeight\n );\n\n // Function to check if all options are selected\n function checkIfAllSelected() {\n //eslint-disable-line\n\n if (sizeContainers.length == 0 && colorContainers.length == 0) {\n return true;\n }\n\n if (sizeContainers.length != 0 && colorContainers.length != 0) {\n return sizeSelected && colorSelected;\n } else {\n if (sizeContainers.length != 0 && sizeSelected != null) {\n return true;\n } else {\n if (colorContainers.length != 0 && colorSelected != null) {\n return true;\n } else {\n return false;\n }\n }\n }\n }\n\n // Scroll functionality for product images\n upButton.addEventListener(\"click\", function () {\n if (currentPosition < 0) {\n currentPosition += imageHeight;\n imagesWrapper.style.transform = \"translateY(\" + currentPosition + \"px)\";\n }\n });\n\n downButton.addEventListener(\"click\", function () {\n if (currentPosition > maxScroll) {\n currentPosition -= imageHeight;\n imagesWrapper.style.transform = \"translateY(\" + currentPosition + \"px)\";\n }\n });\n\n // Handle size selection\n sizeContainers.forEach(function (sizeContainer) {\n sizeContainer.addEventListener(\"click\", function () {\n $(\"#sizeHeader\").html(\"Size: \");\n sizeContainers.forEach(function (container) {\n return container.classList.remove(\"customize-size-container-active\");\n });\n this.classList.add(\"customize-size-container-active\");\n sizeSelected = this.getAttribute(\"data-size\");\n document.querySelectorAll(\".customize-size\").forEach(function (element) {\n element.innerHTML = sizeSelected;\n });\n productSize = sizeSelected;\n if (checkIfAllSelected()) {\n // handleDesktopScroll();\n }\n $(\"#sizeHeader\").removeClass(\"errorState\");\n $(\".customizeid-sizechart .customize-size-container\").each(function () {\n $(this).removeClass(\"size-error-state\");\n });\n });\n });\n\n const selectedSizeContainer = document.querySelector(\n \".customize-size-container-variation.selected\"\n );\n if (selectedSizeContainer) {\n selectedSizeContainer.classList.add(\"customize-size-container-active\"); // Ensure it's visually active\n sizeSelected = selectedSizeContainer.getAttribute(\"data-size\");\n document.querySelectorAll(\".customize-size\").forEach(function (element) {\n element.innerHTML = sizeSelected;\n });\n productSize = sizeSelected;\n $(\"#sizeHeader\").html(\"Size: \");\n }\n\n // $(\".customize-color-container\").click(function() {\n // $(\".customize-color-container\").removeClass(\"customize-color-active\");\n // $(this).addClass(\"customize-color-active\");\n // });\n\n // $(\"#customizeEngraveid\").click(function () {\n // if ($(\"#EngraveCheckboxPDP\").prop(\"checked\")) {\n // $(\".custom-checkbox-container .checkmark\").css(\"border-color\", \"\");\n // $(\".declaration .text\").css(\"color\", \"\");\n // } else {\n // $(\".custom-checkbox-container .checkmark\").css(\"border-color\", \"#e63946\");\n // $(\".declaration .text\").css(\"color\", \"#e63946\");\n // }\n // });\n\n $(\"#EngraveCheckbox\").on(\"change\", function () {\n if ($(this).prop(\"checked\")) {\n // Reset styles if the checkbox is checked\n $(\".custom-checkbox-container .checkmark\").css({\n \"border-color\": \"#051424\",\n });\n $(\".declaration .text\").css(\"color\", \"#051424\");\n } else {\n $(\"#engravingline3\").val(\"\");\n $(\"#engravingline4\").val(\"\");\n $(\"#pengravingline3\").text(\"\");\n $(\"#pengravingline4\").text(\"\");\n }\n });\n\n function handleColorSelection(colorContainer) {\n // Check if there is only one color and prevent unselecting\n if (colorContainers.length === 1) {\n return; // Exit without changing anything\n }\n if (colorContainer.classList.contains(\"selected\")) {\n // If already selected, reset\n colorSelected = null;\n $(\"#colorHeader\").html(\"Select Your Color: \");\n colorContainer.classList.remove(\"customize-color-active\");\n\n document.querySelectorAll(\".customize-color\").forEach(function (element) {\n element.innerHTML = \"\";\n });\n } else {\n // If not selected, update selection\n $(\"#colorHeader\").html(\"Color: \");\n\n // Remove active class from all\n colorContainers.forEach(function (container) {\n container.classList.remove(\"customize-color-active\");\n });\n\n // Add active class to the clicked one\n colorContainer.classList.add(\"customize-color-active\");\n\n colorSelected = colorContainer.getAttribute(\"data-attr-value\");\n var colorName = colorSelected; // Just a more readable name\n\n document.querySelectorAll(\".customize-color\").forEach(function (element) {\n element.innerHTML = colorName;\n });\n\n productColor = colorName;\n }\n }\n\n // Add event listeners for clicks\n colorContainers.forEach(function (colorContainer) {\n colorContainer.addEventListener(\"click\", function () {\n handleColorSelection(colorContainer);\n $(\"#colorHeader\").removeClass(\"errorState\");\n $(\".customize-color-container\").each(function () {\n $(this).removeClass(\"color-error-state\");\n });\n });\n });\n\n const selectedColorContainer = document.querySelector(\n \".customize-color-container.selected\"\n );\n if (selectedColorContainer) {\n selectedColorContainer.classList.add(\"customize-color-active\"); // Ensure it's visually active\n colorSelected = selectedColorContainer.getAttribute(\"data-attr-value\");\n productColor = colorSelected;\n\n // Update UI with the selected color name\n document.querySelectorAll(\".customize-color\").forEach(function (element) {\n element.innerHTML = colorSelected;\n });\n\n $(\"#colorHeader\").html(\"Color: \");\n var pid = $(\".product-id\")[0].textContent;\n var dataUrl = $(\"#selectedVariationURL\").attr(\"data-url\");\n var urlParams = new URLSearchParams(window.location.search);\n var editPid = urlParams.get(\"editPid\");\n if (!editPid) {\n $.ajax({\n url: dataUrl,\n method: \"POST\",\n data: { selectedVariant: pid },\n success: function (response) {\n if (response.inCart) {\n $(\"#customizeid , #customizeidQr\")\n .text(\"Already In Your Cart\")\n .css({ opacity: \"0.5\", \"pointer-events\": \"none\" });\n } else {\n $(\"#customizeid , #customizeidQr\")\n .text(\"Next\")\n .css({ opacity: \"1\", \"pointer-events\": \"auto\" });\n }\n },\n error: function (err) {\n console.error(\"Error fetching product variation:\", err);\n },\n });\n }\n }\n\n // Handle product image selection\n productImages.forEach(function (imageContainer) {\n imageContainer.addEventListener(\"click\", function () {\n // Update selected image\n imageSelected = this.querySelector(\"img\").getAttribute(\"src\");\n document\n .querySelector(\".Product-image img\")\n .setAttribute(\"src\", imageSelected);\n\n productImages.forEach(function (img) {\n return img.classList.remove(\"product-colors-image-border\");\n });\n this.classList.add(\"product-colors-image-border\");\n\n // checkIfAllSelected();\n });\n });\n\n const firstColumn = document.querySelector(\".product-container-col\");\n const secondColumn = document.querySelector(\".customizeid-col\");\n const containerRow = document.querySelector(\".product-container-row\");\n\n const Imagewrappercontainer = document.querySelector(\n \".images-wrapper-container\"\n );\n\n Imagewrappercontainer.addEventListener(\"scroll\", function () {\n if (window.innerWidth < 767) {\n if (Imagewrappercontainer.scrollLeft > 0) {\n Imagewrappercontainer.style.marginLeft = \"0px\"; // Remove left margin when scrolling\n } else {\n Imagewrappercontainer.style.marginLeft = \"16px\"; // Restore margin when scrolled back\n }\n }\n });\n\n let isScrollingTogether = false; // Track whether the columns are scrolling together\n\n const handleScroll = function () {\n const isDesktop = window.innerWidth > 1200; // Desktop breakpoint\n if (!isDesktop) return; // Exit if not on desktop\n\n const firstColumnRect = firstColumn.getBoundingClientRect();\n const secondColumnRect = secondColumn.getBoundingClientRect();\n const containerRect = containerRow.getBoundingClientRect();\n\n // Check if the second column has reached the bottom of the first column\n if (secondColumnRect.bottom <= firstColumnRect.bottom) {\n if (isScrollingTogether) {\n isScrollingTogether = true; // Update state to scrolling together\n firstColumn.style.position = \"relative\";\n firstColumn.style.top =\n \"\" + secondColumnRect.top - containerRect.top + \"px\";\n }\n } else if (secondColumnRect.top <= containerRect.top) {\n // Reset sticky behavior when scrolling back up\n if (!isScrollingTogether) {\n isScrollingTogether = false; // Update state to not scrolling together\n firstColumn.style.position = \"sticky\";\n firstColumn.style.top = \"88px\";\n }\n }\n };\n\n window.addEventListener(\"scroll\", handleScroll);\n\n // Re-check window size on resize to enable/disable the function dynamically\n window.addEventListener(\"resize\", function () {\n const isDesktop = window.innerWidth >= 1200; // Desktop breakpoint\n if (!isDesktop) {\n // Reset styles if switching to mobile\n firstColumn.style.position = \"\";\n firstColumn.style.top = \"\";\n }\n });\n\n // Helper function to smoothly scroll to an element\n function smoothScrollToElement(element, offset = 0) {\n const elementPosition =\n element.getBoundingClientRect().top + window.scrollY - offset;\n window.scrollTo({\n top: elementPosition - 300,\n behavior: \"smooth\",\n });\n }\n\n // Desktop: Trigger scroll when validation is complete\n function handleDesktopScroll() {\n const ctaElement = document.querySelector(\"#customizeid\"); // Replace with your CTA button selector\n const desktopOffset = 100; // Adjust offset to ensure button is above the fold\n smoothScrollToElement(ctaElement, desktopOffset);\n }\n\n const customizeid = document.getElementById(\"customizeid\");\n const pdpEditbutton = document.getElementById(\"pdpEditbutton\");\n const customizeidQr = document.getElementById(\"customizeidQr\");\n\n pdpEditbutton?.addEventListener(\"click\", function () {\n document.querySelector(\".custom-engrave-container\").classList.add(\"d-none\");\n document.querySelector(\".engravepdplikeheader\").classList.remove(\"d-none\");\n document\n .querySelector(\".engrave-plp-card-container\")\n .classList.remove(\"d-none\");\n document\n .querySelector(\".productOnlyContainerPDP\")\n .classList.remove(\"d-none\");\n // $(\".engraveBar\").addClass(\"d-none\");\n $(\".engraveBar\").removeClass(\"Wizard-account\");\n $(\".Wizard-account-bar, .Wizard-engrave-bar\").css(\n \"background-color\",\n \"#828991\"\n );\n $(\".Wizard-engrave\").removeClass(\"progress-active\");\n $(\".Wizard-account\").removeClass(\"progress-deactive\");\n $(\".Wizard-account\").addClass(\"progress-active\");\n $(\".Wizard-checked-circle-account\").removeClass(\"Wizard-account-circle\");\n });\n\n customizeid.addEventListener(\"click\", function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\", // Enables smooth scrolling\n });\n if (checkIfAllSelected()) {\n document\n .querySelector(\".custom-engrave-container\")\n .classList.remove(\"d-none\");\n document.querySelector(\".engravepdplikeheader\").classList.add(\"d-none\");\n document\n .querySelector(\".engrave-plp-card-container\")\n .classList.add(\"d-none\");\n document\n .querySelector(\".productOnlyContainerPDP\")\n .classList.add(\"d-none\");\n $(\".engraveBar\").removeClass(\"d-none\");\n $(\".Wizard-account-bar, .Wizard-engrave-bar\").css(\n \"background-color\",\n \"#0f7ef8\"\n );\n $(\".Wizard-engrave\").addClass(\"progress-active\");\n $(\".Wizard-account\").removeClass(\"progress-active\");\n $(\".Wizard-account\").addClass(\"progress-deactive\");\n $(\".Wizard-checked-circle-account\").addClass(\"Wizard-account-circle\");\n } else {\n if (colorSelected == null) {\n $(\"#colorHeader\").addClass(\"errorState\");\n $(\".customize-color-container\").each(function () {\n $(this).addClass(\"color-error-state\");\n });\n }\n if (sizeSelected == null) {\n $(\"#sizeHeader\").addClass(\"errorState\");\n $(\".customizeid-sizechart .customize-size-container\").each(function () {\n $(this).addClass(\"size-error-state\");\n });\n }\n }\n });\n\n customizeidQr?.addEventListener(\"click\", function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\", // Enables smooth scrolling\n });\n if (checkIfAllSelected()) {\n // Check if all options are selected\n var pid = null;\n $(\".modern-product-detail\").each(function () {\n pid = $(this).find(\".product-id\").text();\n });\n var idType = $(\"#idType\").text().trim();\n var url = $(\".move-to-plan\").val();\n var urlParams = new URLSearchParams(window.location.search);\n var editPid = urlParams.get(\"editPid\");\n $.ajax({\n url: url,\n type: \"POST\",\n data: {\n pid: pid,\n idType: idType,\n editPid: editPid,\n },\n success: function (response) {\n if (response.redirectUrl) {\n window.location.href = response.redirectUrl;\n }\n },\n error: function (xhr, status, error) {\n console.log(\"Error:\", error);\n },\n });\n } else {\n if (colorSelected == null) {\n $(\"#colorHeader\").addClass(\"errorState\");\n $(\".customize-color-container\").each(function () {\n $(this).addClass(\"color-error-state\");\n });\n }\n if (sizeSelected == null) {\n $(\"#sizeHeader\").addClass(\"errorState\");\n $(\".customizeid-sizechart .customize-size-container\").each(function () {\n $(this).addClass(\"size-error-state\");\n });\n }\n }\n });\n\n document.querySelectorAll(\".engraveInput\").forEach(function (input) {\n const counter = input.nextElementSibling; // Selects the adjacent counter div\n input.addEventListener(\"input\", function () {\n const previewId = \"p\" + input.id;\n const previewElement = document.getElementById(previewId);\n if (previewElement) {\n previewElement.textContent = input.value; // Update preview with input value\n }\n const maxLength = input.getAttribute(\"maxlength\");\n const remaining = maxLength - input.value.length;\n counter.textContent = remaining; // Updates the counter text\n });\n });\n\n // Handle Read More functionality\n document.querySelectorAll(\".read-more\").forEach(function (button) {\n button.addEventListener(\"click\", function (event) {\n toggleReadMore(this, event);\n });\n });\n\n function toggleReadMore(button, event) {\n event.stopPropagation(); // Prevent accordion collapse\n const body = button.previousElementSibling;\n const isExpanded = body.classList.toggle(\"expanded\");\n button.textContent = isExpanded ? \"Read Less\" : \"Read More\";\n }\n\n function updateLinkTarget() {\n let link = document.querySelector(\".plp-Accordian-body a\"); // Select the link\n if (window.innerWidth <= 768) {\n link.setAttribute(\"target\", \"_self\");\n } else {\n link.setAttribute(\"target\", \"_blank\");\n }\n }\n\n // Run function on page load\n updateLinkTarget();\n\n // Listen for screen resizing\n window.addEventListener(\"resize\", updateLinkTarget);\n\n $(document).ready(function () {\n const accordions = $(\".accordion-item\");\n\n accordions.each(function () {\n const accordion = $(this);\n const collapseElement = accordion.find(\".collapse\");\n\n collapseElement.on(\"show.bs.collapse\", function () {\n // accordions.removeClass(\"active\");\n accordion.addClass(\"active\");\n });\n\n collapseElement.on(\"hidden.bs.collapse\", function () {\n accordion.removeClass(\"active\");\n });\n });\n // Prevent accordion from closing when clicking a link inside it\n $(\".accordion-item a\").on(\"click\", function (event) {\n event.stopPropagation(); // Stops Bootstrap from handling this click\n });\n });\n});\n"],"mappings":"AAAAA,SAASC,iBAAiB,oBAAoB,WAE5B,IAAIC,gBAAgBC,OAAOC,SAASC,QAGpD,IAAIC,EAAe,KACfC,EAAgB,KAChBC,EAAS,KAEbC,EAAE,4BAA4BC,OAAM,WAClC,IAAID,EAAEE,MAAMC,SAAS,oCAArB,CAGAH,EAAE,cAAcI,OAChBJ,EAAE,4BAA4BK,YAC5B,oCAEFL,EAAEE,MAAMI,SAAS,oCACjB,IAAIC,EAAOL,KAAKM,aAAa,aAC7BT,EAASQ,EACT,IAAIE,EAAMT,EAAE,YAAYU,MACpBC,EAAaX,EAAE,iBAAiBU,MAEhCE,EAAwB,OADbZ,EAAEE,MAAMK,KAAK,QACOE,EAAME,EAEzCX,EAAEa,KAAK,CACLJ,IAAKG,EACLE,OAAQ,MACRC,QAAS,SAAUC,GACjBC,QAAQC,IAAI,YAAaF,EAC3B,EACAG,MAAO,SAAUC,EAAKC,EAAQF,GAC5BF,QAAQC,IAAI,cAAeC,EAC7B,IAIEG,KAuTN,WACE,MAAMC,EAAahC,SAASiC,cAAc,iBAX5C,SAA+BC,EAASC,EAAS,GAC/C,MAAMC,EACJF,EAAQG,wBAAwBC,IAAMnC,OAAOoC,QAAUJ,EACzDhC,OAAOqC,SAAS,CACdF,IAAKF,EAAkB,IACvBK,SAAU,UAEd,CAMEC,CAAsBV,EADA,IAExB,CA1TIW,EA1BF,CA4BF,IAEA,MAAMC,EAAW5C,SAASiC,cAAc,cAClCY,EAAa7C,SAASiC,cAAc,gBACpCa,EAAgB9C,SAASiC,cAAc,mBACvCc,EAAgBD,EAAcE,iBAAiB,yBAGnChD,SAASiC,cAAc,wBACjBjC,SAASiC,cAAc,oBAG/C,IAAIgB,EAAkB,EACPjD,SAASkD,eAAe,eAAvC,MAEMC,EAAiBnD,SAASgD,iBAC9B,uCAEII,EAAkBpD,SAASgD,iBAC/B,8BAIIK,GAjBY,IAkBfN,EAAcO,OAbU,GAkB3B,SAASvB,IAGP,OAA6B,GAAzBoB,EAAeG,QAAyC,GAA1BF,EAAgBE,SAIrB,GAAzBH,EAAeG,QAAyC,GAA1BF,EAAgBE,OACzChD,GAAgBC,EAEM,GAAzB4C,EAAeG,QAA+B,MAAhBhD,GAGF,GAA1B8C,EAAgBE,QAAgC,MAAjB/C,EAOzC,CAGAqC,EAAS3C,iBAAiB,SAAS,WAC7BgD,EAAkB,IACpBA,GAhDc,GAiDdH,EAAcS,MAAMC,UAAY,cAAgBP,EAAkB,MAEtE,IAEAJ,EAAW5C,iBAAiB,SAAS,WAC/BgD,EAAkBI,IACpBJ,GAvDc,GAwDdH,EAAcS,MAAMC,UAAY,cAAgBP,EAAkB,MAEtE,IAGAE,EAAeM,SAAQ,SAAUC,GAC/BA,EAAczD,iBAAiB,SAAS,WACtCQ,EAAE,eAAekD,KAAK,UACtBR,EAAeM,SAAQ,SAAUG,GAC/B,OAAOA,EAAUC,UAAUC,OAAO,kCACpC,IACAnD,KAAKkD,UAAUE,IAAI,mCACnBzD,EAAeK,KAAKM,aAAa,aACjCjB,SAASgD,iBAAiB,mBAAmBS,SAAQ,SAAUvB,GAC7DA,EAAQ8B,UAAY1D,CACtB,IACA2D,YAAc3D,EACVyB,IAGJtB,EAAE,eAAeK,YAAY,cAC7BL,EAAE,oDAAoDyD,MAAK,WACzDzD,EAAEE,MAAMG,YAAY,mBACtB,GACF,GACF,IAEA,MAAMqD,EAAwBnE,SAASiC,cACrC,gDAEEkC,IACFA,EAAsBN,UAAUE,IAAI,mCACpCzD,EAAe6D,EAAsBlD,aAAa,aAClDjB,SAASgD,iBAAiB,mBAAmBS,SAAQ,SAAUvB,GAC7DA,EAAQ8B,UAAY1D,CACtB,IACA2D,YAAc3D,EACdG,EAAE,eAAekD,KAAK,WAkBxBlD,EAAE,oBAAoB2D,GAAG,UAAU,WAC7B3D,EAAEE,MAAM0D,KAAK,YAEf5D,EAAE,yCAAyC6D,IAAI,CAC7C,eAAgB,YAElB7D,EAAE,sBAAsB6D,IAAI,QAAS,aAErC7D,EAAE,mBAAmBU,IAAI,IACzBV,EAAE,mBAAmBU,IAAI,IACzBV,EAAE,oBAAoB8D,KAAK,IAC3B9D,EAAE,oBAAoB8D,KAAK,IAE/B,IAwCAnB,EAAgBK,SAAQ,SAAUe,GAChCA,EAAevE,iBAAiB,SAAS,YAvC3C,SAA8BuE,GAE5B,GAA+B,IAA3BpB,EAAgBE,OAGpB,GAAIkB,EAAeX,UAAUY,SAAS,YAEpClE,EAAgB,KAChBE,EAAE,gBAAgBkD,KAAK,uBACvBa,EAAeX,UAAUC,OAAO,0BAEhC9D,SAASgD,iBAAiB,oBAAoBS,SAAQ,SAAUvB,GAC9DA,EAAQ8B,UAAY,EACtB,QACK,CAELvD,EAAE,gBAAgBkD,KAAK,WAGvBP,EAAgBK,SAAQ,SAAUG,GAChCA,EAAUC,UAAUC,OAAO,yBAC7B,IAGAU,EAAeX,UAAUE,IAAI,0BAE7BxD,EAAgBiE,EAAevD,aAAa,mBAC5C,IAAIyD,EAAYnE,EAEhBP,SAASgD,iBAAiB,oBAAoBS,SAAQ,SAAUvB,GAC9DA,EAAQ8B,UAAYU,CACtB,IAEAC,aAAeD,CACjB,CACF,CAKIE,CAAqBJ,GACrB/D,EAAE,gBAAgBK,YAAY,cAC9BL,EAAE,8BAA8ByD,MAAK,WACnCzD,EAAEE,MAAMG,YAAY,oBACtB,GACF,GACF,IAEA,MAAM+D,EAAyB7E,SAASiC,cACtC,uCAEF,GAAI4C,EAAwB,CAC1BA,EAAuBhB,UAAUE,IAAI,0BACrCxD,EAAgBsE,EAAuB5D,aAAa,mBACpD0D,aAAepE,EAGfP,SAASgD,iBAAiB,oBAAoBS,SAAQ,SAAUvB,GAC9DA,EAAQ8B,UAAYzD,CACtB,IAEAE,EAAE,gBAAgBkD,KAAK,WACvB,IAAImB,EAAMrE,EAAE,eAAe,GAAGsE,YAC1BC,EAAUvE,EAAE,yBAAyBwE,KAAK,YAC9B,IAAI/E,gBAAgBC,OAAOC,SAASC,QAC5B6E,IAAI,YAE1BzE,EAAEa,KAAK,CACLJ,IAAK8D,EACLzD,OAAQ,OACRP,KAAM,CAAEmE,gBAAiBL,GACzBtD,QAAS,SAAUC,GACbA,EAAS2D,OACX3E,EAAE,iCACC8D,KAAK,wBACLD,IAAI,CAAEe,QAAS,MAAO,iBAAkB,SAE3C5E,EAAE,iCACC8D,KAAK,QACLD,IAAI,CAAEe,QAAS,IAAK,iBAAkB,QAE7C,EACAzD,MAAO,SAAU0D,GACf5D,QAAQE,MAAM,oCAAqC0D,EACrD,GAGN,CAGAvC,EAAcU,SAAQ,SAAU8B,GAC9BA,EAAetF,iBAAiB,SAAS,WAEvCuF,cAAgB7E,KAAKsB,cAAc,OAAOhB,aAAa,OACvDjB,SACGiC,cAAc,sBACdwD,aAAa,MAAOD,eAEvBzC,EAAcU,SAAQ,SAAUiC,GAC9B,OAAOA,EAAI7B,UAAUC,OAAO,8BAC9B,IACAnD,KAAKkD,UAAUE,IAAI,8BAGrB,GACF,IAEA,MAAM4B,EAAc3F,SAASiC,cAAc,0BACrC2D,EAAe5F,SAASiC,cAAc,oBACtC4D,EAAe7F,SAASiC,cAAc,0BAEtC6D,EAAwB9F,SAASiC,cACrC,6BAGF6D,EAAsB7F,iBAAiB,UAAU,WAC3CE,OAAO4F,WAAa,MAClBD,EAAsBE,WAAa,EACrCF,EAAsBvC,MAAM0C,WAAa,MAEzCH,EAAsBvC,MAAM0C,WAAa,OAG/C,IAEA,IAAIC,GAAsB,EA4B1B/F,OAAOF,iBAAiB,UA1BH,WAEnB,KADkBE,OAAO4F,WAAa,MACtB,OAEhB,MAAMI,EAAkBR,EAAYtD,wBAC9B+D,EAAmBR,EAAavD,wBAChCgE,EAAgBR,EAAaxD,wBAG/B+D,EAAiBE,QAAUH,EAAgBG,OACzCJ,IACFA,GAAsB,EACtBP,EAAYpC,MAAMgD,SAAW,WAC7BZ,EAAYpC,MAAMjB,IAChB,GAAK8D,EAAiB9D,IAAM+D,EAAc/D,IAAM,MAE3C8D,EAAiB9D,KAAO+D,EAAc/D,MAE1C4D,IACHA,GAAsB,EACtBP,EAAYpC,MAAMgD,SAAW,SAC7BZ,EAAYpC,MAAMjB,IAAM,QAG9B,IAKAnC,OAAOF,iBAAiB,UAAU,WACdE,OAAO4F,YAAc,OAGrCJ,EAAYpC,MAAMgD,SAAW,GAC7BZ,EAAYpC,MAAMjB,IAAM,GAE5B,IAmBA,MAAMkE,EAAcxG,SAASkD,eAAe,eACtCuD,EAAgBzG,SAASkD,eAAe,iBACxCwD,EAAgB1G,SAASkD,eAAe,iBA4I9C,SAASyD,IACP,IAAIC,EAAO5G,SAASiC,cAAc,yBAC9B9B,OAAO4F,YAAc,IACvBa,EAAKnB,aAAa,SAAU,SAE5BmB,EAAKnB,aAAa,SAAU,SAEhC,CAjJAgB,GAAexG,iBAAiB,SAAS,WACvCD,SAASiC,cAAc,6BAA6B4B,UAAUE,IAAI,UAClE/D,SAASiC,cAAc,yBAAyB4B,UAAUC,OAAO,UACjE9D,SACGiC,cAAc,+BACd4B,UAAUC,OAAO,UACpB9D,SACGiC,cAAc,4BACd4B,UAAUC,OAAO,UAEpBrD,EAAE,eAAeK,YAAY,kBAC7BL,EAAE,4CAA4C6D,IAC5C,mBACA,WAEF7D,EAAE,mBAAmBK,YAAY,mBACjCL,EAAE,mBAAmBK,YAAY,qBACjCL,EAAE,mBAAmBM,SAAS,mBAC9BN,EAAE,kCAAkCK,YAAY,wBAClD,IAEA0F,EAAYvG,iBAAiB,SAAS,WACpCE,OAAOqC,SAAS,CACdF,IAAK,EACLG,SAAU,WAERV,KACF/B,SACGiC,cAAc,6BACd4B,UAAUC,OAAO,UACpB9D,SAASiC,cAAc,yBAAyB4B,UAAUE,IAAI,UAC9D/D,SACGiC,cAAc,+BACd4B,UAAUE,IAAI,UACjB/D,SACGiC,cAAc,4BACd4B,UAAUE,IAAI,UACjBtD,EAAE,eAAeK,YAAY,UAC7BL,EAAE,4CAA4C6D,IAC5C,mBACA,WAEF7D,EAAE,mBAAmBM,SAAS,mBAC9BN,EAAE,mBAAmBK,YAAY,mBACjCL,EAAE,mBAAmBM,SAAS,qBAC9BN,EAAE,kCAAkCM,SAAS,2BAExB,MAAjBR,IACFE,EAAE,gBAAgBM,SAAS,cAC3BN,EAAE,8BAA8ByD,MAAK,WACnCzD,EAAEE,MAAMI,SAAS,oBACnB,KAEkB,MAAhBT,IACFG,EAAE,eAAeM,SAAS,cAC1BN,EAAE,oDAAoDyD,MAAK,WACzDzD,EAAEE,MAAMI,SAAS,mBACnB,KAGN,IAEA2F,GAAezG,iBAAiB,SAAS,WAKvC,GAJAE,OAAOqC,SAAS,CACdF,IAAK,EACLG,SAAU,WAERV,IAAsB,CAExB,IAAI+C,EAAM,KACVrE,EAAE,0BAA0ByD,MAAK,WAC/BY,EAAMrE,EAAEE,MAAMkG,KAAK,eAAetC,MACpC,IACA,IAAI/D,EAASC,EAAE,WAAW8D,OAAOuC,OAC7B5F,EAAMT,EAAE,iBAAiBU,MAEzB4F,EADY,IAAI7G,gBAAgBC,OAAOC,SAASC,QAC5B6E,IAAI,WAC5BzE,EAAEa,KAAK,CACLJ,IAAKA,EACL8F,KAAM,OACNhG,KAAM,CACJ8D,IAAKA,EACLtE,OAAQA,EACRuG,QAASA,GAEXvF,QAAS,SAAUC,GACbA,EAASwF,cACX9G,OAAOC,SAAS8G,KAAOzF,EAASwF,YAEpC,EACArF,MAAO,SAAUC,EAAKC,EAAQF,GAC5BF,QAAQC,IAAI,SAAUC,EACxB,GAEJ,MACuB,MAAjBrB,IACFE,EAAE,gBAAgBM,SAAS,cAC3BN,EAAE,8BAA8ByD,MAAK,WACnCzD,EAAEE,MAAMI,SAAS,oBACnB,KAEkB,MAAhBT,IACFG,EAAE,eAAeM,SAAS,cAC1BN,EAAE,oDAAoDyD,MAAK,WACzDzD,EAAEE,MAAMI,SAAS,mBACnB,IAGN,IAEAf,SAASgD,iBAAiB,iBAAiBS,SAAQ,SAAU0D,GAC3D,MAAMC,EAAUD,EAAME,mBACtBF,EAAMlH,iBAAiB,SAAS,WAC9B,MAAMqH,EAAY,IAAMH,EAAMI,GACxBC,EAAiBxH,SAASkD,eAAeoE,GAC3CE,IACFA,EAAezC,YAAcoC,EAAMM,OAErC,MACMC,EADYP,EAAMlG,aAAa,aACPkG,EAAMM,MAAMnE,OAC1C8D,EAAQrC,YAAc2C,CACxB,GACF,IAGA1H,SAASgD,iBAAiB,cAAcS,SAAQ,SAAUkE,GACxDA,EAAO1H,iBAAiB,SAAS,SAAU2H,IAK7C,SAAwBD,EAAQC,GAC9BA,EAAMC,kBACN,MAAMC,EAAOH,EAAOI,uBACdC,EAAaF,EAAKjE,UAAUoE,OAAO,YACzCN,EAAO5C,YAAciD,EAAa,YAAc,WAClD,CATIE,CAAevH,KAAMiH,EACvB,GACF,IAmBAjB,IAGAxG,OAAOF,iBAAiB,SAAU0G,GAElClG,EAAET,UAAUmI,OAAM,WACG1H,EAAE,mBAEVyD,MAAK,WACd,MAAMkE,EAAY3H,EAAEE,MACd0H,EAAkBD,EAAUvB,KAAK,aAEvCwB,EAAgBjE,GAAG,oBAAoB,WAErCgE,EAAUrH,SAAS,SACrB,IAEAsH,EAAgBjE,GAAG,sBAAsB,WACvCgE,EAAUtH,YAAY,SACxB,GACF,IAEAL,EAAE,qBAAqB2D,GAAG,SAAS,SAAUwD,GAC3CA,EAAMC,iBACR,GACF,GACF"}