@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
JavaScript
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