@doku-dev/doku-fragment
Version:
A new Angular UI library that moving away from Bootstrap and built from scratch.
44 lines • 5.1 kB
JavaScript
import { TOAST_DURATION } from './toast.constant';
export class DokuActiveToast {
/**
* Dismiss active toast.
*/
dismiss() {
// Business logic will be filled on service
}
}
export class DokuToastRef {
constructor(componentRef, toastElementService, toastData) {
this.componentRef = componentRef;
this.toastElementService = toastElementService;
this.toastData = toastData;
/**
* Instance of the {@link DokuToast} component.
*/
this.instance = this.componentRef.instance;
/**
* Used to clear setTimeout for auto dismiss when it get dismissed before auto dismiss invoked.
*/
this.timeoutId = undefined;
this.result = new Promise((resolve) => {
this._resolve = resolve;
});
}
/**
* Dismiss current toast.
*/
dismiss() {
this.componentRef.destroy();
this.componentRef.changeDetectorRef.detectChanges();
this.toastElementService.removeContainerElement();
this._resolve(null);
clearTimeout(this.timeoutId);
}
startAutoDismiss() {
if (this.toastData.autoDismiss === false)
return;
const duration = this.toastData.duration ?? TOAST_DURATION;
this.timeoutId = setTimeout(() => this.dismiss(), duration);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9rdS1mcmFnbWVudC9zcmMvbGliL3RvYXN0L3RvYXN0LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsTUFBTSxPQUFPLGVBQWU7SUFDMUI7O09BRUc7SUFDSCxPQUFPO1FBQ0wsMkNBQTJDO0lBQzdDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxZQUFZO0lBZXZCLFlBQ1UsWUFBcUMsRUFDckMsbUJBQTRDLEVBQzVDLFNBQXdCO1FBRnhCLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUNyQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFqQmxDOztXQUVHO1FBQ0gsYUFBUSxHQUFjLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRWpEOztXQUVHO1FBQ0ssY0FBUyxHQUFtQyxTQUFTLENBQUM7UUFXNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQztRQUMzRCxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2t1VG9hc3RFbGVtZW50U2VydmljZSB9IGZyb20gJy4vdG9hc3QtZWxlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERva3VUb2FzdCB9IGZyb20gJy4vdG9hc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRPQVNUX0RVUkFUSU9OIH0gZnJvbSAnLi90b2FzdC5jb25zdGFudCc7XG5pbXBvcnQgeyBEb2t1VG9hc3RJdGVtIH0gZnJvbSAnLi90b2FzdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgRG9rdUFjdGl2ZVRvYXN0IHtcbiAgLyoqXG4gICAqIERpc21pc3MgYWN0aXZlIHRvYXN0LlxuICAgKi9cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICAvLyBCdXNpbmVzcyBsb2dpYyB3aWxsIGJlIGZpbGxlZCBvbiBzZXJ2aWNlXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERva3VUb2FzdFJlZiB7XG4gIC8qKlxuICAgKiBJbnN0YW5jZSBvZiB0aGUge0BsaW5rIERva3VUb2FzdH0gY29tcG9uZW50LlxuICAgKi9cbiAgaW5zdGFuY2U6IERva3VUb2FzdCA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNsZWFyIHNldFRpbWVvdXQgZm9yIGF1dG8gZGlzbWlzcyB3aGVuIGl0IGdldCBkaXNtaXNzZWQgYmVmb3JlIGF1dG8gZGlzbWlzcyBpbnZva2VkLlxuICAgKi9cbiAgcHJpdmF0ZSB0aW1lb3V0SWQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiA9IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVzdWx0ITogUHJvbWlzZTx1bmtub3duPjtcblxuICBwcml2YXRlIF9yZXNvbHZlITogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RG9rdVRvYXN0PixcbiAgICBwcml2YXRlIHRvYXN0RWxlbWVudFNlcnZpY2U6IERva3VUb2FzdEVsZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3REYXRhOiBEb2t1VG9hc3RJdGVtXG4gICkge1xuICAgIHRoaXMucmVzdWx0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3MgY3VycmVudCB0b2FzdC5cbiAgICovXG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnRvYXN0RWxlbWVudFNlcnZpY2UucmVtb3ZlQ29udGFpbmVyRWxlbWVudCgpO1xuICAgIHRoaXMuX3Jlc29sdmUobnVsbCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEF1dG9EaXNtaXNzKCkge1xuICAgIGlmICh0aGlzLnRvYXN0RGF0YS5hdXRvRGlzbWlzcyA9PT0gZmFsc2UpIHJldHVybjtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMudG9hc3REYXRhLmR1cmF0aW9uID8/IFRPQVNUX0RVUkFUSU9OO1xuICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmRpc21pc3MoKSwgZHVyYXRpb24pO1xuICB9XG59XG4iXX0=