{"version":3,"sources":["jsdelivr-header.js","/npm/enum-set@2.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACHA,MAAM,gBACJ,WAAA,CAAY,EAAG,GACb,KAAK,MAAQ,EACb,KAAK,QAAU,EACf,KAAK,aAAe,CACtB,CAEA,IAAA,GACE,KAAM,KAAK,MAAQ,KAAK,QAAQ,UAAU,SACnC,KAAK,QAAQ,IAAI,KAAK,QAC3B,KAAK,QAEP,IAAI,EAsBJ,OArBI,KAAK,QAAQ,IAAI,KAAK,QAEtB,EADuB,WAArB,KAAK,aACE,CACP,MAAO,CAAC,KAAK,MAAO,KAAK,OACzB,MAAM,GAIC,CACP,MAAO,KAAK,MACZ,MAAM,GAGV,KAAK,SAGL,EAAS,CACP,WAAO,EACP,MAAM,GAGH,CACT,EAGF,MAAM,QACJ,WAAA,CAAY,GAGV,GAFA,KAAK,UAAY,GACjB,KAAK,KAAO,EACR,EACF,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAI,CACnC,IAAI,EAAI,EAAK,GACb,KAAK,IAAI,EACX,CAEJ,CAEA,GAAA,CAAI,GACF,OAA+B,IAAxB,KAAK,UAAU,EACxB,CAEA,GAAA,CAAI,GACF,IAAK,OAAO,UAAU,GACpB,MAAM,IAAI,MAAM,kCAElB,GAAI,EAAQ,EACV,MAAM,IAAI,MAAM,gCAMlB,OAJK,KAAK,IAAI,IACZ,KAAK,OAEP,KAAK,UAAU,IAAS,EACjB,IACT,CAEA,KAAA,GACE,KAAK,UAAY,GACjB,KAAK,KAAO,CACd,CAEA,OAAO,GACL,IAAI,EAAM,KAAK,IAAI,GAKnB,OAJA,KAAK,UAAU,IAAS,EACpB,GACF,KAAK,OAEA,CACT,CAEA,OAAA,GACE,OAAO,IAAI,gBAAgB,KAAM,UACnC,CAEA,OAAA,CAAQ,EAAY,GAClB,IAAI,EAAK,IAAI,gBAAgB,MACzB,EAAO,EAAG,OACd,MAAQ,EAAK,MACP,EACF,EAAW,KAAK,EAAS,EAAK,OAG9B,EAAW,EAAK,OAElB,EAAO,EAAG,MAEd,CAEA,IAAA,GACE,OAAO,IAAI,gBAAgB,KAAM,OACnC,CAEA,MAAA,GACE,OAAO,IAAI,gBAAgB,KAAM,SACnC,EAGF,OAAO,QAAU","file":"/npm/enum-set@2.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/enum-set@2.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use-strict';\r\n/*jslint node: true*/\r\n\r\nclass EnumSetIterator {\r\n  constructor(e, kind){\r\n    this.index = 0;\r\n    this.enumSet = e;\r\n    this.IteratorKind = kind;\r\n  }\r\n\r\n  next(){\r\n    while(this.index < this.enumSet.bitVector.length &&\r\n          !this.enumSet.has(this.index)){\r\n      this.index++;\r\n    }\r\n    let result;\r\n    if (this.enumSet.has(this.index)){\r\n      if (this.IteratorKind == 'entries'){\r\n        result = {\r\n          value: [this.index, this.index],\r\n          done: false\r\n        };\r\n      }\r\n      else{\r\n        result = {\r\n          value: this.index,\r\n          done: false\r\n        };\r\n      }\r\n      this.index++;\r\n    }\r\n    else{\r\n      result = {\r\n        value: undefined,\r\n        done: true\r\n      };\r\n    }\r\n    return result;\r\n  }\r\n}\r\n\r\nclass EnumSet {\r\n  constructor(list){\r\n    this.bitVector = [];\r\n    this.size = 0;\r\n    if (list){\r\n      for (let i = 0; i < list.length; i++){\r\n        let n = list[i];\r\n        this.add(n);\r\n      }\r\n    }\r\n  }\r\n\r\n  has(value){\r\n    return this.bitVector[value]===true;\r\n  }\r\n\r\n  add(value){\r\n    if (!Number.isInteger(value)){\r\n      throw new Error(\"List must contain only numbers\");\r\n    }\r\n    if (value < 0){\r\n      throw new Error(\"Number cannot be less than 0\");\r\n    }\r\n    if (!this.has(value)){\r\n      this.size++;\r\n    }\r\n    this.bitVector[value] = true;\r\n    return this;\r\n  }\r\n\r\n  clear(){\r\n    this.bitVector = [];\r\n    this.size = 0;\r\n  }\r\n\r\n  delete(value){\r\n    let ans = this.has(value);\r\n    this.bitVector[value] = false;\r\n    if (ans){\r\n      this.size--;\r\n    }\r\n    return ans;\r\n  }\r\n\r\n  entries(){\r\n    return new EnumSetIterator(this, 'entries');\r\n  }\r\n\r\n  forEach(callbackFn, thisArg){\r\n    let it = new EnumSetIterator(this);\r\n    let next = it.next();\r\n    while (!next.done){\r\n      if (thisArg){\r\n        callbackFn.call(thisArg, next.value);\r\n      }\r\n      else{\r\n        callbackFn(next.value);\r\n      }\r\n      next = it.next();\r\n    }\r\n  }\r\n\r\n  keys(){\r\n    return new EnumSetIterator(this, 'keys');\r\n  }\r\n\r\n  values(){\r\n    return new EnumSetIterator(this, 'values');\r\n  }\r\n}\r\n\r\nmodule.exports = EnumSet;\r\n"]}