{
  "version": 3,
  "sources": ["../../../../src/evaluator/dependency-nodes/empty-cell-evaluation-node.ts"],
  "sourcesContent": [
    "import type { DependencyManager } from \"../../core/managers/dependency-manager.cjs\";\nimport { FrontierDependencyManager } from \"../../core/managers/frontier-dependency-manager.cjs\";\nimport type { WorkbookManager } from \"../../core/managers/workbook-manager.cjs\";\nimport type {\n  CellAddress,\n  RangeAddress,\n  SingleEvaluationResult,\n} from \"../../core/types.cjs\";\nimport { getCellReference, keyToCellAddress } from \"../../core/utils.cjs\";\n\nexport class EmptyCellEvaluationNode extends FrontierDependencyManager {\n  public key: string;\n  public cellAddress: CellAddress;\n  private _evaluationResult: SingleEvaluationResult;\n\n  constructor(\n    public emptyCellKey: string,\n    evaluationManager: DependencyManager,\n    workbookManager: WorkbookManager,\n    options?: { skipInitialBuild?: boolean }\n  ) {\n    const cellAddress = keyToCellAddress(emptyCellKey);\n    const emptyCellRange: RangeAddress = {\n      range: {\n        start: {\n          col: cellAddress.colIndex,\n          row: cellAddress.rowIndex,\n        },\n        end: {\n          col: { type: \"number\", value: cellAddress.colIndex },\n          row: { type: \"number\", value: cellAddress.rowIndex },\n        },\n      },\n      sheetName: cellAddress.sheetName,\n      workbookName: cellAddress.workbookName,\n    };\n\n    super(emptyCellRange, workbookManager, evaluationManager, options);\n\n    this.cellAddress = cellAddress;\n    this.key = emptyCellKey.replace(/^cell:/, \"empty:\");\n    this._evaluationResult = {\n      type: \"awaiting-evaluation\",\n      waitingFor: this,\n      errAddress: this,\n    };\n  }\n\n  public setEvaluationResult(result: SingleEvaluationResult) {\n    this._evaluationResult = result;\n  }\n\n  public get evaluationResult(): SingleEvaluationResult {\n    return this._evaluationResult;\n  }\n\n  public override resolve() {\n    if (this.canResolve()) {\n      super.resolve();\n    }\n  }\n\n  public override canResolve() {\n    return (\n      super.canResolve() && this.evaluationResult.type !== \"awaiting-evaluation\"\n    );\n  }\n\n  public override restoreResolvedSnapshot(options: {\n    dependencies: Set<import(\"../../core/managers/dependency-node.cjs\").DependencyNode>;\n    evaluationResult: SingleEvaluationResult;\n  }) {\n    super.restoreResolvedSnapshot({\n      dependencies: options.dependencies,\n    });\n    this._evaluationResult = options.evaluationResult;\n  }\n\n  public override invalidate() {\n    super.invalidate();\n    this._evaluationResult = {\n      type: \"awaiting-evaluation\",\n      waitingFor: this,\n      errAddress: this,\n    };\n  }\n\n  toJSON(visitor: Set<string> = new Set()): any {\n    const hasVisited = visitor?.has(this.key);\n    if (hasVisited) {\n      return {\n        key: this.key,\n        resolved: this.resolved,\n        cycle: true,\n        dependencies: [],\n        frontierDependencies: [],\n      };\n    }\n    visitor?.add(this.key);\n    return {\n      key: this.key,\n      resolved: this.resolved,\n      evaluationResult: this.evaluationResult,\n      dependencies: Array.from(this.getDependencies()).map((node) =>\n        node.toJSON(visitor)\n      ),\n      frontierDependencies: Array.from(this.getFrontierDependencies()).map(\n        (node) => node.toJSON(visitor)\n      ),\n    };\n  }\n\n  public override toString(): string {\n    return getCellReference(this.cellAddress);\n  }\n}\n"
  ],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC0C,IAA1C;AAOmD,IAAnD;AAAA;AAEO,MAAM,gCAAgC,6DAA0B;AAAA,EAM5D;AAAA,EALF;AAAA,EACA;AAAA,EACC;AAAA,EAER,WAAW,CACF,cACP,mBACA,iBACA,SACA;AAAA,IACA,MAAM,cAAc,8BAAiB,YAAY;AAAA,IACjD,MAAM,iBAA+B;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,UACL,KAAK,YAAY;AAAA,UACjB,KAAK,YAAY;AAAA,QACnB;AAAA,QACA,KAAK;AAAA,UACH,KAAK,EAAE,MAAM,UAAU,OAAO,YAAY,SAAS;AAAA,UACnD,KAAK,EAAE,MAAM,UAAU,OAAO,YAAY,SAAS;AAAA,QACrD;AAAA,MACF;AAAA,MACA,WAAW,YAAY;AAAA,MACvB,cAAc,YAAY;AAAA,IAC5B;AAAA,IAEA,MAAM,gBAAgB,iBAAiB,mBAAmB,OAAO;AAAA,IArB1D;AAAA,IAuBP,KAAK,cAAc;AAAA,IACnB,KAAK,MAAM,aAAa,QAAQ,UAAU,QAAQ;AAAA,IAClD,KAAK,oBAAoB;AAAA,MACvB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGK,mBAAmB,CAAC,QAAgC;AAAA,IACzD,KAAK,oBAAoB;AAAA;AAAA,MAGhB,gBAAgB,GAA2B;AAAA,IACpD,OAAO,KAAK;AAAA;AAAA,EAGE,OAAO,GAAG;AAAA,IACxB,IAAI,KAAK,WAAW,GAAG;AAAA,MACrB,MAAM,QAAQ;AAAA,IAChB;AAAA;AAAA,EAGc,UAAU,GAAG;AAAA,IAC3B,OACE,MAAM,WAAW,KAAK,KAAK,iBAAiB,SAAS;AAAA;AAAA,EAIzC,uBAAuB,CAAC,SAGrC;AAAA,IACD,MAAM,wBAAwB;AAAA,MAC5B,cAAc,QAAQ;AAAA,IACxB,CAAC;AAAA,IACD,KAAK,oBAAoB,QAAQ;AAAA;AAAA,EAGnB,UAAU,GAAG;AAAA,IAC3B,MAAM,WAAW;AAAA,IACjB,KAAK,oBAAoB;AAAA,MACvB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA;AAAA,EAGF,MAAM,CAAC,UAAuB,IAAI,KAAY;AAAA,IAC5C,MAAM,aAAa,SAAS,IAAI,KAAK,GAAG;AAAA,IACxC,IAAI,YAAY;AAAA,MACd,OAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,UAAU,KAAK;AAAA,QACf,OAAO;AAAA,QACP,cAAc,CAAC;AAAA,QACf,sBAAsB,CAAC;AAAA,MACzB;AAAA,IACF;AAAA,IACA,SAAS,IAAI,KAAK,GAAG;AAAA,IACrB,OAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,UAAU,KAAK;AAAA,MACf,kBAAkB,KAAK;AAAA,MACvB,cAAc,MAAM,KAAK,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,SACpD,KAAK,OAAO,OAAO,CACrB;AAAA,MACA,sBAAsB,MAAM,KAAK,KAAK,wBAAwB,CAAC,EAAE,IAC/D,CAAC,SAAS,KAAK,OAAO,OAAO,CAC/B;AAAA,IACF;AAAA;AAAA,EAGc,QAAQ,GAAW;AAAA,IACjC,OAAO,8BAAiB,KAAK,WAAW;AAAA;AAE5C;",
  "debugId": "6AC22645EFD23D8664756E2164756E21",
  "names": []
}