dcl-ui-toolkit
Version:
A collection of UI helpers to make it easier to build a Decentraland scene using the SDK 7.
51 lines • 5.93 kB
JavaScript
import { Timer } from '../../utils/timerUtils';
export class UIObject {
constructor({ startHidden = true }) {
this.visible = !startHidden;
}
show(duration) {
this.visible = true;
}
hide() {
this.visible = false;
}
isVisible() {
return this.visible;
}
}
export class DelayedHidingUIObject extends UIObject {
constructor(config) {
super(config);
const { startHidden, duration } = config;
if (!startHidden && duration) {
this._createAndStartTimer(duration);
}
}
show(duration) {
super.show();
this._createAndStartTimer(duration);
}
hide() {
super.hide();
this._clearTimer();
}
_createAndStartTimer(duration) {
if (!duration || !this.visible)
return;
this._clearTimer();
this._timer = new Timer({
seconds: duration,
callback: () => {
console.log('end timer callback_________________');
this.hide();
},
});
this._timer.start();
}
_clearTimer() {
if (!this._timer)
return;
this._timer.stop();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdWktZW50aXRpZXMvVUlPYmplY3QvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQWlDOUMsTUFBTSxPQUFnQixRQUFRO0lBRzVCLFlBQXNCLEVBQUUsV0FBVyxHQUFHLElBQUksRUFBa0I7UUFDMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQTtJQUM3QixDQUFDO0lBS00sSUFBSSxDQUFDLFFBQWlCO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ3JCLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSxRQUFRO0lBRzFELFlBQXNCLE1BQW1DO1FBQ3ZELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUViLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBRXhDLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUNwQztJQUNILENBQUM7SUFFTSxJQUFJLENBQUMsUUFBaUI7UUFDM0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1FBRVosSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFTSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1FBRVosSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3BCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUFpQjtRQUM1QyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBRXRDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUVsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxHQUFTLEVBQUU7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQTtnQkFDbEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2IsQ0FBQztTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTTtRQUV4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdEVjcyBmcm9tICdAZGNsL3Nkay9yZWFjdC1lY3MnXG5cbmltcG9ydCB7IFRpbWVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGltZXJVdGlscydcblxuZXhwb3J0IGludGVyZmFjZSBVSU9iamVjdEludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIFVpRW50aXR5LlxuICAgKi9cbiAgcmVuZGVyKGtleT86IHN0cmluZyk6IFJlYWN0RWNzLkpTWC5FbGVtZW50XG5cbiAgLyoqXG4gICAqIE1ha2VzIGFuIGludmlzaWJsZSB2aXNpYmxlLlxuICAgKi9cbiAgc2hvdygpOiB2b2lkXG5cbiAgLyoqXG4gICAqIE1ha2VzIGFuIGludmlzaWJsZSB2aXNpYmxlIHdpdGggZGVsYXllZCBoaWRpbmcuXG4gICAqL1xuICBzaG93KGR1cmF0aW9uPzogbnVtYmVyKTogdm9pZFxuXG4gIC8qKlxuICAgKiBNYWtlcyB2aXNpYmxlIGFuIGludmlzaWJsZS5cbiAgICovXG4gIGhpZGUoKTogdm9pZFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBvYmplY3RcbiAgICovXG4gIGlzVmlzaWJsZSgpOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFVJT2JqZWN0Q29uZmlnID0ge1xuICBzdGFydEhpZGRlbj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFVJT2JqZWN0IGltcGxlbWVudHMgVUlPYmplY3RJbnRlcmZhY2Uge1xuICBwcm90ZWN0ZWQgdmlzaWJsZTogYm9vbGVhblxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcih7IHN0YXJ0SGlkZGVuID0gdHJ1ZSB9OiBVSU9iamVjdENvbmZpZykge1xuICAgIHRoaXMudmlzaWJsZSA9ICFzdGFydEhpZGRlblxuICB9XG5cbiAgYWJzdHJhY3QgcmVuZGVyKGtleT86IHN0cmluZyk6IFJlYWN0RWNzLkpTWC5FbGVtZW50XG5cbiAgcHVibGljIHNob3coKTogdm9pZFxuICBwdWJsaWMgc2hvdyhkdXJhdGlvbj86IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9IHRydWVcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBEZWxheWVkSGlkaW5nVUlPYmplY3RDb25maWcgPSBVSU9iamVjdENvbmZpZyAmIHtcbiAgZHVyYXRpb24/OiBudW1iZXJcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlbGF5ZWRIaWRpbmdVSU9iamVjdCBleHRlbmRzIFVJT2JqZWN0IHtcbiAgcHJpdmF0ZSBfdGltZXI6IFRpbWVyIHwgdW5kZWZpbmVkXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNvbmZpZzogRGVsYXllZEhpZGluZ1VJT2JqZWN0Q29uZmlnKSB7XG4gICAgc3VwZXIoY29uZmlnKVxuXG4gICAgY29uc3QgeyBzdGFydEhpZGRlbiwgZHVyYXRpb24gfSA9IGNvbmZpZ1xuXG4gICAgaWYgKCFzdGFydEhpZGRlbiAmJiBkdXJhdGlvbikge1xuICAgICAgdGhpcy5fY3JlYXRlQW5kU3RhcnRUaW1lcihkdXJhdGlvbilcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdyhkdXJhdGlvbj86IG51bWJlcik6IHZvaWQge1xuICAgIHN1cGVyLnNob3coKVxuXG4gICAgdGhpcy5fY3JlYXRlQW5kU3RhcnRUaW1lcihkdXJhdGlvbilcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmhpZGUoKVxuXG4gICAgdGhpcy5fY2xlYXJUaW1lcigpXG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVBbmRTdGFydFRpbWVyKGR1cmF0aW9uPzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCFkdXJhdGlvbiB8fCAhdGhpcy52aXNpYmxlKSByZXR1cm5cblxuICAgIHRoaXMuX2NsZWFyVGltZXIoKVxuXG4gICAgdGhpcy5fdGltZXIgPSBuZXcgVGltZXIoe1xuICAgICAgc2Vjb25kczogZHVyYXRpb24sXG4gICAgICBjYWxsYmFjazogKCk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnZW5kIHRpbWVyIGNhbGxiYWNrX19fX19fX19fX19fX19fX18nKVxuICAgICAgICB0aGlzLmhpZGUoKVxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgdGhpcy5fdGltZXIuc3RhcnQoKVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJUaW1lcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RpbWVyKSByZXR1cm5cblxuICAgIHRoaXMuX3RpbWVyLnN0b3AoKVxuICB9XG59XG4iXX0=