{"version":3,"names":["maybeUnpackString","value","Object","defineProperty","_recorder_","_src_babylonian_programming_editor_utils_utils_js","get","set","thisIsVererySecretVariableName","_export","enumerable","configurable","guid","s4","Math","floor","random","toString","substring","abstract","Error","compareKeyLocations","a","b","keyLocationsAreEqual","stringInsert","baseString","insertString","index","slice","stringRemove","startIndex","endIndex","normalizePath","path","split","reduce","acc","part","pop","push","join","deepCopy","obj","HTMLElement","cloneNode","clone","JSON","parse","stringify","e","console","warn","assign"],"sources":["utils.js"],"sourcesContent":["export const maybeUnpackString = (value) => {\n  if(!value) {\n    return value;\n  }\n  \n  if(typeof(value) === \"string\") {\n    return value;\n  } else if (typeof(value.value) === \"string\") {\n    return value.value;\n  }\n  \n  return null;\n}\n\nexport const guid = () => {\n  // from https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n  function s4() {\n    return Math.floor((1 + Math.random()) * 0x10000)\n      .toString(16)\n      .substring(1);\n  }\n  return  s4() + '_' + s4() + '_' + s4();\n}\n\nexport const abstract = () => {\n  throw Error(\"This function is abstract\");\n}\n\nexport const compareKeyLocations = (a, b) => {\n  return a[0] - b[0] ? a[0] - b[0] :\n         a[1] - b[1] ? a[1] - b[1] :\n         a[2] - b[2] ? a[2] - b[2] :\n         a[3] - b[3] ? a[3] - b[3] :\n         0;\n}\n\nexport const keyLocationsAreEqual = (a, b) => {\n  return compareKeyLocations(a, b) === 0;\n}\n\nexport const stringInsert = (baseString, insertString, index) => {\n  return baseString.slice(0, index) + insertString + baseString.slice(index);\n}\n\nexport const stringRemove = (baseString, startIndex, endIndex) => {\n  return baseString.slice(0, startIndex) + baseString.slice(endIndex);\n}\n\nexport const normalizePath = (path) => \n  path.split(\"/\")\n      .reduce((acc, part) => {\n        if(part === \"..\") {\n          acc.pop();\n        } else if(part !== \".\") {\n          acc.push(part);\n        }\n        return acc;\n      }, [])\n      .join(\"/\")\n\nexport const deepCopy = (obj) => {\n  try {\n    if(obj instanceof HTMLElement) {\n      /*probe:*/return/*{}*/ obj.cloneNode(true);\n    } else if(obj && obj.clone) {\n      // (A) #TODO this is not a deep copy... \n      return obj.clone() // why not....        \n    } else {\n      // (C) only this is a deep copy, but besides very simple objects... this will break... \n        // and this will really consume a lot of data if you probe a very big object\n      /*probe:*/return/*{}*/ JSON.parse(JSON.stringify(obj));\n    }\n  } catch(e) {\n    // (B) this is not a deep copy either\n    console.warn(\"Could not deeply clone object\", obj);\n    /*probe:*/return/*{}*/ Object.assign({}, obj);\n  }\n}"],"mappings":"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"}