{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-petrinet/src/client/strings.js"],"names":["Strings","toUpperCaseFirst","s","toUpperCase","slice","toCamelCase","string","delimiter","split","map","ea","index","join","prefixSelector","prefix","matchAll","regExString","all","regEx","RegExp","m","exec","push","matchDo","func","match","call","indent","level","i","matchAllDo","longestCommonPrefix","arr1","arr","concat","sort","a1","a2","length","L","charAt","substring","escapeRegExp","replace"],"mappings":";;;;;;;;AAAA;;;;;AAKe,YAAMA,OAAN,CAAc;;AAE3B,eAAOC,gBAAP,CAAwBC,CAAxB,EAA2B;AACzB,iBAAOA,EAAE,CAAF,EAAKC,WAAL,KAAqBD,EAAEE,KAAF,CAAQ,CAAR,CAA5B;AACD;;AAED,eAAOC,WAAP,CAAmBC,MAAnB,EAA2BC,YAAY,GAAvC,EAA4C;AAC1C,iBAAOD,OACJE,KADI,CACED,SADF,EAEJE,GAFI,CAEA,CAACC,EAAD,EAAKC,KAAL,KAAeA,UAAU,CAAV,GAAcD,EAAd,GAAmB,KAAKT,gBAAL,CAAsBS,EAAtB,CAFlC,EAGJE,IAHI,CAGC,EAHD,CAAP;AAID;;AAED,eAAOC,cAAP,CAAsBC,MAAtB,EAA8BZ,CAA9B,EAAiC;AAC/B,iBAAOY,SAAS,KAAKb,gBAAL,CAAsBC,CAAtB,CAAhB;AACD;;AAED,eAAOa,QAAP,CAAgBC,WAAhB,EAA6Bd,CAA7B,EAAgC;AAC9B,cAAIe,MAAM,EAAV;AACA,cAAIC,QAAQ,IAAIC,MAAJ,CAAWH,WAAX,EAAwB,IAAxB,CAAZ;AACA,aAAG;AACD,gBAAII,IAAIF,MAAMG,IAAN,CAAWnB,CAAX,CAAR;AACA,gBAAIkB,CAAJ,EAAOH,IAAIK,IAAJ,CAASF,CAAT;AACR,WAHD,QAGQA,CAHR;AAIA,iBAAOH,GAAP;AACD;;AAED;AACA,eAAOM,OAAP,CAAeP,WAAf,EAA4Bd,CAA5B,EAA+BsB,IAA/B,EAAqC;AACnC,cAAIJ,IAAIlB,EAAEuB,KAAF,CAAQT,WAAR,CAAR;AACA,cAAII,CAAJ,EAAO;AACL,mBAAOI,KAAKE,IAAL,CAAU,GAAGN,CAAb,CAAP;AACD;AACF;;AAED,eAAOO,MAAP,CAAczB,CAAd,EAAiB0B,QAAQ,CAAzB,EAA4Bd,SAAS,IAArC,EAA2C;AACzC,eAAI,IAAIe,IAAE,CAAV,EAAaA,IAAID,KAAjB,EAAwBC,GAAxB,EAA6B;AAAE3B,gBAAIY,SAASZ,CAAb;AAAe;AAC9C,iBAAOA,CAAP;AACD;;AAED,eAAO4B,UAAP,CAAkBd,WAAlB,EAA+Bd,CAA/B,EAAkCsB,IAAlC,EAAwC;AACtC,cAAIN,QAAQ,IAAIC,MAAJ,CAAWH,WAAX,EAAwB,GAAxB,CAAZ;AACA,aAAG;AACD,gBAAII,IAAIF,MAAMG,IAAN,CAAWnB,CAAX,CAAR;AACA,gBAAIkB,CAAJ,EAAQI,KAAKE,IAAL,CAAU,GAAGN,CAAb;AACT,WAHD,QAGQA,CAHR;AAID;;AAED;AACA,eAAOW,mBAAP,CAA2BC,IAA3B,EAAgC;AAC9B,gBAAMC,MAAKD,KAAKE,MAAL,GAAcC,IAAd,EAAX;AACA,gBAAMC,KAAIH,IAAI,CAAJ,CAAV;AACA,gBAAMI,KAAIJ,IAAIA,IAAIK,MAAJ,GAAW,CAAf,CAAV;AACA,gBAAMC,IAAGH,GAAGE,MAAZ;AACA,cAAIT,IAAG,CAAP;AACA,iBAAMA,IAAGU,CAAH,IAAQH,GAAGI,MAAH,CAAUX,CAAV,MAAgBQ,GAAGG,MAAH,CAAUX,CAAV,CAA9B,EAA4CA;AAC5C,iBAAOO,GAAGK,SAAH,CAAa,CAAb,EAAgBZ,CAAhB,CAAP;AACD;;AAED;AACA,eAAOa,YAAP,CAAoBpC,MAApB,EAA4B;AAC1B,iBAAOA,OAAOqC,OAAP,CAAe,qBAAf,EAAsC,MAAtC,CAAP,CAD0B,CAC4B;AACvD;AA9D0B;;yBAAR3C,O","file":"strings.js","sourcesContent":["/*\n * And here it is... the utitly class for awesome string manipulation!\n * #Design what are standard libraries for string manipulation? Underscore etc?\n */\n\nexport default class Strings {\n  \n  static toUpperCaseFirst(s) {\n    return s[0].toUpperCase() + s.slice(1)\n  }\n  \n  static toCamelCase(string, delimiter = \" \") {\n    return string\n      .split(delimiter)\n      .map((ea, index) => index === 0 ? ea : this.toUpperCaseFirst(ea))\n      .join(\"\")\n  }\n  \n  static prefixSelector(prefix, s) {\n    return prefix + this.toUpperCaseFirst(s)\n  }\n  \n  static matchAll(regExString, s) {\n    var all  =[]\n    var regEx = new RegExp(regExString, \"gs\")\n    do {\n      var m = regEx.exec(s)\n      if (m) all.push(m)\n    } while(m)\n    return all\n  }\n\n  /* matches one, and call func with it */\n  static matchDo(regExString, s, func) {\n    var m = s.match(regExString)\n    if (m) {\n      return func.call(...m)\n    }\n  }\n\n  static indent(s, level = 1, prefix = \"  \") {\n    for(let i=0; i < level; i++) { s = prefix + s}\n    return s\n  }\n  \n  static matchAllDo(regExString, s, func) {\n    var regEx = new RegExp(regExString, \"g\")\n    do {\n      var m = regEx.exec(s)\n      if (m)  func.call(...m)\n    } while(m)\n  }\n  \n  /* source: https://www.w3resource.com/javascript-exercises/javascript-array-exercise-28.php */\n  static longestCommonPrefix(arr1){\n    const arr= arr1.concat().sort();\n    const a1= arr[0];\n    const a2= arr[arr.length-1];\n    const L= a1.length;\n    let i= 0;\n    while(i< L && a1.charAt(i)=== a2.charAt(i)) i++;\n    return a1.substring(0, i);\n  }\n    \n  /* source: https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex */  \n  static escapeRegExp(string) {\n    return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n  }\n}\n"]}