summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/strtr.js.map
blob: 895329bf8b477b850a7da619a9ff3f10134cec76 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/strings/strtr.js"],"names":["module","exports","strtr","str","trFrom","trTo","krsort","require","iniSet","fr","i","j","lenStr","lenFrom","sortByReference","fromTypeStr","toTypeStr","istr","tmpFrom","tmpTo","ret","match","hasOwnProperty","push","length","charAt","substr"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAgBC,GAAhB,EAAqBC,MAArB,EAA6BC,IAA7B,EAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,SAASC,QAAQ,iBAAR,CAAb;AACA,MAAIC,SAASD,QAAQ,iBAAR,CAAb;;AAEA,MAAIE,KAAK,EAAT;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,SAAS,CAAb;AACA,MAAIC,UAAU,CAAd;AACA,MAAIC,kBAAkB,KAAtB;AACA,MAAIC,cAAc,EAAlB;AACA,MAAIC,YAAY,EAAhB;AACA,MAAIC,OAAO,EAAX;AACA,MAAIC,UAAU,EAAd;AACA,MAAIC,QAAQ,EAAZ;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,QAAQ,KAAZ;;AAEA;AACA;AACA,MAAI,QAAOjB,MAAP,yCAAOA,MAAP,OAAkB,QAAtB,EAAgC;AAC9B;AACA;AACAU,sBAAkBN,OAAO,yBAAP,EAAkC,KAAlC,CAAlB;AACAJ,aAASE,OAAOF,MAAP,CAAT;AACAI,WAAO,yBAAP,EAAkCM,eAAlC;;AAEA,SAAKL,EAAL,IAAWL,MAAX,EAAmB;AACjB,UAAIA,OAAOkB,cAAP,CAAsBb,EAAtB,CAAJ,EAA+B;AAC7BS,gBAAQK,IAAR,CAAad,EAAb;AACAU,cAAMI,IAAN,CAAWnB,OAAOK,EAAP,CAAX;AACD;AACF;;AAEDL,aAASc,OAAT;AACAb,WAAOc,KAAP;AACD;;AAED;AACAP,WAAST,IAAIqB,MAAb;AACAX,YAAUT,OAAOoB,MAAjB;AACAT,gBAAc,OAAOX,MAAP,KAAkB,QAAhC;AACAY,cAAY,OAAOX,IAAP,KAAgB,QAA5B;;AAEA,OAAKK,IAAI,CAAT,EAAYA,IAAIE,MAAhB,EAAwBF,GAAxB,EAA6B;AAC3BW,YAAQ,KAAR;AACA,QAAIN,WAAJ,EAAiB;AACfE,aAAOd,IAAIsB,MAAJ,CAAWf,CAAX,CAAP;AACA,WAAKC,IAAI,CAAT,EAAYA,IAAIE,OAAhB,EAAyBF,GAAzB,EAA8B;AAC5B,YAAIM,SAASb,OAAOqB,MAAP,CAAcd,CAAd,CAAb,EAA+B;AAC7BU,kBAAQ,IAAR;AACA;AACD;AACF;AACF,KARD,MAQO;AACL,WAAKV,IAAI,CAAT,EAAYA,IAAIE,OAAhB,EAAyBF,GAAzB,EAA8B;AAC5B,YAAIR,IAAIuB,MAAJ,CAAWhB,CAAX,EAAcN,OAAOO,CAAP,EAAUa,MAAxB,MAAoCpB,OAAOO,CAAP,CAAxC,EAAmD;AACjDU,kBAAQ,IAAR;AACA;AACAX,cAAKA,IAAIN,OAAOO,CAAP,EAAUa,MAAf,GAAyB,CAA7B;AACA;AACD;AACF;AACF;AACD,QAAIH,KAAJ,EAAW;AACTD,aAAOJ,YAAYX,KAAKoB,MAAL,CAAYd,CAAZ,CAAZ,GAA6BN,KAAKM,CAAL,CAApC;AACD,KAFD,MAEO;AACLS,aAAOjB,IAAIsB,MAAJ,CAAWf,CAAX,CAAP;AACD;AACF;;AAED,SAAOU,GAAP;AACD,CAhGD","file":"strtr.js","sourcesContent":["module.exports = function strtr (str, trFrom, trTo) {\n  //  discuss at: http://locutus.io/php/strtr/\n  // original by: Brett Zamir (http://brett-zamir.me)\n  //    input by: uestla\n  //    input by: Alan C\n  //    input by: Taras Bogach\n  //    input by: jpfle\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  //   example 1: var $trans = {'hello' : 'hi', 'hi' : 'hello'}\n  //   example 1: strtr('hi all, I said hello', $trans)\n  //   returns 1: 'hello all, I said hi'\n  //   example 2: strtr('äaabaåccasdeöoo', 'äåö','aao')\n  //   returns 2: 'aaabaaccasdeooo'\n  //   example 3: strtr('ääääääää', 'ä', 'a')\n  //   returns 3: 'aaaaaaaa'\n  //   example 4: strtr('http', 'pthxyz','xyzpth')\n  //   returns 4: 'zyyx'\n  //   example 5: strtr('zyyx', 'pthxyz','xyzpth')\n  //   returns 5: 'http'\n  //   example 6: strtr('aa', {'a':1,'aa':2})\n  //   returns 6: '2'\n\n  var krsort = require('../array/krsort')\n  var iniSet = require('../info/ini_set')\n\n  var fr = ''\n  var i = 0\n  var j = 0\n  var lenStr = 0\n  var lenFrom = 0\n  var sortByReference = false\n  var fromTypeStr = ''\n  var toTypeStr = ''\n  var istr = ''\n  var tmpFrom = []\n  var tmpTo = []\n  var ret = ''\n  var match = false\n\n  // Received replace_pairs?\n  // Convert to normal trFrom->trTo chars\n  if (typeof trFrom === 'object') {\n    // Not thread-safe; temporarily set to true\n    // @todo: Don't rely on ini here, use internal krsort instead\n    sortByReference = iniSet('locutus.sortByReference', false)\n    trFrom = krsort(trFrom)\n    iniSet('locutus.sortByReference', sortByReference)\n\n    for (fr in trFrom) {\n      if (trFrom.hasOwnProperty(fr)) {\n        tmpFrom.push(fr)\n        tmpTo.push(trFrom[fr])\n      }\n    }\n\n    trFrom = tmpFrom\n    trTo = tmpTo\n  }\n\n  // Walk through subject and replace chars when needed\n  lenStr = str.length\n  lenFrom = trFrom.length\n  fromTypeStr = typeof trFrom === 'string'\n  toTypeStr = typeof trTo === 'string'\n\n  for (i = 0; i < lenStr; i++) {\n    match = false\n    if (fromTypeStr) {\n      istr = str.charAt(i)\n      for (j = 0; j < lenFrom; j++) {\n        if (istr === trFrom.charAt(j)) {\n          match = true\n          break\n        }\n      }\n    } else {\n      for (j = 0; j < lenFrom; j++) {\n        if (str.substr(i, trFrom[j].length) === trFrom[j]) {\n          match = true\n          // Fast forward\n          i = (i + trFrom[j].length) - 1\n          break\n        }\n      }\n    }\n    if (match) {\n      ret += toTypeStr ? trTo.charAt(j) : trTo[j]\n    } else {\n      ret += str.charAt(i)\n    }\n  }\n\n  return ret\n}\n"]}