{"version":3,"names":["DualKeyMap","__SystemJSRewritingHack","_export","setters","execute","_recorder_","_src_client_reactive_active_expression_rewriting_dual_key_map_js","constructor","_leftToMiddle","Map","add","primaryKey","secondaryKey","value","getOrCreate","remove","hasPrimary","getMiddles","_middleToRight","delete","removeSecondary","has","size","clear","get","undefined","creatorFunction","allValues","values","flatMap","inner","Object","defineProperty","set","thisIsVererySecretVariableName","enumerable","configurable"],"sources":["dual-key-map.js"],"sourcesContent":["export default class DualKeyMap {\n\n  constructor() {\n    this._leftToMiddle = new Map();\n  }\n  \n  add(primaryKey, secondaryKey, value) {\n    this.getOrCreate(primaryKey, secondaryKey, () => value);\n  }\n\n  remove(primaryKey) {\n    if(!this.hasPrimary(primaryKey)) return;\n    for(const secondaryKey of this.getMiddles(primaryKey)) {\n      this._middleToRight.delete(secondaryKey);      \n    }\n    this._leftToMiddle.delete(primaryKey);\n  }\n\n  removeSecondary(primaryKey, secondaryKey) {\n    if(!this.has(primaryKey, secondaryKey)) return;\n    this.getMiddles(primaryKey).delete(secondaryKey);\n    if(this.getMiddles(primaryKey).size === 0) {\n      this._leftToMiddle.delete(primaryKey);\n    }\n  }\n\n  clear() {\n    this._leftToMiddle.clear();\n  }\n\n  hasPrimary(primaryKey) {\n    return this._leftToMiddle.has(primaryKey);\n  }\n  \n  has(primaryKey, secondaryKey) {\n    if(!this.hasPrimary(primaryKey)) return false;    \n    return this.getMiddles(primaryKey).has(secondaryKey);\n  }\n  \n  getMiddles(primaryKey) {\n    return this._leftToMiddle.get(primaryKey);\n  }\n\n  get(primaryKey, secondaryKey) {\n    if(!this.has(primaryKey, secondaryKey)) return undefined;\n    return this._leftToMiddle.get(primaryKey).get(secondaryKey);\n  }\n  \n  getOrCreate(primaryKey, secondaryKey, creatorFunction) {\n    return this._leftToMiddle\n      .getOrCreate(primaryKey, () => new Map())\n      .getOrCreate(secondaryKey, creatorFunction);\n  }\n  \n  allValues() {\n    return [...this._leftToMiddle.values()].flatMap(inner => [...inner.values()]);\n  }\n  \n}\n"],"mappings":";;;MAAqBA,UAAU,EAAAC,uBAAA;EAAAC,OAAA;EAAA;IAAAC,OAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAH,uBAAA;MAAAI,UAAA,CAAAC,gEAAA,GAAAD,UAAA,CAAAC,gEAAA;MAAAJ,OAAA,YAAVF,UAAU,GAAhB,MAAMA,UAAU,CAAC;QAE9BO,WAAWA,CAAA,EAAG;UACZ,IAAI,CAACC,aAAa,GAAG,IAAIC,GAAG,CAAC,CAAC;QAChC;QAEAC,GAAGA,CAACC,UAAU,EAAEC,YAAY,EAAEC,KAAK,EAAE;UACnC,IAAI,CAACC,WAAW,CAACH,UAAU,EAAEC,YAAY,EAAE,MAAMC,KAAK,CAAC;QACzD;QAEAE,MAAMA,CAACJ,UAAU,EAAE;UACjB,IAAG,CAAC,IAAI,CAACK,UAAU,CAACL,UAAU,CAAC,EAAE;UACjC,KAAI,MAAMC,YAAY,IAAI,IAAI,CAACK,UAAU,CAACN,UAAU,CAAC,EAAE;YACrD,IAAI,CAACO,cAAc,CAACC,MAAM,CAACP,YAAY,CAAC;UAC1C;UACA,IAAI,CAACJ,aAAa,CAACW,MAAM,CAACR,UAAU,CAAC;QACvC;QAEAS,eAAeA,CAACT,UAAU,EAAEC,YAAY,EAAE;UACxC,IAAG,CAAC,IAAI,CAACS,GAAG,CAACV,UAAU,EAAEC,YAAY,CAAC,EAAE;UACxC,IAAI,CAACK,UAAU,CAACN,UAAU,CAAC,CAACQ,MAAM,CAACP,YAAY,CAAC;UAChD,IAAG,IAAI,CAACK,UAAU,CAACN,UAAU,CAAC,CAACW,IAAI,KAAK,CAAC,EAAE;YACzC,IAAI,CAACd,aAAa,CAACW,MAAM,CAACR,UAAU,CAAC;UACvC;QACF;QAEAY,KAAKA,CAAA,EAAG;UACN,IAAI,CAACf,aAAa,CAACe,KAAK,CAAC,CAAC;QAC5B;QAEAP,UAAUA,CAACL,UAAU,EAAE;UACrB,OAAO,IAAI,CAACH,aAAa,CAACa,GAAG,CAACV,UAAU,CAAC;QAC3C;QAEAU,GAAGA,CAACV,UAAU,EAAEC,YAAY,EAAE;UAC5B,IAAG,CAAC,IAAI,CAACI,UAAU,CAACL,UAAU,CAAC,EAAE,OAAO,KAAK;UAC7C,OAAO,IAAI,CAACM,UAAU,CAACN,UAAU,CAAC,CAACU,GAAG,CAACT,YAAY,CAAC;QACtD;QAEAK,UAAUA,CAACN,UAAU,EAAE;UACrB,OAAO,IAAI,CAACH,aAAa,CAACgB,GAAG,CAACb,UAAU,CAAC;QAC3C;QAEAa,GAAGA,CAACb,UAAU,EAAEC,YAAY,EAAE;UAC5B,IAAG,CAAC,IAAI,CAACS,GAAG,CAACV,UAAU,EAAEC,YAAY,CAAC,EAAE,OAAOa,SAAS;UACxD,OAAO,IAAI,CAACjB,aAAa,CAACgB,GAAG,CAACb,UAAU,CAAC,CAACa,GAAG,CAACZ,YAAY,CAAC;QAC7D;QAEAE,WAAWA,CAACH,UAAU,EAAEC,YAAY,EAAEc,eAAe,EAAE;UACrD,OAAO,IAAI,CAAClB,aAAa,CACtBM,WAAW,CAACH,UAAU,EAAE,MAAM,IAAIF,GAAG,CAAC,CAAC,CAAC,CACxCK,WAAW,CAACF,YAAY,EAAEc,eAAe,CAAC;QAC/C;QAEAC,SAASA,CAAA,EAAG;UACV,OAAO,CAAC,GAAG,IAAI,CAACnB,aAAa,CAACoB,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,KAAK,IAAI,CAAC,GAAGA,KAAK,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E;MAEF,CAAC;MAAAG,MAAA,CAAAC,cAAA,CAAA3B,UAAA,CAAAC,gEAAA;QAAAkB,IAAA;UAAA,OAAAxB,UAAA;QAAA;QAAAiC,IAAAC,8BAAA;UAAAhC,OAAA,YA1DoBF,UAAA,CAAAA,CAAA,CAAAA,8BAAU;UAAA;QAAA;QAAAmC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;AAAA"}