{"version":3,"file":"DimmerManager.mjs","sources":["../../../src/dimmer/dimmerManager/DimmerManager.ts"],"sourcesContent":["/**\n * Dimmer state management inspired by Material UI's ModalManager (https://github.com/mui-org/material-ui)\n */\nexport default class DimmerManager {\n  /**\n   * Dimmer refs\n   */\n  private readonly dimmers: Element[];\n\n  constructor() {\n    this.dimmers = [];\n  }\n\n  add(dimmer: Element): number {\n    let dimmerIndex = this.dimmers.indexOf(dimmer);\n    if (dimmerIndex !== -1) {\n      return dimmerIndex;\n    }\n\n    dimmerIndex = this.dimmers.length;\n    this.dimmers.push(dimmer);\n    return dimmerIndex;\n  }\n\n  remove(dimmer: Element): number {\n    const dimmerIndex = this.dimmers.indexOf(dimmer);\n\n    if (dimmerIndex !== -1) {\n      this.dimmers.splice(dimmerIndex, 1);\n    }\n    return dimmerIndex;\n  }\n\n  isTop(dimmer: Element): boolean {\n    return this.dimmers.length > 0 && this.dimmers[this.dimmers.length - 1] === dimmer;\n  }\n}\n"],"names":["DimmerManager","dimmers","constructor","add","dimmer","dimmerIndex","indexOf","length","push","remove","splice","isTop"],"mappings":"AAAA;;AAEG;AACW,MAAOA,aAAa,CAAA;AAChC;;AAEG;EACcC,OAAO;AAExBC,EAAAA,WAAAA,GAAA;IACE,IAAI,CAACD,OAAO,GAAG,EAAE;AACnB,EAAA;EAEAE,GAAGA,CAACC,MAAe,EAAA;IACjB,IAAIC,WAAW,GAAG,IAAI,CAACJ,OAAO,CAACK,OAAO,CAACF,MAAM,CAAC;AAC9C,IAAA,IAAIC,WAAW,KAAK,EAAE,EAAE;AACtB,MAAA,OAAOA,WAAW;AACpB,IAAA;AAEAA,IAAAA,WAAW,GAAG,IAAI,CAACJ,OAAO,CAACM,MAAM;AACjC,IAAA,IAAI,CAACN,OAAO,CAACO,IAAI,CAACJ,MAAM,CAAC;AACzB,IAAA,OAAOC,WAAW;AACpB,EAAA;EAEAI,MAAMA,CAACL,MAAe,EAAA;IACpB,MAAMC,WAAW,GAAG,IAAI,CAACJ,OAAO,CAACK,OAAO,CAACF,MAAM,CAAC;AAEhD,IAAA,IAAIC,WAAW,KAAK,EAAE,EAAE;MACtB,IAAI,CAACJ,OAAO,CAACS,MAAM,CAACL,WAAW,EAAE,CAAC,CAAC;AACrC,IAAA;AACA,IAAA,OAAOA,WAAW;AACpB,EAAA;EAEAM,KAAKA,CAACP,MAAe,EAAA;IACnB,OAAO,IAAI,CAACH,OAAO,CAACM,MAAM,GAAG,CAAC,IAAI,IAAI,CAACN,OAAO,CAAC,IAAI,CAACA,OAAO,CAACM,MAAM,GAAG,CAAC,CAAC,KAAKH,MAAM;AACpF,EAAA;AACD;;;;"}