UNPKG

@codedoc/core

Version:

Create beautiful modern documentation websites.

43 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Toast = void 0; var rxjs_1 = require("rxjs"); var style_1 = require("./style"); var swipe_1 = require("./swipe"); var misc_1 = require("../../misc"); function Toast(options, renderer, content) { var classes = this.theme.classes(style_1.ToastStyle); var visible = new rxjs_1.BehaviorSubject(false); var container$ = renderer.create("div", { class: classes.container, "data-visible": visible }, renderer.create("div", { class: classes.toast }, renderer.create("div", { class: classes.content }, content), renderer.create("div", { class: classes.actions }, options.actions || '', renderer.create("button", { onclick: function () { return hide(); } }, renderer.create(misc_1.Icon, null, "close"))))); var show = function () { return visible.next(true); }; var hide = function () { visible.next(false); remove(); }; var remove = function () { return setTimeout(function () { return container$.remove(); }, 150); }; var swipe = new swipe_1.ToastSwipe(container$, remove); this.track({ bind: function () { setTimeout(show, 10); if (!('backdropFilter' in container$.style) && !('-webkit-backdrop-filter' in container$.style)) { container$.classList.add('no-blur'); } var timeout = options.timeout || 3000; if (timeout !== -1) { setTimeout(function () { if (!swipe.active()) hide(); }, timeout); } } }); return container$; } exports.Toast = Toast; //# sourceMappingURL=index.js.map