{"version":3,"file":"WithPromise.mjs","sources":["../../../../src/animation/utils/WithPromise.ts"],"sourcesContent":["export class WithPromise {\n /**\n * The promise and its resolver are only created when `finished` is\n * first read. Most animations are never awaited, so this saves a\n * Promise allocation per value animation.\n */\n private _finished?: Promise\n\n private _resolve?: VoidFunction\n\n private isResolved = false\n\n get finished() {\n if (!this._finished) {\n this._finished = this.isResolved\n ? Promise.resolve()\n : new Promise((resolve) => {\n this._resolve = resolve\n })\n }\n\n return this._finished\n }\n\n protected updateFinished() {\n this._finished = this._resolve = undefined\n this.isResolved = false\n }\n\n protected notifyFinished() {\n this.isResolved = true\n this._resolve?.()\n }\n\n /**\n * Allows the animation to be awaited.\n *\n * @deprecated Use `finished` instead.\n */\n then(onResolve: VoidFunction, onReject?: VoidFunction) {\n return this.finished.then(onResolve, onReject)\n }\n}\n"],"names":[],"mappings":"MAAa,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;QAUY,IAAA,CAAA,UAAU,GAAG,KAAK;IAgC9B;AA9BI,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAClB,kBAAE,OAAO,CAAC,OAAO;AACjB,kBAAE,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AAC1B,oBAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AAC3B,gBAAA,CAAC,CAAC;QACZ;QAEA,OAAO,IAAI,CAAC,SAAS;IACzB;IAEU,cAAc,GAAA;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;IAEU,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,IAAI;IACrB;AAEA;;;;AAIG;IACH,IAAI,CAAC,SAAuB,EAAE,QAAuB,EAAA;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;IAClD;AACH;;;;"}