@codedoc/core
Version:
Create beautiful modern documentation websites.
43 lines • 1.78 kB
JavaScript
;
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