{
  "version": 3,
  "sources": ["/cdn/shop/t/62/assets/stocked.food.custom.js?t=1231242423"],
  "sourcesContent": ["(function () {\r\n  if (!window.location.pathname.includes(\"/a/\")) {\r\n    return; // \uD83D\uDEAB Not the subscriptions page\r\n  }\r\n\r\n  const selector = \".SubscriptionGroup-Active\";\r\n\r\n  // If already present\r\n  const existing = document.querySelector(selector);\r\n  if (existing) {\r\n    runLogic(existing);\r\n    return;\r\n  }\r\n\r\n  const observer = new MutationObserver(() => {\r\n    const el = document.querySelector(selector);\r\n    if (el) {\r\n      observer.disconnect();\r\n      runLogic(el);\r\n    }\r\n  });\r\n\r\n  observer.observe(document.body, {\r\n    childList: true,\r\n    subtree: true,\r\n  });\r\n\r\n  function runLogic(element) {\r\n    debugger;\r\n    let customerInformation = getLatestSkioUserEmail({ clean: true });\r\n    let customerEmailID = null;\r\n    if (customerInformation != null) {\r\n      customerEmailID = customerInformation.value.split(\"-skioSiteId-\")[0];\r\n    }\r\n    /*\r\n    console.log(`[EQ Debug]: Customer Email ID found`, customerEmailID);\r\n    console.log(`[EQ Debug]: Customer Information found`, customerInformation);\r\n    */\r\n    let positionToAddNewElement = element.closest(\".XiG.zI7.iyn.Hsu\");\r\n    if (customerEmailID == null) {\r\n      let textContentToAdd = `\u26A0\uFE0F Warning: Anything you change below won't affect orders that have already been paid for. If you're looking to make changes, reach out to us on <a href=\"mailto:team@stockedfood.com\">email</a> or <a href=\"https://wa.me/447942333689\">WhatsApp</a>!`;\r\n      const infoDiv = document.createElement(\"div\");\r\n      infoDiv.className = \"custom-subscription-info\";\r\n      infoDiv.innerHTML = `\r\n        <div style=\"\">\r\n          ${textContentToAdd}\r\n        </div>\r\n      `;\r\n      positionToAddNewElement.parentNode.insertBefore(\r\n        infoDiv,\r\n        positionToAddNewElement\r\n      );\r\n      console.log(\r\n        `[EQ Debug]: Found element for subscriptions page`,\r\n        positionToAddNewElement\r\n      );\r\n    } else {\r\n      const requestOptions = {\r\n        method: \"GET\",\r\n        redirect: \"follow\",\r\n      };\r\n      fetch(\r\n        `https://stockedfood.eqserver.net/order/graphql/customer/last5/by-email/${customerEmailID}`,\r\n        requestOptions\r\n      )\r\n        .then((response) => response.text())\r\n        .then((result) => {\r\n          console.log(JSON.parse(result)?.orders[0]?.processedAt);\r\n          console.log(JSON.parse(result)?.orders[0]?.tags);\r\n          let tags = null;\r\n          let orderPaymentDate = JSON.parse(result)?.orders[0]?.processedAt;\r\n          tags = JSON.parse(result)?.orders[0]?.tags;\r\n          let dateOfDelivery = extractDateFromTags(tags);\r\n          let dateOfDeliveryFormatted = null;\r\n          if(dateOfDelivery != null){\r\n            dateOfDeliveryFormatted = formatDDMMYYYYToReadable(dateOfDelivery);\r\n            console.log(`[EQ Debug]: Date of delivery extracted from tags: ${dateOfDeliveryFormatted}`);\r\n          }\r\n          let formattedDate = new Date(orderPaymentDate).toLocaleDateString(\"en-GB\", {\r\n            day: \"2-digit\",\r\n            month: \"long\",\r\n            year: \"numeric\",\r\n          });\r\n\r\n          let deliveryTextContentToAdd = ``;\r\n          let textContentToAdd = ``;\r\n          if(dateOfDelivery != null) { \r\n            deliveryTextContentToAdd = ` for <b>delivery on ${dateOfDeliveryFormatted}</b>`;\r\n            let todayDate = new Date();\r\n            let deliveryDateObj = new Date(dateOfDeliveryFormatted);\r\n            if(deliveryDateObj > todayDate){\r\n              textContentToAdd = `\u26A0\uFE0F Warning: you have an order that has been paid for on <b>${formattedDate}</b>${deliveryTextContentToAdd}. Anything you change below won't affect this order so if you're looking to make changes, reach out to us on <a href=\"mailto:team@stockedfood.com\">email</a> or <a href=\"https://wa.me/447942333689\">WhatsApp</a>!`;  \r\n            } else {\r\n              textContentToAdd = `\u26A0\uFE0F Warning: Anything you change below won't affect orders that have already been paid for. If you're looking to make changes, reach out to us on <a href=\"mailto:team@stockedfood.com\">email</a> or <a href=\"https://wa.me/447942333689\">WhatsApp</a>!`;\r\n            }\r\n          } else {\r\n            textContentToAdd = `\u26A0\uFE0F Warning: Anything you change below won't affect orders that have already been paid for. If you're looking to make changes, reach out to us on <a href=\"mailto:team@stockedfood.com\">email</a> or <a href=\"https://wa.me/447942333689\">WhatsApp</a>!`;\r\n          }\r\n          \r\n          \r\n          const infoDiv = document.createElement(\"div\");\r\n          infoDiv.className = \"custom-subscription-info\";\r\n          infoDiv.innerHTML = `\r\n            <div style=\"\">\r\n              ${textContentToAdd}\r\n            </div>\r\n          `;\r\n          positionToAddNewElement.parentNode.insertBefore(\r\n            infoDiv,\r\n            positionToAddNewElement\r\n          );\r\n        })\r\n        .catch((error) => console.error(error));\r\n    }\r\n    // \uD83D\uDD25 your actual logic here\r\n  }\r\n})();\r\n\r\n\r\nconst extractDateFromTags = (tags) => {\r\n  if (!Array.isArray(tags)) return null;\r\n\r\n  // Matches DD.MM.YYYY where year is between 2026\u20132030\r\n  const dateRegex = /\\b\\d{1,2}\\.\\d{1,2}\\.(2026|2027|2028|2029|2030)\\b/;\r\n\r\n  for (const tag of tags) {\r\n    const match = tag.match(dateRegex);\r\n    if (match) {\r\n      return match[0];\r\n    }\r\n  }\r\n\r\n  return null;\r\n}\r\n\r\n/**\r\n * Returns the latest email found inside UserAttributes in localStorage\r\n * @param {Object} options\r\n * @param {boolean} options.clean - remove \"-skioSiteId-...\" from email\r\n * @returns {{ key: string, value: string } | null}\r\n */\r\nconst getLatestSkioUserEmail = (options = { clean: false }) => {\r\n  let lastEmail = null;\r\n\r\n  for (let i = 0; i < localStorage.length; i++) {\r\n    const storageKey = localStorage.key(i);\r\n    const rawValue = localStorage.getItem(storageKey);\r\n\r\n    if (typeof rawValue !== \"string\" || !rawValue.includes(\"UserAttributes\")) {\r\n      continue;\r\n    }\r\n\r\n    try {\r\n      const parsed = JSON.parse(rawValue);\r\n      const userAttributes = parsed?.UserAttributes;\r\n\r\n      if (!Array.isArray(userAttributes)) continue;\r\n\r\n      const emailObj = userAttributes.find(\r\n        (attr) => attr?.Name === \"email\" && typeof attr.Value === \"string\"\r\n      );\r\n\r\n      if (emailObj) {\r\n        lastEmail = {\r\n          key: \"email\",\r\n          value: options.clean\r\n            ? emailObj.Value.split(\"-skioSiteId-\")[0]\r\n            : emailObj.Value,\r\n        };\r\n      }\r\n    } catch (e) {\r\n      // Ignore invalid JSON safely\r\n    }\r\n  }\r\n\r\n  return lastEmail;\r\n};\r\n\r\nconst formatDDMMYYYYToReadable = (dateStr) => {\r\n  if (!dateStr) return null;\r\n\r\n  const [day, month, year] = dateStr.split(\".\");\r\n  if (!day || !month || !year) return null;\r\n\r\n  const date = new Date(Date.UTC(year, month - 1, day));\r\n\r\n  return date.toLocaleDateString(\"en-GB\", {\r\n    day: \"2-digit\",\r\n    month: \"long\",\r\n    year: \"numeric\",\r\n    timeZone: \"UTC\",\r\n  });\r\n}"],
  "mappings": "CAAC,UAAY,CACX,GAAI,CAAC,OAAO,SAAS,SAAS,SAAS,KAAK,EAC1C,OAGF,MAAM,SAAW,4BAGX,SAAW,SAAS,cAAc,QAAQ,EAChD,GAAI,SAAU,CACZ,SAAS,QAAQ,EACjB,MACF,CAEA,MAAM,SAAW,IAAI,iBAAiB,IAAM,CAC1C,MAAM,GAAK,SAAS,cAAc,QAAQ,EACtC,KACF,SAAS,WAAW,EACpB,SAAS,EAAE,EAEf,CAAC,EAED,SAAS,QAAQ,SAAS,KAAM,CAC9B,UAAW,GACX,QAAS,EACX,CAAC,EAED,SAAS,SAAS,QAAS,CACzB,SACA,IAAI,oBAAsB,uBAAuB,CAAE,MAAO,EAAK,CAAC,EAC5D,gBAAkB,KAClB,qBAAuB,OACzB,gBAAkB,oBAAoB,MAAM,MAAM,cAAc,EAAE,CAAC,GAMrE,IAAI,wBAA0B,QAAQ,QAAQ,kBAAkB,EAChE,GAAI,iBAAmB,KAAM,CAC3B,IAAI,iBAAmB,mQACvB,MAAM,QAAU,SAAS,cAAc,KAAK,EAC5C,QAAQ,UAAY,2BACpB,QAAQ,UAAY;AAAA;AAAA,YAEd,gBAAgB;AAAA;AAAA,QAGtB,wBAAwB,WAAW,aACjC,QACA,uBACF,EACA,QAAQ,IACN,mDACA,uBACF,CACF,KAAO,CACL,MAAM,eAAiB,CACrB,OAAQ,MACR,SAAU,QACZ,EACA,MACE,0EAA0E,eAAe,GACzF,cACF,EACG,KAAM,UAAa,SAAS,KAAK,CAAC,EAClC,KAAM,QAAW,CAChB,QAAQ,IAAI,KAAK,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,WAAW,EACtD,QAAQ,IAAI,KAAK,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,EAC/C,IAAI,KAAO,KACP,iBAAmB,KAAK,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,YACtD,KAAO,KAAK,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KACtC,IAAI,eAAiB,oBAAoB,IAAI,EACzC,wBAA0B,KAC3B,gBAAkB,OACnB,wBAA0B,yBAAyB,cAAc,EACjE,QAAQ,IAAI,qDAAqD,uBAAuB,EAAE,GAE5F,IAAI,cAAgB,IAAI,KAAK,gBAAgB,EAAE,mBAAmB,QAAS,CACzE,IAAK,UACL,MAAO,OACP,KAAM,SACR,CAAC,EAEG,yBAA2B,GAC3B,iBAAmB,GACvB,GAAG,gBAAkB,KAAM,CACzB,yBAA2B,uBAAuB,uBAAuB,OACzE,IAAI,UAAY,IAAI,KACE,IAAI,KAAK,uBAAuB,EACjC,UACnB,iBAAmB,wEAA8D,aAAa,OAAO,wBAAwB,qNAE7H,iBAAmB,kQAEvB,MACE,iBAAmB,mQAIrB,MAAM,QAAU,SAAS,cAAc,KAAK,EAC5C,QAAQ,UAAY,2BACpB,QAAQ,UAAY;AAAA;AAAA,gBAEd,gBAAgB;AAAA;AAAA,YAGtB,wBAAwB,WAAW,aACjC,QACA,uBACF,CACF,CAAC,EACA,MAAO,OAAU,QAAQ,MAAM,KAAK,CAAC,CAC1C,CAEF,CACF,GAAG,EAGH,MAAM,oBAAuB,MAAS,CACpC,GAAI,CAAC,MAAM,QAAQ,IAAI,EAAG,OAAO,KAGjC,MAAM,UAAY,mDAElB,UAAW,OAAO,KAAM,CACtB,MAAM,MAAQ,IAAI,MAAM,SAAS,EACjC,GAAI,MACF,OAAO,MAAM,CAAC,CAElB,CAEA,OAAO,IACT,EAQM,uBAAyB,CAAC,QAAU,CAAE,MAAO,EAAM,IAAM,CAC7D,IAAI,UAAY,KAEhB,QAAS,EAAI,EAAG,EAAI,aAAa,OAAQ,IAAK,CAC5C,MAAM,WAAa,aAAa,IAAI,CAAC,EAC/B,SAAW,aAAa,QAAQ,UAAU,EAEhD,GAAI,SAAO,UAAa,UAAY,CAAC,SAAS,SAAS,gBAAgB,GAIvE,GAAI,CAEF,MAAM,eADS,KAAK,MAAM,QAAQ,GACH,eAE/B,GAAI,CAAC,MAAM,QAAQ,cAAc,EAAG,SAEpC,MAAM,SAAW,eAAe,KAC7B,MAAS,MAAM,OAAS,SAAW,OAAO,KAAK,OAAU,QAC5D,EAEI,WACF,UAAY,CACV,IAAK,QACL,MAAO,QAAQ,MACX,SAAS,MAAM,MAAM,cAAc,EAAE,CAAC,EACtC,SAAS,KACf,EAEJ,MAAY,CAEZ,CACF,CAEA,OAAO,SACT,EAEM,yBAA4B,SAAY,CAC5C,GAAI,CAAC,QAAS,OAAO,KAErB,KAAM,CAAC,IAAK,MAAO,IAAI,EAAI,QAAQ,MAAM,GAAG,EAC5C,MAAI,CAAC,KAAO,CAAC,OAAS,CAAC,KAAa,KAEvB,IAAI,KAAK,KAAK,IAAI,KAAM,MAAQ,EAAG,GAAG,CAAC,EAExC,mBAAmB,QAAS,CACtC,IAAK,UACL,MAAO,OACP,KAAM,UACN,SAAU,KACZ,CAAC,CACH",
  "names": []
}
