{"version":3,"names":["LivelyGenericSearch","__SystemJSRewritingHack","_export","setters","_reactiveJsx","_childSpread","childSpread","_childElement","childElement","_attributeExpression","attributeExpression","_attributeStringLiteral","attributeStringLiteral","_childExpression","childExpression","_children","children","_attributes","attributes","_element","element","_srcComponentsWidgetsLivelyMorphJs","Morph","default","_srcClientFileindexJs","FileIndex","_srcClientGraphicsJs","pt","execute","_recorder_","_src_components_tools_lively_generic_search_js","Object","defineProperty","get","globalThis","systemActivity","set","thisIsVererySecretVariableName","enumerable","configurable","input","outer","inner","list","initialize","windowTitle","startSearching","calculateListToShow","throttle","setupInput","lively","html","registerKeys","addEventListener","close","evt","onClick","init","onKeyInput","inputChanged","remove","e","keyActions","Map","jumpToSelectedItem","getOrCreate","keyCode","onUpDown","stopPropagation","preventDefault","currentItem","nextItem","previousElementSibling","getAllSubmorphs","last","classList","add","onDownDown","nextElementSibling","first","jumpToItem","item","openBrowser","getAttribute","shiftKey","composedPath","find","ea","contains","setFocus","focus","setPosition","files","getFiles","searchRoots","_roots","preferences","result","current","db","each","file","push","pattern","value","search","RegExp","filteredFiles","filter","url","startsWith","lively4url","relativePath","replace","match","inSearchRoot","cutFiles","slice","updateList","filesToDisplay","innerHTML","forEach","name","length","regex","text","realResult","realStart","counter","exec","start","index","l","normal","substring","end","column","line","highlight","appendChild","querySelector","onKeyDown","livelyPreMigrate","livelyMigrate","other","livelyInspect","contentNode","inspector"],"sources":["lively-generic-search.js"],"sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\nimport FileIndex from \"src/client/fileindex.js\";\nimport { pt } from 'src/client/graphics.js';\n\nexport default class LivelyGenericSearch extends Morph {\n  get input() { return this.get('#input'); }\n  get outer() { return this.get('#outer'); }\n  get inner() { return this.get('#inner'); }\n  get list() { return this.get('#list'); }\n  \n  // #TODO: mark as meta\n  async initialize() {\n    this.windowTitle = \"LivelyGenericSearch\";\n\n    this.startSearching = (() => this.calculateListToShow()).throttle(300);\n    this.setupInput();\n\n    lively.html.registerKeys(this); // automatically installs handler for some methods\n\n    this.addEventListener(\"focusout\", () => this.close())\n    this.addEventListener(\"click\", evt => this.onClick(evt))\n    this.init()\n  }\n    \n  setupInput() {\n    this.input.addEventListener(\"keyup\", evt => {\n      this.onKeyInput(evt);\n    });\n    this.input.addEventListener('input', evt => this.inputChanged(evt));\n  }\n\n  inputChanged(evt) {\n    // lively.success('input is now ${this.input.value}', evt)\n    this.startSearching()\n  }\n  \n  close() {\n    try {\n      this.remove()\n    } catch(e) {\n      // no errors please..\n    }\n  }\n  \n  onKeyInput(evt) {\n    const keyActions = new Map([\n      [13, evt => {\n        this.jumpToSelectedItem(evt);\n        this.close();\n      }], // ENTER\n      [27, evt => this.close()], // ESCAPE\n    ]);\n    \n    keyActions.getOrCreate(evt.keyCode, keyCode => evt => {})(evt);\n  }\n  \n  onUpDown(evt) {\n    evt.stopPropagation();\n    evt.preventDefault();\n\n    const currentItem = this.get('.selected')\n    if (!currentItem) { return; }\n    \n    const nextItem = currentItem.previousElementSibling || this.getAllSubmorphs('.item').last;\n    if(!nextItem) { return; }\n    \n    currentItem.classList.remove('selected')\n    nextItem.classList.add('selected')\n  }\n  onDownDown(evt) {\n    evt.stopPropagation();\n    evt.preventDefault();\n    \n    const currentItem = this.get('.selected')\n    if (!currentItem) { return; }\n    \n    var nextItem = currentItem.nextElementSibling || this.getAllSubmorphs('.item').first;\n    if(!nextItem) { return; }\n    \n    currentItem.classList.remove('selected')\n    nextItem.classList.add('selected')\n  }\n  \n  async jumpToSelectedItem(evt) {\n    this.jumpToItem(this.get('.selected'), evt)\n  }\n  \n  async jumpToItem(item, evt) {\n    if (!item) return\n    lively.openBrowser(item.getAttribute('file'), !evt.shiftKey);\n    this.close()\n  }\n  \n  \n  onClick(evt) {\n    var item =  evt.composedPath().find(ea => ea.classList.contains(\"item\"))\n    this.jumpToItem(item, evt)\n  }\n  \n  setFocus() {\n    this.input.focus();\n  }\n  init() {\n    lively.setPosition(this, pt(500, 100), 'fixed')\n    this.files = this.getFiles();\n    this.startSearching();\n  }\n\n  get searchRoots() {\n    if (!this._roots) {\n      this._roots = lively.preferences.get(\"ExtraSearchRoots\") \n    } \n    return this._roots\n  }\n  \n  async getFiles() {\n    var result = [];\n    await FileIndex.current().db.files.each(file => result.push(file));\n    return result;\n  }\n  \n  async calculateListToShow() {\n    var pattern = this.input.value;\n    var search = new RegExp(pattern, 'ig');\n\n    const filteredFiles = (await this.files).filter(file => {\n      if (file.url.startsWith(lively4url)) {\n        const relativePath = file.url.replace(/.*\\//ig, '');\n        return relativePath.match(search);\n      } else {\n        var inSearchRoot = this.searchRoots.find(ea => file.url.startsWith(ea)) \n        if (inSearchRoot) {\n          const relativePath = file.url.replace(/.*\\//ig, '');\n          return relativePath.match(search);\n        }\n        return false;\n      }\n    });\n    \n    const cutFiles = filteredFiles.slice(0, 50);\n    this.updateList(cutFiles);\n  }\n  async updateList(filesToDisplay) {\n    this.list.innerHTML = '';\n    filesToDisplay = filesToDisplay.slice(0,50)\n    \n    filesToDisplay.forEach(file => {\n      let name = file.url\n      var inSearchRoot = this.searchRoots.find(ea => file.url.startsWith(ea)) \n      if (inSearchRoot) {\n        name = name.replace(inSearchRoot, '')\n      } else {\n        name = name.replace(lively4url, '')        \n      }\n      \n      if (this.input.value.length >= 3) {\n        var regex = new RegExp(this.input.value, 'ig')\n        var text = name;\n        const realResult = [];\n        var result;\n        var realStart = 0\n        var counter = 0\n        while((result = regex.exec(text)) !== null) {\n          var start = result.index\n          var l = result[0].length\n\n          var normal = <span>{text.substring(realStart, start)}</span>\n          var highlight = <span style=\"color: red\">{result[0]}</span>\n              realResult.push(normal)\n              realResult.push(highlight)\n          realStart = start+l\n          if (counter++ > 10) {break;}\n        }\n        realResult.push(<span>{text.substring(realStart, text.length)}</span>)\n\n\n        this.list.appendChild(<div class=\"item\" file={file.url}><span>{...realResult}</span></div>); \n      } else {\n        this.list.appendChild(<div class=\"item\" file={file.url}><span>{name}</span></div>); \n      }\n    });\n    const first = this.list.querySelector('.item')\n    if (first) {\n      first.classList.add('selected');\n    }\n  }\n  \n  // this method is autmatically registered through the ``registerKeys`` method\n  onKeyDown(evt) {\n    // lively.notify(\"Key Down: \" + evt.charCode)\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    this.input.value = other.input.value;\n    this.input.focus();\n  }\n  \n  livelyInspect(contentNode, inspector) {\n    // do nothing\n  }\n}"],"mappings":"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"}