{"version":3,"names":["Favorites","toFullURL","url","URL","MAIN_DIRECTORY","toString","removeMainDirectory","fullURL","replace","MATCH_MAIN_DIRECTORY","focalStorage","lively4url","RegExp","STORAGE_KEY","get","urls","getItem","fullURLs","map","set","relativeURLs","setItem","has","includes","add","newFullURL","Set","Array","from","remove","delete","toggle"],"sources":["favorites.js"],"sourcesContent":["import focalStorage from \"src/external/focalStorage.js\"\n\nconst MAIN_DIRECTORY = lively4url + '/';\nconst MATCH_MAIN_DIRECTORY = new RegExp('^' + MAIN_DIRECTORY, 'i');\nconst STORAGE_KEY = 'favorite-files';\n\nfunction toFullURL(url) {\n  return new URL(url, MAIN_DIRECTORY).toString();\n}\n\nfunction removeMainDirectory(fullURL) {\n  return fullURL.replace(MATCH_MAIN_DIRECTORY, '');\n}\n\nexport default class Favorites {\n  static async get() {\n    const urls = await focalStorage.getItem(STORAGE_KEY) || [];\n    const fullURLs = urls.map(toFullURL);\n    return fullURLs;\n  }\n\n  static async set(fullURLs) {\n    const relativeURLs = fullURLs.map(removeMainDirectory);\n    return focalStorage.setItem(STORAGE_KEY, relativeURLs);\n  }\n  \n  static async has(fullURL) {\n    return (await this.get()).includes(fullURL);\n  }\n\n  static async add(newFullURL) {\n    const fullURLs = new Set(await this.get());\n    fullURLs.add(newFullURL)\n    return this.set(Array.from(fullURLs));\n  }\n\n  static async remove(fullURL) {\n    const fullURLs = new Set(await this.get());\n    fullURLs.delete(fullURL)\n    return this.set(Array.from(fullURLs));\n  }\n  \n  static async toggle(fullURL) {\n    if(await this.has(fullURL)) {\n      await this.remove(fullURL);\n    } else {\n      await this.add(fullURL);\n    }\n  }\n}\n"],"mappings":";;;oBAcqBA,SAAS;EAR9B,SAASC,SAAS,CAACC,GAAG,EAAE;IACtB,OAAO,IAAIC,GAAG,CAACD,GAAG,EAAEE,cAAc,CAAC,CAACC,QAAQ,EAAE;EAChD;EAEA,SAASC,mBAAmB,CAACC,OAAO,EAAE;IACpC,OAAOA,OAAO,CAACC,OAAO,CAACC,oBAAoB,EAAE,EAAE,CAAC;EAClD;EAAC;EAAA;IAAA;MAZMC,YAAY;IAAA;IAAA;MAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UAUVJ,oDAAmB;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UAJnBL,0CAAS;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UANXS,6CAAY;UAAA;QAAA;QAAA;QAAA;MAAA;MAEbN,cAAc,GAAGO,UAAU,GAAG,GAAG;MAAA;QAAA;UAAA;QAAA;QAAA;UAAjCP,+CAAc;UAAA;QAAA;QAAA;QAAA;MAAA;MACdK,oBAAoB,GAAG,IAAIG,MAAM,CAAC,GAAG,GAAGR,cAAc,EAAE,GAAG,CAAC;MAAA;QAAA;UAAA;QAAA;QAAA;UAA5DK,qDAAoB;UAAA;QAAA;QAAA;QAAA;MAAA;MACpBI,WAAW,GAAG,gBAAgB;MAAA;QAAA;UAAA;QAAA;QAAA;UAA9BA,4CAAW;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA,mBAUIb,SAAS,GAAf,MAAMA,SAAS,CAAC;QAC7B,aAAac,GAAG,GAAG;UACjB,MAAMC,IAAI,GAAG,OAAML,YAAY,CAACM,OAAO,CAACH,WAAW,CAAC,KAAI,EAAE;UAC1D,MAAMI,QAAQ,GAAGF,IAAI,CAACG,GAAG,CAACjB,SAAS,CAAC;UACpC,OAAOgB,QAAQ;QACjB;QAEA,aAAaE,GAAG,CAACF,QAAQ,EAAE;UACzB,MAAMG,YAAY,GAAGH,QAAQ,CAACC,GAAG,CAACZ,mBAAmB,CAAC;UACtD,OAAOI,YAAY,CAACW,OAAO,CAACR,WAAW,EAAEO,YAAY,CAAC;QACxD;QAEA,aAAaE,GAAG,CAACf,OAAO,EAAE;UACxB,OAAO,CAAC,MAAM,IAAI,CAACO,GAAG,EAAE,EAAES,QAAQ,CAAChB,OAAO,CAAC;QAC7C;QAEA,aAAaiB,GAAG,CAACC,UAAU,EAAE;UAC3B,MAAMR,QAAQ,GAAG,IAAIS,GAAG,CAAC,MAAM,IAAI,CAACZ,GAAG,EAAE,CAAC;UAC1CG,QAAQ,CAACO,GAAG,CAACC,UAAU,CAAC;UACxB,OAAO,IAAI,CAACN,GAAG,CAACQ,KAAK,CAACC,IAAI,CAACX,QAAQ,CAAC,CAAC;QACvC;QAEA,aAAaY,MAAM,CAACtB,OAAO,EAAE;UAC3B,MAAMU,QAAQ,GAAG,IAAIS,GAAG,CAAC,MAAM,IAAI,CAACZ,GAAG,EAAE,CAAC;UAC1CG,QAAQ,CAACa,MAAM,CAACvB,OAAO,CAAC;UACxB,OAAO,IAAI,CAACY,GAAG,CAACQ,KAAK,CAACC,IAAI,CAACX,QAAQ,CAAC,CAAC;QACvC;QAEA,aAAac,MAAM,CAACxB,OAAO,EAAE;UAC3B,IAAG,MAAM,IAAI,CAACe,GAAG,CAACf,OAAO,CAAC,EAAE;YAC1B,MAAM,IAAI,CAACsB,MAAM,CAACtB,OAAO,CAAC;UAC5B,CAAC,MAAM;YACL,MAAM,IAAI,CAACiB,GAAG,CAACjB,OAAO,CAAC;UACzB;QACF;MACF,CAAC;MAAA;QAAA;UAAA;QAAA;QAAA;UAAA,mBAnCoBP,0CAAS;UAAA;QAAA;QAAA;QAAA;MAAA;IAAA;EAAA;AAAA"}