{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-livelyenergy/src/components/widgets/lively-notification.js"],"names":["Morph","lively","Notification","initialize","render","addEventListener","shadowRoot","querySelector","evt","onClose","onMore","counter","title","_title","text","color","style","backgroundColor","colorString","message","_message","more","_more","cb","livelyMigrate","oldInstance","owner","parentElement","remove","hideIfEmpty","textContent","Error","messageContainer","innerHTML","widget","document","createElement","components","openIn","then","stack","hidden"],"mappings":"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","file":"lively-notification.js","sourcesContent":["'use strict';\n\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport lively from 'src/client/lively.js'\n\nexport default class Notification extends Morph {\n  \n  initialize() {\n    this.render()\n    lively.addEventListener(\"lively\", this.shadowRoot.querySelector(\"#closeButton\"), \n      \"click\", evt => this.onClose(evt))\n    lively.addEventListener(\"lively\", this.shadowRoot.querySelector(\"#moreButton\"), \n      \"click\", evt => this.onMore(evt))\n    this.counter = 0\n  }\n  \n  // #TODO get rid of this and replace it with lively.bindings\n  get title() {\n    return this._title\n  }\n  \n  set title(text) {\n    this._title = text\n    this.render()\n  }\n\n  get color() {\n    return this.shadowRoot.querySelector(\"#notification\").style.backgroundColor\n  }\n  \n  set color(colorString) {\n    this.shadowRoot.querySelector(\"#notification\").style.backgroundColor = colorString\n  }\n  \n  get message() {\n    return this._message\n  }\n  \n  set message(text) {\n    this._message = text\n    this.render()\n  }\n  \n  get more() {\n    return this._more\n  }\n  \n  set more(cb) {\n    this._more = cb // callback\n    this.render()\n  }\n\n  livelyMigrate(oldInstance) {\n    // this is crucial state\n    this.title = oldInstance.title\n    this.message = oldInstance.message\n    this.more = oldInstance.more\n  }\n  \n  onClose(evt) {\n    var owner = this.parentElement\n    this.remove();\n    if (owner && owner.hideIfEmpty) {\n      owner.hideIfEmpty();\n    }\n  }\n\n  onMore(evt) {\n    if (this.more)\n      this.more()\n  }\n\n  render() {  \n    this.shadowRoot.querySelector(\"#title\").textContent = this.title\n    if (this.message instanceof Error) {\n      var messageContainer = this.shadowRoot.querySelector(\"#message\")\n      messageContainer.innerHTML = \"\"\n      let widget = document.createElement(\"lively-error\")\n      lively.components.openIn(messageContainer, widget).then( () => {\n        widget.stack =  this.message.stack\n      })\n    } else {\n      this.shadowRoot.querySelector(\"#message\").textContent = this.message\n    }\n    this.shadowRoot.querySelector(\"#moreButton\").hidden = ! this.more\n    \n    if (this.counter > 1) {\n      this.shadowRoot.querySelector(\"#counter\").textContent = this.counter\n    }\n    \n  }\n  \n}"]}