{
  "version": 3,
  "sources": ["/cdn/shop/t/47/assets/fb-delivery-chip.js?nc=16999"],
  "sourcesContent": ["/**\n * Fig & Bloom \u2014 delivery chip on product cards.\n *\n * Reads the visitor's saved delivery postcode (the `deliveryPostcode` cookie\n * written by the delivery suburb popup) and labels every\n * [data-fb-delivery-chip] element on the page:\n *\n *   - same-day zone  (Melbourne / Sydney / Brisbane metro) \u2192 \"Same-day delivery available\"\n *   - next-day zone  (Newcastle, Canberra, Adelaide, \u2026)    \u2192 \"Next-day delivery available\"\n *   - anywhere else  (2+ day delivery)                     \u2192 chip stays hidden\n *   - no postcode saved yet                                \u2192 generic metro service line\n *\n * Zone boundaries are plain postcode ranges below \u2014 adjust there, no other\n * code changes needed. The facets AJAX re-render replaces the grid's HTML,\n * so a MutationObserver re-applies labels to freshly inserted cards.\n */\n(function () {\n  'use strict';\n\n  var ZONES = {\n    sameDay: [\n      [3000, 3210], // Melbourne metro\n      [2000, 2249], // Sydney metro\n      [4000, 4179], // Brisbane metro\n    ],\n    nextDay: [\n      [2250, 2263], // Central Coast\n      [2280, 2310], // Newcastle / Hunter\n      [2500, 2530], // Wollongong / Illawarra\n      [2600, 2620], // Canberra\n      [2900, 2920], // Canberra (Tuggeranong / Gungahlin)\n      [3211, 3220], // Geelong\n      [4207, 4230], // Gold Coast\n      [4550, 4579], // Sunshine Coast\n      [5000, 5199], // Adelaide metro\n    ],\n  };\n\n  var LABELS = {\n    sameDay: 'Same-day delivery',\n    nextDay: 'Next-day delivery',\n    generic: 'Same-day \u00B7 Mel, Syd & Bris',\n  };\n\n  function getCookie(name) {\n    var m = document.cookie.match('(?:^|; )' + name + '=([^;]*)');\n    return m ? decodeURIComponent(m[1]) : null;\n  }\n\n  function inRanges(pc, ranges) {\n    for (var i = 0; i < ranges.length; i++) {\n      if (pc >= ranges[i][0] && pc <= ranges[i][1]) return true;\n    }\n    return false;\n  }\n\n  function resolveChip() {\n    var pc = parseInt(getCookie('deliveryPostcode'), 10);\n    if (isNaN(pc)) return { label: LABELS.generic, zone: 'generic' };\n    if (inRanges(pc, ZONES.sameDay)) return { label: LABELS.sameDay, zone: 'same-day' };\n    if (inRanges(pc, ZONES.nextDay)) return { label: LABELS.nextDay, zone: 'next-day' };\n    return null; // 2+ days \u2014 say nothing rather than something discouraging\n  }\n\n  function apply(root) {\n    // Write-only-on-change: our own writes land inside the observed subtree,\n    // so an unconditional write loops the MutationObserver into a main-thread\n    // lock. Comparing first makes a settled grid a zero-mutation no-op.\n    var chip = resolveChip();\n    var nodes = (root || document).querySelectorAll('[data-fb-delivery-chip]');\n    for (var i = 0; i < nodes.length; i++) {\n      var n = nodes[i];\n      if (chip) {\n        if (n.textContent !== chip.label) n.textContent = chip.label;\n        if (n.getAttribute('data-zone') !== chip.zone) n.setAttribute('data-zone', chip.zone);\n        if (n.hidden) n.hidden = false;\n      } else if (!n.hidden) {\n        n.hidden = true;\n      }\n    }\n  }\n\n  function init() {\n    apply(document);\n\n    // Facets/sort AJAX swaps the grid contents \u2014 re-label new cards.\n    // Debounced to one pass per frame so mutation bursts coalesce.\n    var grid = document.getElementById('ProductGridContainer');\n    if (grid && 'MutationObserver' in window) {\n      var scheduled = false;\n      new MutationObserver(function () {\n        if (scheduled) return;\n        scheduled = true;\n        window.requestAnimationFrame(function () {\n          scheduled = false;\n          apply(grid);\n        });\n      }).observe(grid, { childList: true, subtree: true });\n    }\n\n    // The delivery popup writes the cookie without a reload; re-resolve when\n    // the tab regains focus or the popup fires its change event if present.\n    document.addEventListener('visibilitychange', function () {\n      if (!document.hidden) apply(document);\n    });\n    document.addEventListener('fb:delivery-location-changed', function () {\n      apply(document);\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n"],
  "mappings": "CAgBC,UAAY,CACX,aAEA,IAAI,MAAQ,CACV,QAAS,CACP,CAAC,IAAM,IAAI,EACX,CAAC,IAAM,IAAI,EACX,CAAC,IAAM,IAAI,CACb,EACA,QAAS,CACP,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,KAAM,IAAI,EACX,CAAC,IAAM,IAAI,CACb,CACF,EAEI,OAAS,CACX,QAAS,oBACT,QAAS,oBACT,QAAS,+BACX,EAEA,SAAS,UAAU,KAAM,CACvB,IAAI,EAAI,SAAS,OAAO,MAAM,WAAa,KAAO,UAAU,EAC5D,OAAO,EAAI,mBAAmB,EAAE,CAAC,CAAC,EAAI,IACxC,CAEA,SAAS,SAAS,GAAI,OAAQ,CAC5B,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,GAAI,IAAM,OAAO,CAAC,EAAE,CAAC,GAAK,IAAM,OAAO,CAAC,EAAE,CAAC,EAAG,MAAO,GAEvD,MAAO,EACT,CAEA,SAAS,aAAc,CACrB,IAAI,GAAK,SAAS,UAAU,kBAAkB,EAAG,EAAE,EACnD,OAAI,MAAM,EAAE,EAAU,CAAE,MAAO,OAAO,QAAS,KAAM,SAAU,EAC3D,SAAS,GAAI,MAAM,OAAO,EAAU,CAAE,MAAO,OAAO,QAAS,KAAM,UAAW,EAC9E,SAAS,GAAI,MAAM,OAAO,EAAU,CAAE,MAAO,OAAO,QAAS,KAAM,UAAW,EAC3E,IACT,CAEA,SAAS,MAAM,KAAM,CAMnB,QAFI,KAAO,YAAY,EACnB,OAAS,MAAQ,UAAU,iBAAiB,yBAAyB,EAChE,EAAI,EAAG,EAAI,MAAM,OAAQ,IAAK,CACrC,IAAI,EAAI,MAAM,CAAC,EACX,MACE,EAAE,cAAgB,KAAK,QAAO,EAAE,YAAc,KAAK,OACnD,EAAE,aAAa,WAAW,IAAM,KAAK,MAAM,EAAE,aAAa,YAAa,KAAK,IAAI,EAChF,EAAE,SAAQ,EAAE,OAAS,KACf,EAAE,SACZ,EAAE,OAAS,GAEf,CACF,CAEA,SAAS,MAAO,CACd,MAAM,QAAQ,EAId,IAAI,KAAO,SAAS,eAAe,sBAAsB,EACzD,GAAI,MAAQ,qBAAsB,OAAQ,CACxC,IAAI,UAAY,GAChB,IAAI,iBAAiB,UAAY,CAC3B,YACJ,UAAY,GACZ,OAAO,sBAAsB,UAAY,CACvC,UAAY,GACZ,MAAM,IAAI,CACZ,CAAC,EACH,CAAC,EAAE,QAAQ,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CACrD,CAIA,SAAS,iBAAiB,mBAAoB,UAAY,CACnD,SAAS,QAAQ,MAAM,QAAQ,CACtC,CAAC,EACD,SAAS,iBAAiB,+BAAgC,UAAY,CACpE,MAAM,QAAQ,CAChB,CAAC,CACH,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,IAAI,EAElD,KAAK,CAET,GAAG",
  "names": []
}
