UNPKG

@aurigma/design-atoms

Version:

Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.

34 lines 1.1 kB
import { EquatableKeyDictionary } from "@aurigma/design-atoms-model"; import { Deferred } from "../Utils/Deferred"; export class ColorPreviewLoadAwaiter { constructor() { this._deferred = new Deferred(); this._colors = new EquatableKeyDictionary(); this.listener = (eventArgs) => { this._onColorLoaded(eventArgs); }; } appendColor(color) { this._colors.set(color, false); } async waitForLoad() { return this._deferred.promise; } _onColorLoaded(eventArgs) { const { hasKey, key } = this._colors.tryGetKeyEqualTo(eventArgs.color); if (hasKey) { this._colors.set(key, true); } else { console.warn(`unexpected color event for color `, eventArgs.color, this._colors); } let t = true; for (let key of this._colors.keys()) { t = t && this._colors.get(key); } if (t == true) { this._deferred.resolve(); } } } //# sourceMappingURL=ColorPreviewLoadAwaiter.js.map