{"version":3,"sources":["jsdelivr-header.js","/npm/multiple-key-map@1.1.1/dist/multiple-key-map.cjs.js"],"names":[],"mappings":"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","file":"/npm/multiple-key-map@1.1.1/dist/multiple-key-map.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/multiple-key-map@1.1.1/dist/multiple-key-map.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\n * multiple-key-map v1.1.1\n * (c) 2017-present phphe <phphe@outlook.com> (https://github.com/phphe)\n * Released under the MIT License.\n */\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar MultipleKeyMap =\n/*#__PURE__*/\nfunction () {\n  function MultipleKeyMap() {\n    _classCallCheck(this, MultipleKeyMap);\n\n    _defineProperty(this, \"store\", {});\n  }\n\n  _createClass(MultipleKeyMap, [{\n    key: \"set\",\n    value: function set(keys, value) {\n      var node = this.store;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var key = _step.value;\n\n          if (!node.children) {\n            // 使用WeakMap时出错: Invalid value used as weak map key\n            node.children = new Map();\n          }\n\n          if (!node.children.has(key)) {\n            node.children.set(key, {});\n          }\n\n          node = node.children.get(key);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      node.value = value;\n    }\n  }, {\n    key: \"getNode\",\n    value: function getNode(keys) {\n      var node = this.store;\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = keys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var key = _step2.value;\n\n          if (!node.children) {\n            throw [\"can't find by keys\", keys];\n          }\n\n          node = node.children.get(key);\n        }\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n\n      return node;\n    }\n  }, {\n    key: \"get\",\n    value: function get(keys) {\n      return this.getNode(keys).value;\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(keys, deleteChildNodes, excludeSelf) {\n      var targetNode = this.getNode(keys);\n\n      if (!excludeSelf) {\n        delete targetNode.value;\n      }\n\n      if (deleteChildNodes) {\n        delete targetNode.children;\n      } // 删除空分支\n\n\n      this.autoDeleteEmptyNodes(keys);\n    }\n  }, {\n    key: \"autoDeleteEmptyNodes\",\n    value: function autoDeleteEmptyNodes(keys) {\n      var nodes = [];\n      var current = this.store;\n      var keys2 = keys.slice();\n\n      while (keys2.length > 0) {\n        var key = keys2.shift();\n        var node = current.children.get(key);\n        nodes.unshift([key, node, current]);\n        current = node;\n      }\n\n      for (var _i = 0; _i < nodes.length; _i++) {\n        var _nodes$_i = _slicedToArray(nodes[_i], 3),\n            _key = _nodes$_i[0],\n            _node = _nodes$_i[1],\n            parent = _nodes$_i[2];\n\n        if (_node.children && _node.children.size === 0) {\n          delete _node.children;\n        }\n\n        if (!_node.hasOwnProperty('value') && !_node.children) {\n          parent.children.delete(_key);\n        } else {\n          break;\n        }\n      }\n    }\n  }, {\n    key: \"hasNode\",\n    value: function hasNode(keys) {\n      try {\n        return Boolean(this.getNode(keys));\n      } catch (e) {\n        return false;\n      }\n    }\n  }, {\n    key: \"has\",\n    value: function has(keys) {\n      try {\n        var node = this.getNode(keys);\n        return Boolean(node && node.hasOwnProperty('value'));\n      } catch (e) {\n        return false;\n      }\n    }\n  }]);\n\n  return MultipleKeyMap;\n}();\n\nmodule.exports = MultipleKeyMap;\n"]}