{"version":3,"names":["ComponentCreator","__SystemJSRewritingHack","htmlBeautify","handle","el","info","window","prompt","replace","toLowerCase","now","Date","getFullYear","getMonth","getDate","categories","split","map","cat","trim","tags","tag","createTemplate","rootElement","template","_addSourceLocation","document","createElement","file","end","column","line","start","id","fragment","content","combinedStyle","collectAppliedCssRules","styleElement","innerHTML","appendChild","clone","cloneNode","saveTemplate","serializer","XMLSerializer","templateString","serializeToString","completeHTML","RegExp","templateEditor","componentLoader","createComponent","openInWindow","then","w","setURL","lively4url","setText","style","left","top","jsonEditor","JSON","stringify","styles","styleSheets","i","length","styleSheet","cssRules","j","rule","selector","selectorText","selectorMatchesTree","indexOf","cssText","push","join","matches","children","_export","default","setters","_reactiveJsx","_childExpression","childExpression","_attributeExpression","attributeExpression","_childText","childText","_children","_attributes","attributes","_element","element","addSourceLocation","_componentLoaderJs","_preferencesJs","preferences","_srcExternalMomentJs","moment","_srcClientStringsJs","Strings","execute","_recorder_","_src_client_morphic_component_creator_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","System","import","obj","html_beautify","visitURL","container","url","followPath","editFile","focus","copyTemplate","dir","component","type","templateURL","filename","classname","ea","toUpperCaseFirst","lively","files","existFile","notify","templatejs_src","loadFile","saveFile","createEntry","input","path","getPath","value","leght","Error","match","components","resetTemplatePathCache","createUI","div","placeholder","button","addEventListener","e","errorMsg","message","color","select","listComponentsUI","opts","parse","statFile","testdir","tests","contents","name","list","_","sortBy","filter","forEach","li","span","textContent","a","href","onclick","evt","preventDefault","classFile","find","classLink","testFile","testLink","updateComponentsUI","context","Array","from","querySelectorAll","html","fixLinks","imgFile","img","src","result"],"sources":["component-creator.js"],"sourcesContent":["import * as componentLoader from \"./component-loader.js\";\nimport preferences from '../preferences.js';\nimport moment from \"src/external/moment.js\";\nimport Strings from \"src/client/strings.js\"\n\nvar htmlBeautify;\nSystem.import(lively4url + \"/src/external/beautify-html.js\").then(function(obj){\n    htmlBeautify = obj.html_beautify;\n});\n\nexport function handle(el) {\n  // collect information about the component\n  var info = {};\n  info[\"name\"] = window.prompt(\"unique name (may contain spaces):\");\n  if (!info[\"name\"]) {\n    return;\n  }\n\n  // create html-tag by replacing spaces with '-' and lowercasing\n  info[\"html-tag\"] = \"lively-\" + info[\"name\"].replace(/\\s/g, \"-\").toLowerCase();\n  info[\"description\"] = window.prompt(\"Description:\") || \"\";\n  info[\"author\"] = window.prompt(\"Author:\") || \"\";\n  var now = new Date();\n  // note that getMonth() returns value [0..11]\n  info[\"date-changed\"] = now.getFullYear() + \"-\" + (now.getMonth() + 1) + \"-\" + now.getDate();\n\n  var categories = window.prompt(\"Categories (comma separated):\") || \"\";\n  // split by ',' and remove leading and trailing white-spaces\n  info[\"categories\"] = categories.split(\",\").map((cat) => { return cat.trim().toLowerCase(); });\n\n  var tags = window.prompt(\"Tags (comma separated):\") || \"\";\n  // split by ',' and remove leading and trailing white-spaces\n  info[\"tags\"] = tags.split(\",\").map((tag) => { return tag.trim().toLowerCase(); });\n\n  info[\"template\"] = info[\"html-tag\"] + \".html\";\n\n  createTemplate(el, info);\n}\n\nexport  function createTemplate(rootElement, info) {\n  var template = document.createElement(\"template\");\n  template.id = info[\"html-tag\"];\n\n  var fragment = template.content;\n\n  // collect styles\n  // Maybe we should not filter rules due to dynamically\n  // assigned classes?\n  var combinedStyle = collectAppliedCssRules(rootElement);\n\n  // the host should be displayed as inline-block to have the correct width and height\n  combinedStyle += \"\\n:host {display: inline-block;}\"\n\n  // apply style\n  var styleElement = document.createElement(\"style\");\n  styleElement.innerHTML = combinedStyle;\n  fragment.appendChild(styleElement);\n\n  // clone root\n  var clone = rootElement.cloneNode(true);\n  fragment.appendChild(clone);\n\n  return saveTemplate(template, info);\n}\n\nfunction saveTemplate(template, info) {\n  var serializer = new XMLSerializer();\n\n  var templateString = serializer.serializeToString(template);\n  // fix some bad escaping\n  var completeHTML = (templateString).replace(new RegExp(\"&lt;\", \"g\"),\"<\").replace(new RegExp(\"&gt;\", \"g\") ,\">\");\n\n  // beautify\n  if (typeof htmlBeautify === \"function\") {\n    completeHTML = htmlBeautify(completeHTML);\n  }\n\n  var templateEditor = componentLoader.createComponent(\"lively-editor\");\n  componentLoader.openInWindow(templateEditor).then((w) => {\n    templateEditor.setURL(lively4url + \"/templates/\" + template.id + \".html\");\n    templateEditor.setText(completeHTML);\n    w.style.left = \"0px\";\n    w.style.top = \"0px\";\n  });\n\n  var jsonEditor = componentLoader.createComponent(\"lively-editor\");\n  componentLoader.openInWindow(jsonEditor).then((w) => {\n    jsonEditor.setURL(lively4url + \"/templates/\" + template.id + \".json\");\n    jsonEditor.setText(JSON.stringify(info, null, 2));\n    w.style.left = \"100px\";\n    w.style.top =  \"100px\";\n  });\n\n  return completeHTML;\n}\n\nfunction collectAppliedCssRules(rootElement) {\n  var combinedStyle = [];\n  var styles = document.styleSheets;\n  for (var i = 0; i < styles.length; i++) {\n    var styleSheet = styles[i];\n    if (!styleSheet.cssRules) {\n      continue;\n    }\n    for (var j = 0; j < styleSheet.cssRules.length; j++) {\n      var rule = styleSheet.cssRules[j];\n      var selector = rule.selectorText;\n      // just add those rule that match an element in the subtree\n      if (selectorMatchesTree(selector, rootElement)) {\n        if (combinedStyle.indexOf(rule.cssText) == -1) {\n          combinedStyle.push(rule.cssText);\n        }\n      }\n    }\n  }\n\n  return combinedStyle.join(\"\\n\");\n}\n\nfunction selectorMatchesTree(selector, rootElement) {\n  // conservative css rule collection for now\n\n  // if root matches selector, we are done\n  if (rootElement.matches(selector)) {\n    return true;\n  }\n\n  // if not, check all children\n  for (var i = 0; i < rootElement.children.length; i++) {\n    if (selectorMatchesTree(selector, rootElement.children[i])) {\n      return true;\n    }\n  }\n\n  // if we reach this, none of the tree nodes matches the selector\n  return false;\n}\n\nexport default class ComponentCreator {\n\n  static async visitURL(container, url) {\n    container.followPath(url)\n    await container.editFile(url)\n    container.focus()\n  }\n\n  static async copyTemplate(dir, component, type, templateURL = lively4url + \"/templates/template\") {\n    debugger\n    var filename = component + \".\" + type\n    var classname = component.split(/-/).map(ea => Strings.toUpperCaseFirst(ea)).join(\"\")\n    var url = dir  + \"/\" + filename\n    if (await lively.files.existFile(url)) {\n      lively.notify(\"Could not create \" + url + \", beacuse it already exists!\")\n    } else {\n      var templatejs_src = await lively.files.loadFile(templateURL + \".\" + type)\n      templatejs_src = templatejs_src.replace(/\\$\\$TEMPLATE_CLASS/g, classname)\n      templatejs_src = templatejs_src.replace(/\\$\\$TEMPLATE_ID/g, component)\n      await lively.files.saveFile(url, templatejs_src)\n    }\n  }\n\n  static async createEntry(container, input, templateURL) {\n    var path = \"\" + container.getPath();\n    var dir = path.replace(/[^/]*$/,\"\");\n    var component = input.value\n    if (!component || component.leght == 0) {\n      throw new Error(\"please specify a web component name\")      \n      return\n    }\n    if (!component.match(/-/)) {\n      throw new Error(\"we components must have a '-' (dash) in it's name\")\n    }\n    \n    await this.copyTemplate(dir, component, \"js\", templateURL)\n    await this.copyTemplate(dir, component, \"html\", templateURL)\n    lively.components.resetTemplatePathCache()\n\n    this.visitURL(container, dir + \"/\" + component + \".js\")\n  }\n\n  static  async createUI(container, templateURL) { \n    var div  = document.createElement(\"div\");\n    var input = document.createElement(\"input\");\n    input.placeholder = \"lively-new-component\";\n    div.appendChild(input);\n    var button = document.createElement(\"button\");\n    button.addEventListener(\"click\", async () => {\n      try {\n        await this.createEntry(container, input, templateURL)\n      } catch(e) {\n        errorMsg.innerHTML = \"\" + e.message\n      }\n    });\n    button.innerHTML = \"create\";\n    div.appendChild(button);\n\n    var errorMsg = document.createElement(\"div\")\n    errorMsg.style.color = \"red\"\n    div.appendChild(errorMsg)\n    \n    input.focus();\n    input.select();\n    return div;\n  }\n  \n  static async listComponentsUI(container) {\n    if(!container || !container.getPath) {\n      return \"no container as parentPath\";\n    }\n    var path = \"\" + container.getPath();\n    var dir = path.replace(/[^/]*$/,\"\")\n    var opts = JSON.parse(await lively.files.statFile(dir))\n    var testdir = lively4url + \"/test/templates/\"\n    var tests = JSON.parse(await lively.files.statFile(testdir)).contents.map(ea => ea.name)\n\n    var list = document.createElement(\"ul\")\n    _.sortBy(opts.contents, ea => ea.name)\n      .filter(ea => ea.name.match(/html$/) && ea.name !== \"index.html\")\n      .forEach(ea => {\n        var li = document.createElement(\"li\")\n\n        var span = document.createElement(\"span\")\n        span.textContent = ea.name.replace(/\\.html/,\" \")\n        li.appendChild(span)\n\n        var a = document.createElement(\"a\")\n        a.innerHTML = \"html\"\n        a.href = ea.name\n        a.onclick = (evt) => {\n          evt.preventDefault()\n          container.followPath(dir + \"/\" + ea.name)\n          return true\n        }\n        li.appendChild(a)\n\n        var span = document.createElement(\"span\")\n        span.textContent = \" \"\n        li.appendChild(span)\n\n        var classFile =  ea.name.replace(/\\.html/,\".js\")\n        if (opts.contents.find(ea => ea.name == classFile)) {\n          var classLink = document.createElement(\"a\")\n          classLink.innerHTML = \"js\"\n          classLink.href = classFile\n          classLink.onclick = (evt) => {\n            evt.preventDefault()\n            container.followPath(dir + \"/\" + classFile)\n            return true\n          }\n          li.appendChild(classLink)\n        }\n\n        var span = document.createElement(\"span\")\n        span.textContent = \" \"\n        li.appendChild(span)\n\n        var testFile =  ea.name.replace(/\\.html/,\"-test.js\")\n        if (tests.indexOf(testFile) !== -1) {\n          var testLink = document.createElement(\"a\")\n          testLink.innerHTML = \"test\"\n          testLink.href = testFile\n          testLink.onclick = (evt) => {\n            evt.preventDefault()\n            container.followPath(testdir + \"/\" + testFile)\n            return true\n          }\n          li.appendChild(testLink)\n        }\n\n        list.appendChild(li)\n      })\n    return list\n  }\n  \n  static async  updateComponentsUI(container, context) {\n    if (!container || !container.getPath) {\n      return \"no container as parentPath\";\n    }\n    var path = \"\" + container.getPath();\n    var dir = path.replace(/[^/]*$/, \"\");\n    var opts = JSON.parse((await lively.files.statFile(dir)));\n    var testdir = lively4url + \"/test/templates/\";\n    var tests = JSON.parse((await lively.files.statFile(testdir))).contents.map(ea => ea.name);\n\n    var list = document.createElement(\"pre\")\n    _.sortBy(opts.contents, ea => ea.name).filter(ea => ea.name.match(/html$/) && ea.name !== \"index.html\").forEach(ea => {\n\n      var name = ea.name.replace(/\\.html/,\"\")\n\n      var li = Array.from(context.querySelectorAll(\"li.component\")).find(ea => ea.textContent.match(new RegExp(name + \"( |$)\")))\n      if (!li) {\n        // and here we go.... return markdown source... to be added manually \n        list.textContent += \" - \" +ea.name.replace(/\\.html/, \" \") + ' {.component}\\n'\n        return\n      } else {\n        // console.log(\"INDEX Markdown: found \" + name)\n      }\n\n      li.appendChild((<span> </span>));\n\n      li.appendChild((<a href={\"open://\" + name}>open</a>));\n      li.appendChild((<span> </span>));\n\n      var a = <a href={ea.name}>html</a>;\n      a.onclick = evt => {\n        evt.preventDefault();\n        container.followPath(dir + \"/\" + ea.name);\n        return true;\n      };\n      li.appendChild(a);\n\n      li.appendChild((<span> </span>));\n\n      var classFile = ea.name.replace(/\\.html/, \".js\");\n      if (opts.contents.find(ea => ea.name == classFile)) {\n        var classLink = document.createElement(\"a\");\n        classLink.innerHTML = \"js\";\n        classLink.href = classFile;\n        // classLink.onclick = evt => {\n        //   evt.preventDefault();\n        //   container.followPath(dir + \"/\" + classFile);\n        //   return true;\n        // };\n        li.appendChild(classLink);\n      }\n\n      lively.html.fixLinks(li.querySelectorAll(\"a\"), dir, url => container.followPath(url) )\n\n\n      var span = document.createElement(\"span\");\n      span.textContent = \" \";\n      li.appendChild(span);\n\n      var testFile = ea.name.replace(/\\.html/, \"-test.js\");\n      if (tests.indexOf(testFile) !== -1) {\n        var testLink = document.createElement(\"a\");\n        testLink.innerHTML = \"test\";\n        testLink.href = testFile;\n        testLink.onclick = evt => {\n          evt.preventDefault();\n          container.followPath(testdir + \"/\" + testFile);\n          return true;\n        };\n        li.appendChild(testLink);\n      }\n       li.appendChild(<br></br>);\n       var imgFile = ea.name.replace(/\\.html/, \".png\");\n      if (opts.contents.find(ea => ea.name == imgFile)) {\n        var img = document.createElement(\"img\");\n        img.innerHTML = \"\";\n        img.src = dir + imgFile;\n        // img.onclick = evt => {\n        //   evt.preventDefault();\n        //   container.followPath(dir + \"/\" + classFile);\n        //   return true;\n        // };\n        li.appendChild(img);\n      }\n\n    });\n\n    var result = <div>{list}</div>\n    return result\n  }\n}\n\n"],"mappings":"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"}