import { CocoComponent } from "@js/coco"; export default CocoComponent("appAlert", () => { return { alert: null, dismissed: false, forceMultiLine: false, dismissDuration: 300, dismiss() { if (this.$options.dismissable) { this.$dispatch("alert:dismiss", { alert: this, duration: this.dismissDuration, }); this.dismissed = true; setTimeout(() => this.remove(), this.dismissDuration); } }, remove() { this.$root.remove(); }, checkSingleLineWrap({ height }) { if (!this.forceMultiLine) { this.forceMultiLine = height > 24 && this.$options.singleLine; } }, root: { "x-options": '["dismissable", "singleLine"]', "x-show": "!dismissed", ":class": "{'force-multi-line': forceMultiLine}", }, }; });