{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-stable/src/components/widgets/lively-mle-table-viewer.js"],"names":["Morph","SocketSingleton","LivelyMleTableViewer","initialize","getAttribute","registerButtons","get","onViewButton","table","socket","v","m","r","status","showError","data","result","appendChild","header","footer","body","k","row","forEach","loading","inputVisible","livelyPrepareSave","setAttribute","livelyPreMigrate","livelyMigrate","other","livelyInspect","contentNode","inspector","livelyExample"],"mappings":"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","file":"lively-mle-table-viewer.js","sourcesContent":["\"enable aexpr\";\n\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport {SocketSingleton} from 'src/components/mle/socket.js';\n\nexport default class LivelyMleTableViewer extends Morph {\n  async initialize() {\n    this.windowTitle = \"MLE Table Inspector\";\n    this.err = !(this.getAttribute(\"showError\") === \"false\");\n    this.registerButtons();\n    if(!(this.getAttribute(\"initSocket\") === \"false\")) this.socket = await SocketSingleton.get();\n  }\n  \n  onViewButton(){\n    this.loading = true;\n    this.socket.emit('getTable', {\n        table: this.shadowRoot.getElementById(\"table\").value          \n      });\n  }\n  \n  set socket(v){\n    this.socket=v;\n    this.socket.on('failure', m => {\n      this.loading = false;\n      if(this.err){\n        this.shadowRoot.getElementById(\"result\").innerHTML = m;\n        this.shadowRoot.getElementById(\"result\").className = \"notification is-danger\";\n      }\n    });\n    this.socket.on('busy', m => {\n      this.loading = false;\n    });\n    this.socket.on('result', (r,status) => {\n      if(status === \"gotTable\"){\n        this.data = r;\n      }\n      if(status === \"executed\"){\n        this.onViewButton();\n      }\n    });\n  }\n  \n  set showError(v){\n    this.err =v;\n  }\n  \n  set data(r){\n    this.loading = false;\n    const result = this.shadowRoot.getElementById(\"result\");\n    result.innerHTML = \"\";\n    result.className = \"\";\n    result.appendChild(<table class=\"table is-hoverable is-fullwidth\">\n      <thead>\n        <tr id=\"header\">\n        </tr>\n      </thead>\n      <tbody id=\"body\"></tbody>\n\n      <tfoot>\n        <tr id=\"footer\">\n        </tr>\n      </tfoot>\n    </table>);\n    const header = this.shadowRoot.getElementById(\"header\");\n    const footer = this.shadowRoot.getElementById(\"footer\");\n    const body = this.shadowRoot.getElementById(\"body\");\n    header.innerHTML = \"\";\n    footer.innerHTML = \"\";\n    body.innerHTML = \"\";\n    r.metaData.forEach(k => {\n      header.appendChild(<th>{k.name}</th>);\n      footer.appendChild(<th>{k.name}</th>);\n    });\n    r.rows.forEach(r => {\n      const row = <tr></tr>;\n      r.forEach(v => row.appendChild(<td>{v}</td>));\n      body.appendChild(row);\n    });    \n  }\n  \n  set loading(v){\n    this.shadowRoot.getElementById(\"table\").disabled = v;\n    this.shadowRoot.getElementById(\"viewButton\").disabled = v;\n    this.shadowRoot.getElementById(\"viewButton\").className = `button is-primary ${v ? \"is-loading\": \"\"}`;\n  }\n  \n  set inputVisible(v){\n    this.shadowRoot.getElementById(\"input\").style.display = v ? \"flex\" :\"none\";\n  }\n\n  /* Lively-specific API */\n\n  // store something that would be lost\n  livelyPrepareSave() {\n    this.setAttribute(\"data-mydata\", this.get(\"#textField\").value)\n  }\n  \n  livelyPreMigrate() {\n    // is called on the old object before the migration\n  }\n  \n  livelyMigrate(other) {\n    // whenever a component is replaced with a newer version during development\n    // this method is called on the new object during migration, but before initialization\n  }\n  \n  livelyInspect(contentNode, inspector) {\n    // do nothing\n  }\n  \n  async livelyExample() {\n    // this customizes a default instance to a pretty example\n    // this is used by the \n  }\n  \n  \n}"]}