{"version":3,"names":["CompositeKey","__SystemJSRewritingHack","_export","setters","execute","_recorder_","_src_client_reactive_active_expression_rewriting_composite_key_js","constructor","_compositeKeyStore","Map","_compositeKeyStoreReverse","_newMap","_getByPrimaryKey","obj1","getOrCreate","_get","obj2","secondKeyMap","has","compKey","set","get","for","keysFor","remove","delete","size","clear","Object","defineProperty","thisIsVererySecretVariableName","enumerable","configurable"],"sources":["composite-key.js"],"sourcesContent":["export default class CompositeKey {\n\n  constructor() {\n    this._compositeKeyStore = new Map();\n    this._compositeKeyStoreReverse = new Map();\n  }\n\n  _newMap() { return new Map(); }\n  \n  _getByPrimaryKey(obj1) {\n    return this._compositeKeyStore.getOrCreate(obj1, this._newMap);\n  }\n  _get(obj1, obj2) {\n    const secondKeyMap = this._getByPrimaryKey(obj1);\n    if(!secondKeyMap.has(obj2)) {\n      const compKey = {};\n      secondKeyMap.set(obj2, compKey);\n      this._compositeKeyStoreReverse.set(compKey, [obj1, obj2]);\n    }\n    return secondKeyMap.get(obj2);\n  }\n  \n  for(obj1, obj2) {\n    return this._get(obj1, obj2);\n  }\n  \n  /**\n   * Reverse operation of @link(for)\n   */\n  keysFor(compKey) {\n    return this._compositeKeyStoreReverse.get(compKey) || [];\n  }\n  \n  remove(compKey) {\n    const [obj1, obj2] = this._compositeKeyStoreReverse.get(compKey);\n    \n    const secondKeyMap = this._getByPrimaryKey(obj1);\n    secondKeyMap.delete(obj2);\n    if(secondKeyMap.size === 0) {\n      this._compositeKeyStore.delete(obj1);\n    }\n    this._compositeKeyStoreReverse.delete(compKey);\n  }\n  \n  clear() {\n    this._compositeKeyStore.clear();\n    this._compositeKeyStoreReverse.clear();\n  }\n}\n"],"mappings":";;;MAAqBA,YAAY,EAAAC,uBAAA;EAAAC,OAAA;EAAA;IAAAC,OAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAH,uBAAA;MAAAI,UAAA,CAAAC,iEAAA,GAAAD,UAAA,CAAAC,iEAAA;MAAAJ,OAAA,YAAZF,YAAY,GAAlB,MAAMA,YAAY,CAAC;QAEhCO,WAAWA,CAAA,EAAG;UACZ,IAAI,CAACC,kBAAkB,GAAG,IAAIC,GAAG,CAAC,CAAC;UACnC,IAAI,CAACC,yBAAyB,GAAG,IAAID,GAAG,CAAC,CAAC;QAC5C;QAEAE,OAAOA,CAAA,EAAG;UAAE,OAAO,IAAIF,GAAG,CAAC,CAAC;QAAE;QAE9BG,gBAAgBA,CAACC,IAAI,EAAE;UACrB,OAAO,IAAI,CAACL,kBAAkB,CAACM,WAAW,CAACD,IAAI,EAAE,IAAI,CAACF,OAAO,CAAC;QAChE;QACAI,IAAIA,CAACF,IAAI,EAAEG,IAAI,EAAE;UACf,MAAMC,YAAY,GAAG,IAAI,CAACL,gBAAgB,CAACC,IAAI,CAAC;UAChD,IAAG,CAACI,YAAY,CAACC,GAAG,CAACF,IAAI,CAAC,EAAE;YAC1B,MAAMG,OAAO,GAAG,CAAC,CAAC;YAClBF,YAAY,CAACG,GAAG,CAACJ,IAAI,EAAEG,OAAO,CAAC;YAC/B,IAAI,CAACT,yBAAyB,CAACU,GAAG,CAACD,OAAO,EAAE,CAACN,IAAI,EAAEG,IAAI,CAAC,CAAC;UAC3D;UACA,OAAOC,YAAY,CAACI,GAAG,CAACL,IAAI,CAAC;QAC/B;QAEAM,GAAGA,CAACT,IAAI,EAAEG,IAAI,EAAE;UACd,OAAO,IAAI,CAACD,IAAI,CAACF,IAAI,EAAEG,IAAI,CAAC;QAC9B;;QAEA;AACF;AACA;QACEO,OAAOA,CAACJ,OAAO,EAAE;UACf,OAAO,IAAI,CAACT,yBAAyB,CAACW,GAAG,CAACF,OAAO,CAAC,IAAI,EAAE;QAC1D;QAEAK,MAAMA,CAACL,OAAO,EAAE;UACd,MAAM,CAACN,IAAI,EAAEG,IAAI,CAAC,GAAG,IAAI,CAACN,yBAAyB,CAACW,GAAG,CAACF,OAAO,CAAC;UAEhE,MAAMF,YAAY,GAAG,IAAI,CAACL,gBAAgB,CAACC,IAAI,CAAC;UAChDI,YAAY,CAACQ,MAAM,CAACT,IAAI,CAAC;UACzB,IAAGC,YAAY,CAACS,IAAI,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAClB,kBAAkB,CAACiB,MAAM,CAACZ,IAAI,CAAC;UACtC;UACA,IAAI,CAACH,yBAAyB,CAACe,MAAM,CAACN,OAAO,CAAC;QAChD;QAEAQ,KAAKA,CAAA,EAAG;UACN,IAAI,CAACnB,kBAAkB,CAACmB,KAAK,CAAC,CAAC;UAC/B,IAAI,CAACjB,yBAAyB,CAACiB,KAAK,CAAC,CAAC;QACxC;MACF,CAAC;MAAAC,MAAA,CAAAC,cAAA,CAAAxB,UAAA,CAAAC,iEAAA;QAAAe,IAAA;UAAA,OAAArB,YAAA;QAAA;QAAAoB,IAAAU,8BAAA;UAAA5B,OAAA,YAhDoBF,YAAA,CAAAA,CAAA,CAAAA,8BAAY;UAAA;QAAA;QAAA+B,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;AAAA"}