{
  "version": 3,
  "sources": ["/cdn/shop/t/79/assets/sf-i18n.js?x=1789182755118"],
  "sourcesContent": ["/* ---------------------------------------------------------------\n   Arabic labels for JavaScript-rendered UI.\n\n   sf-claude.js and sf-bundlefilters.js build the filter drawer, sort menu,\n   bag drawer and bundle builder as HTML strings. They cannot read the\n   locale files, so sf-bundlestrings.liquid hands us a table keyed by the\n   English source text and this applies it after each render.\n\n   TWO KINDS OF TEXT.\n   1. Fixed labels \u2014 \"Quick add\", \"Full rim\". A plain lookup.\n   2. Sentences assembled around numbers \u2014 \"Pick 2 from the 20 KD range \u2014\n      0 of 2 selected \u00B7 32 to choose from\". A lookup cannot reach those,\n      because the string only exists once the numbers are in it, so they\n      are matched as patterns and rebuilt in Arabic with the numbers put\n      back where Arabic wants them.\n\n   ONLY TEXT NODES ARE TOUCHED. Attributes, values, data-* and anything in\n   a <script> or <svg> are left alone, because the filters compare against\n   the English metafield values. Translating a value rather than a label\n   would break filtering silently.\n\n   Runs on Arabic only \u2014 the table does not exist otherwise.\n   --------------------------------------------------------------- */\n(function () {\n  var T = window.SF_T;\n  if (!T) return;\n\n  // Longest first, so \"Acetate and metal\" is never half-matched by \"Acetate\".\n  var keys = Object.keys(T).sort(function (a, b) { return b.length - a.length; });\n\n  /* Patterns run before the plain lookup. Numbers stay Western to match\n     the prices Shopify renders. The dash between clauses may be an em dash\n     or a hyphen depending on where the string was built, so both are\n     accepted. */\n  var PATTERNS = [\n    [/^Pick (\\d+) from the ([\\d.,]+ ?KD) range\\s*[\\u2014-]\\s*(\\d+) of (\\d+) selected\\s*\\u00B7\\s*(\\d+) to choose from$/,\n      function (m) {\n        return '\u0627\u062E\u062A\u0631 ' + m[1] + ' \u0645\u0646 \u0641\u0626\u0629 ' + m[2] + ' \\u2014 \u0627\u062E\u062A\u0631\u062A ' + m[3] + ' \u0645\u0646 ' + m[4] +\n               ' \\u00B7 ' + m[5] + ' \u0645\u062A\u0627\u062D\u0629';\n      }],\n\n    [/^Any (\\d+)\\s*\\u00B7\\s*([\\d.,]+ ?KD) frames\\s*\\u00B7\\s*normally (.+)$/,\n      function (m) {\n        return '\u0623\u064A ' + m[1] + ' \\u00B7 \u0646\u0638\u0627\u0631\u0627\u062A ' + m[2] + ' \\u00B7 \u0628\u062F\u0644\u0627\u064B \u0645\u0646 ' + m[3];\n      }],\n\n    [/^(\\d+) for (.+)$/, function (m) { return m[1] + ' \u0628\u0640 ' + m[2]; }],\n\n    [/^Set of (\\d+)$/, function (m) { return '\u0637\u0642\u0645 \u0645\u0646 ' + m[1]; }],\n\n    [/^Part of a bundle of (\\d+)$/, function (m) { return '\u0636\u0645\u0646 \u0628\u0627\u0642\u0629 \u0645\u0646 ' + m[1]; }],\n\n    [/^(\\d+) to choose from$/, function (m) { return m[1] + ' \u0645\u062A\u0627\u062D\u0629'; }],\n\n    [/^(\\d+) of (\\d+) selected$/,\n      function (m) { return '\u0627\u062E\u062A\u0631\u062A ' + m[1] + ' \u0645\u0646 ' + m[2]; }],\n\n    [/^Same (.+)$/, function (m) { return '\u0646\u0641\u0633 ' + (T[m[1]] || m[1]); }]\n  ];\n\n  var SKIP = { SCRIPT: 1, STYLE: 1, TEXTAREA: 1, SVG: 1, PATH: 1 };\n\n  function translate(trimmed) {\n    for (var i = 0; i < PATTERNS.length; i++) {\n      var m = trimmed.match(PATTERNS[i][0]);\n      if (m) return PATTERNS[i][1](m);\n    }\n    if (T[trimmed]) return T[trimmed];\n    return null;\n  }\n\n  function swapIn(root) {\n    if (!root || root.nodeType !== 1) return;\n\n    var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n      acceptNode: function (node) {\n        var p = node.parentNode;\n        if (!p || SKIP[p.nodeName]) return NodeFilter.FILTER_REJECT;\n        if (p.closest && p.closest('svg')) return NodeFilter.FILTER_REJECT;\n        return node.nodeValue.trim() ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n      }\n    });\n\n    var nodes = [], n;\n    while ((n = walker.nextNode())) nodes.push(n);\n\n    nodes.forEach(function (node) {\n      var text = node.nodeValue;\n      var trimmed = text.trim();\n\n      var whole = translate(trimmed);\n      if (whole !== null) {\n        node.nodeValue = text.replace(trimmed, whole);\n        return;\n      }\n\n      for (var i = 0; i < keys.length; i++) {\n        var k = keys[i];\n        if (trimmed.indexOf(k) !== -1) {\n          node.nodeValue = text.split(k).join(T[k]);\n          return;\n        }\n      }\n    });\n  }\n\n  function run() { swapIn(document.body); }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', run);\n  } else {\n    run();\n  }\n\n  /* The drawers and the builder repaint long after load \u2014 a filter click,\n     a bundle selection, opening the bag \u2014 so new markup is translated as it\n     arrives. The observer is disconnected while we edit so it does not\n     react to our own changes. */\n  var observer = new MutationObserver(function (records) {\n    observer.disconnect();\n    records.forEach(function (r) {\n      if (r.type === 'childList') {\n        Array.prototype.forEach.call(r.addedNodes, function (node) {\n          if (node.nodeType === 1) swapIn(node);\n          else if (node.nodeType === 3 && node.parentNode) swapIn(node.parentNode);\n        });\n      }\n    });\n    observer.observe(document.body, { childList: true, subtree: true });\n  });\n\n  observer.observe(document.body, { childList: true, subtree: true });\n})();"],
  "mappings": "CAuBC,UAAY,CACX,IAAI,EAAI,OAAO,KACf,GAAI,CAAC,EAAG,OAGR,IAAI,KAAO,OAAO,KAAK,CAAC,EAAE,KAAK,SAAU,EAAG,EAAG,CAAE,OAAO,EAAE,OAAS,EAAE,MAAQ,CAAC,EAM1E,SAAW,CACb,CAAC,kHACC,SAAU,EAAG,CACX,MAAO,4BAAU,EAAE,CAAC,EAAI,oCAAa,EAAE,CAAC,EAAI,0CAAmB,EAAE,CAAC,EAAI,iBAAS,EAAE,CAAC,EAC3E,SAAa,EAAE,CAAC,EAAI,iCAC7B,CAAC,EAEH,CAAC,uEACC,SAAU,EAAG,CACX,MAAO,gBAAQ,EAAE,CAAC,EAAI,8CAAoB,EAAE,CAAC,EAAI,qDAAsB,EAAE,CAAC,CAC5E,CAAC,EAEH,CAAC,mBAAoB,SAAU,EAAG,CAAE,OAAO,EAAE,CAAC,EAAI,iBAAS,EAAE,CAAC,CAAG,CAAC,EAElE,CAAC,iBAAkB,SAAU,EAAG,CAAE,MAAO,mCAAY,EAAE,CAAC,CAAG,CAAC,EAE5D,CAAC,8BAA+B,SAAU,EAAG,CAAE,MAAO,4DAAiB,EAAE,CAAC,CAAG,CAAC,EAE9E,CAAC,yBAA0B,SAAU,EAAG,CAAE,OAAO,EAAE,CAAC,EAAI,iCAAU,CAAC,EAEnE,CAAC,4BACC,SAAU,EAAG,CAAE,MAAO,kCAAW,EAAE,CAAC,EAAI,iBAAS,EAAE,CAAC,CAAG,CAAC,EAE1D,CAAC,cAAe,SAAU,EAAG,CAAE,MAAO,uBAAU,EAAE,EAAE,CAAC,CAAC,GAAK,EAAE,CAAC,EAAI,CAAC,CACrE,EAEI,KAAO,CAAE,OAAQ,EAAG,MAAO,EAAG,SAAU,EAAG,IAAK,EAAG,KAAM,CAAE,EAE/D,SAAS,UAAU,QAAS,CAC1B,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACxC,IAAI,EAAI,QAAQ,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC,EACpC,GAAI,EAAG,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAChC,CACA,OAAI,EAAE,OAAO,EAAU,EAAE,OAAO,EACzB,IACT,CAEA,SAAS,OAAO,KAAM,CACpB,GAAI,GAAC,MAAQ,KAAK,WAAa,GAY/B,SAVI,OAAS,SAAS,iBAAiB,KAAM,WAAW,UAAW,CACjE,WAAY,SAAU,KAAM,CAC1B,IAAI,EAAI,KAAK,WAEb,MADI,CAAC,GAAK,KAAK,EAAE,QAAQ,GACrB,EAAE,SAAW,EAAE,QAAQ,KAAK,EAAU,WAAW,cAC9C,KAAK,UAAU,KAAK,EAAI,WAAW,cAAgB,WAAW,aACvE,CACF,CAAC,EAEG,MAAQ,CAAC,EAAG,EACR,EAAI,OAAO,SAAS,GAAI,MAAM,KAAK,CAAC,EAE5C,MAAM,QAAQ,SAAU,KAAM,CAC5B,IAAI,KAAO,KAAK,UACZ,QAAU,KAAK,KAAK,EAEpB,MAAQ,UAAU,OAAO,EAC7B,GAAI,QAAU,KAAM,CAClB,KAAK,UAAY,KAAK,QAAQ,QAAS,KAAK,EAC5C,MACF,CAEA,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,IAAK,CACpC,IAAI,EAAI,KAAK,CAAC,EACd,GAAI,QAAQ,QAAQ,CAAC,IAAM,GAAI,CAC7B,KAAK,UAAY,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EACxC,MACF,CACF,CACF,CAAC,EACH,CAEA,SAAS,KAAM,CAAE,OAAO,SAAS,IAAI,CAAG,CAEpC,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,GAAG,EAEjD,IAAI,EAON,IAAI,SAAW,IAAI,iBAAiB,SAAU,QAAS,CACrD,SAAS,WAAW,EACpB,QAAQ,QAAQ,SAAU,EAAG,CACvB,EAAE,OAAS,aACb,MAAM,UAAU,QAAQ,KAAK,EAAE,WAAY,SAAU,KAAM,CACrD,KAAK,WAAa,EAAG,OAAO,IAAI,EAC3B,KAAK,WAAa,GAAK,KAAK,YAAY,OAAO,KAAK,UAAU,CACzE,CAAC,CAEL,CAAC,EACD,SAAS,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CACpE,CAAC,EAED,SAAS,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CACpE,GAAG",
  "names": []
}
