{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/tb-m-fix.js?x=1794560346492"],
  "sourcesContent": ["/* Toybox search: typo and spacing correction, shared by the phone search screen (assets/tb-m-find.js) and the\n   phone results page (sections/tb-m-search-results). Words come from the store (brands, product types,\n   category and occasion names, trending searches: snippets/tb-m-find-data) plus common toy words.\n   TbFix.fix('hotweels') \u2192 'hot wheels', 'diecast' \u2192 'die-cast', 'lgo' \u2192 'lego', 'barbi' \u2192 'barbie';\n   null when nothing better is found. */\n(() => {\n  if (window.TbFix) return;\n  let D = {};\n  try { D = JSON.parse(document.getElementById('tb-find-data').textContent); } catch (e) {}\n  const COMMON = 'car cars truck trucks bike doll dolls house kitchen puzzle puzzles jigsaw game games board card cards blocks bricks building set sets ' +\n    'die-cast diecast model models scale drone drones remote control rc helicopter robot figure figures action collectible collectibles superhero ' +\n    'squishy fidget slime sensory kit craft art colouring coloring learning educational stem science plush soft teddy toy toys gift gifts baby ' +\n    'toddler kids boys girls racing race track f1 formula monster police fire rescue train plane aeroplane cube keyboard piano music projector ' +\n    'blaster nerf princess unicorn dinosaur dino animal animals farm magnetic wooden stacking ball balls outdoor water bath sand clay dough';\n  const norm = (s) => String(s || '').toLowerCase().replace(/[\u2019']/g, '').replace(/\\s+/g, ' ').trim();\n  const flat = (s) => norm(s).replace(/[^a-z0-9]/g, '');\n  const phrases = [].concat(D.vocab || [], D.brands || [], D.trending || [], (D.cats || []).map((c) => c.t)).map(norm).filter((p) => p.length > 1);\n  const words = new Set(COMMON.split(' '));\n  phrases.forEach((p) => p.split(/[^a-z0-9]+/).forEach((w) => { if (w.length > 2) words.add(w); }));\n  const W = [...words];\n  const joined = new Map();\n  phrases.concat(W).forEach((p) => { const f = flat(p); if (f.length > 3 && !joined.has(f)) joined.set(f, p.indexOf('&') > -1 ? p.split('&')[0].trim() : p); });\n\n  // Damerau-Levenshtein distance, stopping early once it can't beat `max`.\n  const dist = (a, b, max) => {\n    if (Math.abs(a.length - b.length) > max) return max + 1;\n    const d = [];\n    for (let i = 0; i <= a.length; i++) d[i] = [i];\n    for (let j = 0; j <= b.length; j++) d[0][j] = j;\n    for (let i = 1; i <= a.length; i++) {\n      let low = Infinity;\n      for (let j = 1; j <= b.length; j++) {\n        d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));\n        if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + 1);\n        low = Math.min(low, d[i][j]);\n      }\n      if (low > max) return max + 1;\n    }\n    return d[a.length][b.length];\n  };\n  const best = (w, pool, max) => {\n    let out = null, bd = max + 1;\n    for (const v of pool) { const dd = dist(w, v, Math.min(max, bd - 1 < 0 ? 0 : bd - 1)); if (dd < bd) { bd = dd; out = v; if (dd === 0) break; } }\n    return bd <= max ? out : null;\n  };\n\n  const fix = (term) => {\n    const q = norm(term);\n    if (!q) return null;\n    // 1. The whole thing, ignoring spaces and hyphens: \"hotwheels\", \"minigt\", \"diecast\", \"hot weels\"\n    const f = flat(q);\n    if (joined.has(f) && norm(joined.get(f)) !== q) return joined.get(f);\n    if (f.length >= 5) { const m = best(f, [...joined.keys()].filter((k) => k.length >= 5), f.length > 7 ? 2 : 1); if (m && norm(joined.get(m)) !== q) return joined.get(m); }\n    // 2. Word by word: keep words the store knows (or that start a known word), correct the rest\n    let changed = false;\n    const out = q.split(' ').map((w) => {\n      if (w.length < 3 || /^\\d/.test(w) || W.some((v) => v.indexOf(w) === 0)) return w;\n      const m = best(w, W, w.length > 5 ? 2 : 1);\n      if (m && m !== w) { changed = true; return m; }\n      return w;\n    });\n    return changed ? out.join(' ') : null;\n  };\n  window.TbFix = { fix };\n})();"],
  "mappings": "CAKC,IAAM,CACL,GAAI,OAAO,MAAO,OAClB,IAAI,EAAI,CAAC,EACT,GAAI,CAAE,EAAI,KAAK,MAAM,SAAS,eAAe,cAAc,EAAE,WAAW,CAAG,MAAY,CAAC,CACxF,MAAM,OAAS,grBAKT,KAAQ,GAAM,OAAO,GAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,QAAS,EAAE,EAAE,QAAQ,OAAQ,GAAG,EAAE,KAAK,EAC3F,KAAQ,GAAM,KAAK,CAAC,EAAE,QAAQ,aAAc,EAAE,EAC9C,QAAU,CAAC,EAAE,OAAO,EAAE,OAAS,CAAC,EAAG,EAAE,QAAU,CAAC,EAAG,EAAE,UAAY,CAAC,GAAI,EAAE,MAAQ,CAAC,GAAG,IAAK,GAAM,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,OAAQ,GAAM,EAAE,OAAS,CAAC,EACzI,MAAQ,IAAI,IAAI,OAAO,MAAM,GAAG,CAAC,EACvC,QAAQ,QAAS,GAAM,EAAE,MAAM,YAAY,EAAE,QAAS,GAAM,CAAM,EAAE,OAAS,GAAG,MAAM,IAAI,CAAC,CAAG,CAAC,CAAC,EAChG,MAAM,EAAI,CAAC,GAAG,KAAK,EACb,OAAS,IAAI,IACnB,QAAQ,OAAO,CAAC,EAAE,QAAS,GAAM,CAAE,MAAM,EAAI,KAAK,CAAC,EAAO,EAAE,OAAS,GAAK,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,IAAI,EAAG,EAAE,QAAQ,GAAG,EAAI,GAAK,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,EAAI,CAAC,CAAG,CAAC,EAG5J,MAAM,KAAO,CAAC,EAAG,EAAG,MAAQ,CAC1B,GAAI,KAAK,IAAI,EAAE,OAAS,EAAE,MAAM,EAAI,IAAK,OAAO,IAAM,EACtD,MAAM,EAAI,CAAC,EACX,QAAS,EAAI,EAAG,GAAK,EAAE,OAAQ,IAAK,EAAE,CAAC,EAAI,CAAC,CAAC,EAC7C,QAAS,EAAI,EAAG,GAAK,EAAE,OAAQ,IAAK,EAAE,CAAC,EAAE,CAAC,EAAI,EAC9C,QAAS,EAAI,EAAG,GAAK,EAAE,OAAQ,IAAK,CAClC,IAAI,IAAM,IACV,QAAS,EAAI,EAAG,GAAK,EAAE,OAAQ,IAC7B,EAAE,CAAC,EAAE,CAAC,EAAI,KAAK,IAAI,EAAE,EAAI,CAAC,EAAE,CAAC,EAAI,EAAG,EAAE,CAAC,EAAE,EAAI,CAAC,EAAI,EAAG,EAAE,EAAI,CAAC,EAAE,EAAI,CAAC,GAAK,EAAE,EAAI,CAAC,IAAM,EAAE,EAAI,CAAC,EAAI,EAAI,EAAE,EAClG,EAAI,GAAK,EAAI,GAAK,EAAE,EAAI,CAAC,IAAM,EAAE,EAAI,CAAC,GAAK,EAAE,EAAI,CAAC,IAAM,EAAE,EAAI,CAAC,IAAG,EAAE,CAAC,EAAE,CAAC,EAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,EAAG,EAAE,EAAI,CAAC,EAAE,EAAI,CAAC,EAAI,CAAC,GACrH,IAAM,KAAK,IAAI,IAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAE7B,GAAI,IAAM,IAAK,OAAO,IAAM,CAC9B,CACA,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAC7B,EACM,KAAO,CAAC,EAAG,KAAM,MAAQ,CAC7B,IAAI,IAAM,KAAM,GAAK,IAAM,EAC3B,UAAW,KAAK,KAAM,CAAE,MAAM,GAAK,KAAK,EAAG,EAAG,KAAK,IAAI,IAAK,GAAK,EAAI,EAAI,EAAI,GAAK,CAAC,CAAC,EAAG,GAAI,GAAK,KAAM,GAAK,GAAI,IAAM,EAAO,KAAO,GAAG,KAAS,CAC/I,OAAO,IAAM,IAAM,IAAM,IAC3B,EAEM,IAAO,MAAS,CACpB,MAAM,EAAI,KAAK,IAAI,EACnB,GAAI,CAAC,EAAG,OAAO,KAEf,MAAM,EAAI,KAAK,CAAC,EAChB,GAAI,OAAO,IAAI,CAAC,GAAK,KAAK,OAAO,IAAI,CAAC,CAAC,IAAM,EAAG,OAAO,OAAO,IAAI,CAAC,EACnE,GAAI,EAAE,QAAU,EAAG,CAAE,MAAM,EAAI,KAAK,EAAG,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE,OAAQ,GAAM,EAAE,QAAU,CAAC,EAAG,EAAE,OAAS,EAAI,EAAI,CAAC,EAAG,GAAI,GAAK,KAAK,OAAO,IAAI,CAAC,CAAC,IAAM,EAAG,OAAO,OAAO,IAAI,CAAC,CAAG,CAEzK,IAAI,QAAU,GACd,MAAM,IAAM,EAAE,MAAM,GAAG,EAAE,IAAK,GAAM,CAClC,GAAI,EAAE,OAAS,GAAK,MAAM,KAAK,CAAC,GAAK,EAAE,KAAM,GAAM,EAAE,QAAQ,CAAC,IAAM,CAAC,EAAG,OAAO,EAC/E,MAAM,EAAI,KAAK,EAAG,EAAG,EAAE,OAAS,EAAI,EAAI,CAAC,EACzC,OAAI,GAAK,IAAM,GAAK,QAAU,GAAa,GACpC,CACT,CAAC,EACD,OAAO,QAAU,IAAI,KAAK,GAAG,EAAI,IACnC,EACA,OAAO,MAAQ,CAAE,GAAI,CACvB,GAAG",
  "names": []
}
