{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-xray/src/client/search-roots.js"],"names":["_","FileIndex","SearchRoots","getSearchRoots","lively","preferences","get","setSearchRoots","roots","set","addSearchRoot","url","uniq","concat","updateSearchRoot","current","addDirectory","removeSearchRoot","filter","ea","removeDirectory","isSearchRoot","find","updateAllSearchRoots"],"mappings":";;;;;;;AAEOA,O;;AACAC,e;;;;;;;;;;;AADAD,4C;;;;;;;;;;;;;AACAC,oD;;;;;;;AAEQ,YAAMC,WAAN,CAAkB;;AAE/B,eAAOC,cAAP,GAAwB;AACtB,iBAAOC,OAAOC,WAAP,CAAmBC,GAAnB,CAAuB,kBAAvB,CAAP;AACD;;AAED,eAAOC,cAAP,CAAsBC,KAAtB,EAA6B;AAC3B,iBAAOJ,OAAOC,WAAP,CAAmBI,GAAnB,CAAuB,kBAAvB,EAA2CD,KAA3C,CAAP;AACD;;AAED;;;AAGA,eAAOE,aAAP,CAAqBC,GAArB,EAA0B;AACxB,cAAIH,QAAQ,KAAKL,cAAL,EAAZ;AACAK,kBAAQR,EAAEY,IAAF,CAAOJ,MAAMK,MAAN,CAAa,CAACF,GAAD,CAAb,CAAP,CAAR;AACA,eAAKJ,cAAL,CAAoBC,KAApB;AACA,iBAAO,KAAKM,gBAAL,CAAsBH,GAAtB,CAAP;AACD;;AAED,eAAOG,gBAAP,CAAwBH,GAAxB,EAA6B;AAC3B,iBAAOV,UAAUc,OAAV,GAAoBC,YAApB,CAAiCL,GAAjC,CAAP;AACD;;AAED,eAAOM,gBAAP,CAAwBN,GAAxB,EAA6B;AAC3B,cAAIH,QAAQ,KAAKL,cAAL,EAAZ;AACAK,kBAAQA,MAAMU,MAAN,CAAaC,MAAMA,MAAMR,GAAzB,CAAR;AACA,eAAKJ,cAAL,CAAoBC,KAApB;AACAP,oBAAUc,OAAV,GAAoBK,eAApB,CAAoCT,GAApC;AACD;;AAED,eAAOU,YAAP,CAAoBV,GAApB,EAAyB;AACvB,iBAAO,KAAKR,cAAL,GAAsBmB,IAAtB,CAA2BH,MAAMA,MAAMR,GAAvC,CAAP;AACD;;AAED,qBAAaY,oBAAb,GAAoC;;AAElC,eAAI,IAAIJ,EAAR,IAAc,KAAKhB,cAAL,EAAd,EAAqC;AACnC,kBAAM,KAAKW,gBAAL,CAAsBK,EAAtB,CAAN;AACD;AACF;AAxC8B;;yBAAZjB,W;;;;;;;;6BAAAA,4C","file":"search-roots.js","sourcesContent":["/*MD # Search Root Management MD*/\n\nimport _ from 'src/external/lodash/lodash.js' \nimport FileIndex from \"src/client/fileindex.js\"\n\nexport default class SearchRoots {\n  \n  static getSearchRoots() {\n    return lively.preferences.get(\"ExtraSearchRoots\")\n  }\n\n  static setSearchRoots(roots) {\n    return lively.preferences.set(\"ExtraSearchRoots\", roots)\n  }\n  \n  /*\n   * add url to local file index rember to search there  \n   */\n  static addSearchRoot(url) {\n    var roots = this.getSearchRoots()\n    roots = _.uniq(roots.concat([url]))\n    this.setSearchRoots(roots)\n    return this.updateSearchRoot(url)     \n  }\n\n  static updateSearchRoot(url) {\n    return FileIndex.current().addDirectory(url)     \n  }\n\n  static removeSearchRoot(url) {\n    var roots = this.getSearchRoots();\n    roots = roots.filter(ea => ea != url)\n    this.setSearchRoots(roots)\n    FileIndex.current().removeDirectory(url)     \n  }\n\n  static isSearchRoot(url) {\n    return this.getSearchRoots().find(ea => ea == url)\n  }\n  \n  static async updateAllSearchRoots() {\n    \n    for(var ea of this.getSearchRoots()) {\n      await this.updateSearchRoot(ea)\n    }\n  }\n}"]}