diff options
| author | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-01 20:21:29 +0000 | 
|---|---|---|
| committer | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-01 20:21:29 +0000 | 
| commit | 61cb1570a3410c85a4489b97c172e3a50715f36c (patch) | |
| tree | 8fe4a5b77ea54bba80abc817ce2c9ef0e79e7e66 /sandbox/testAppNevena/Front/node_modules/abbrev/abbrev.js | |
| parent | 21a53d349788c99d2007cba91a923db982353b31 (diff) | |
| parent | a9ee9e0a500a4a15bd0b5dcaf041f827228ed309 (diff) | |
Merge branch 'researchML' into 'dev'
Research ml
See merge request igrannonica/neuronstellar!6
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/abbrev/abbrev.js')
| -rw-r--r-- | sandbox/testAppNevena/Front/node_modules/abbrev/abbrev.js | 61 | 
1 files changed, 61 insertions, 0 deletions
| diff --git a/sandbox/testAppNevena/Front/node_modules/abbrev/abbrev.js b/sandbox/testAppNevena/Front/node_modules/abbrev/abbrev.js new file mode 100644 index 00000000..7b1dc5d6 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/abbrev/abbrev.js @@ -0,0 +1,61 @@ +module.exports = exports = abbrev.abbrev = abbrev + +abbrev.monkeyPatch = monkeyPatch + +function monkeyPatch () { +  Object.defineProperty(Array.prototype, 'abbrev', { +    value: function () { return abbrev(this) }, +    enumerable: false, configurable: true, writable: true +  }) + +  Object.defineProperty(Object.prototype, 'abbrev', { +    value: function () { return abbrev(Object.keys(this)) }, +    enumerable: false, configurable: true, writable: true +  }) +} + +function abbrev (list) { +  if (arguments.length !== 1 || !Array.isArray(list)) { +    list = Array.prototype.slice.call(arguments, 0) +  } +  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) { +    args[i] = typeof list[i] === "string" ? list[i] : String(list[i]) +  } + +  // sort them lexicographically, so that they're next to their nearest kin +  args = args.sort(lexSort) + +  // walk through each, seeing how much it has in common with the next and previous +  var abbrevs = {} +    , prev = "" +  for (var i = 0, l = args.length ; i < l ; i ++) { +    var current = args[i] +      , next = args[i + 1] || "" +      , nextMatches = true +      , prevMatches = true +    if (current === next) continue +    for (var j = 0, cl = current.length ; j < cl ; j ++) { +      var curChar = current.charAt(j) +      nextMatches = nextMatches && curChar === next.charAt(j) +      prevMatches = prevMatches && curChar === prev.charAt(j) +      if (!nextMatches && !prevMatches) { +        j ++ +        break +      } +    } +    prev = current +    if (j === cl) { +      abbrevs[current] = current +      continue +    } +    for (var a = current.substr(0, j) ; j <= cl ; j ++) { +      abbrevs[a] = current +      a += current.charAt(j) +    } +  } +  return abbrevs +} + +function lexSort (a, b) { +  return a === b ? 0 : a > b ? 1 : -1 +} | 
