@elderbyte/ngx-starter 18.2.0 → 18.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,19 +20,19 @@ export class FileEntry {
20
20
  /**
21
21
  * Creates an Observable of a File Entry by resolving its FileSystemFileHandle.
22
22
  * @param fileHandle
23
- * @param rootDirectory is needed to build a relative parent
23
+ * @param rootDirectory is needed to build a relative parent. Additionally useful for requesting permissions
24
24
  */
25
25
  static ofFileHandle(fileHandle, rootDirectory) {
26
- return from(fileHandle.getFile()).pipe(combineLatestWith(FileSystemApi.buildRelativeParent(fileHandle, rootDirectory)), map(([file, relativeParent]) => FileEntry.relativeFile(file, relativeParent, fileHandle)));
26
+ return from(fileHandle.getFile()).pipe(combineLatestWith(FileSystemApi.buildRelativeParent(fileHandle, rootDirectory)), map(([file, relativeParent]) => FileEntry.relativeFile(file, relativeParent, fileHandle, rootDirectory)));
27
27
  }
28
28
  /**
29
29
  * Creates a file Entry with a relative parent path
30
30
  */
31
- static relativeFile(file, relativeParent, fileHandle) {
31
+ static relativeFile(file, relativeParent, fileHandle, rootDirectoryHandle) {
32
32
  if (relativeParent && relativeParent.endsWith('/')) {
33
33
  relativeParent = relativeParent.substring(0, relativeParent.length - 1);
34
34
  }
35
- return new FileEntry(file, relativeParent, fileHandle);
35
+ return new FileEntry(file, relativeParent, fileHandle, rootDirectoryHandle);
36
36
  }
37
37
  static toFileMap(entries) {
38
38
  const map = new Map();
@@ -52,10 +52,11 @@ export class FileEntry {
52
52
  * Contains the relative path from the selected folder
53
53
  * to this file. Only relevant if the user has selected a folder.
54
54
  */
55
- relativeParent, fileHandle) {
55
+ relativeParent, fileHandle, rootDirectoryHandle) {
56
56
  this.file = file;
57
57
  this.relativeParent = relativeParent;
58
58
  this.fileHandle = fileHandle;
59
+ this.rootDirectoryHandle = rootDirectoryHandle;
59
60
  this.relativePath = FileEntry.buildRelativePath(relativeParent, file);
60
61
  }
61
62
  /***************************************************************************
@@ -88,4 +89,4 @@ export class FileEntry {
88
89
  return relativeParent;
89
90
  }
90
91
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lbnRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZXMvbGlzdGluZy9maWxlLWVudHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFFcEI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBRTdCLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FDM0IsSUFBSSxFQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFHRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FDeEIsVUFBZ0MsRUFDaEMsYUFBeUM7UUFHdkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEVBQy9FLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUNwRCxJQUFJLEVBQ0osY0FBYyxFQUNkLFVBQVUsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNOLENBQUM7SUFJRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLElBQVUsRUFDVixjQUE2QixFQUM3QixVQUFpQztRQUVqQyxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkQsY0FBYyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFvQjtRQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFvQjtRQUM1QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQWFEOzs7O2dGQUk0RTtJQUU1RSxZQUNrQixJQUFVO0lBQzFCOzs7T0FHRztJQUNhLGNBQTZCLEVBQzdCLFVBQWlDO1FBTmpDLFNBQUksR0FBSixJQUFJLENBQU07UUFLVixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUVqRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7T0FFRztJQUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFzQixFQUFFLElBQVU7UUFDakUsSUFBSSxjQUFjLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTyxjQUFjLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFHTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBVTtRQUMzQyxJQUFJLGNBQWMsR0FBVyxJQUFJLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3BFLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNuRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZnJvbSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3RXaXRoLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RmlsZVN5c3RlbUFwaX0gZnJvbSAnLi4vZmlsZS1zeXN0ZW0tYXBpJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZmlsZSBhbmQgdGhlIHJlbGF0aXZlIHBhdGggd2hlcmUgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGl0LlxuICogVGhpcyBpcyB1c2VmdWwgaWYgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGEgZm9sZGVyIGFuZCBmaWxlc1xuICogYXJlIGxpc3RlZCByZWN1cnNpdmVseS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVFbnRyeSB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmaWxlIEVudHJ5IHdpdGhvdXQgYW4gZXhwbGljaXQgcmVsYXRpdmUgcGFyZW50LlxuICAgKlxuICAgKiBIb3dldmVyLCBkZXBlbmRpbmcgb24gaG93IHRoZSBmaWxlIHdhcyBzZWxlY3RlZCwgc29tZSBicm93c2Vyc1xuICAgKiBlbmNvZGUgdGhlIHJlbGF0aXZlIHBhcmVudCBwYXRoIGluIHRoZSBwcm9wZXJ0eSAnd2Via2l0UmVsYXRpdmVQYXRoJ1xuICAgKiB3aGljaCBpcyBhbHNvIHN1cHBvcnRlZCBieSB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZGaWxlKGZpbGU6IEZpbGUpOiBGaWxlRW50cnkge1xuXG4gICAgcmV0dXJuIEZpbGVFbnRyeS5yZWxhdGl2ZUZpbGUoXG4gICAgICBmaWxlLFxuICAgICAgdGhpcy5idWlsZFJlbGF0aXZlUGFyZW50KGZpbGUpXG4gICAgKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBvZiBhIEZpbGUgRW50cnkgYnkgcmVzb2x2aW5nIGl0cyBGaWxlU3lzdGVtRmlsZUhhbmRsZS5cbiAgICogQHBhcmFtIGZpbGVIYW5kbGVcbiAgICogQHBhcmFtIHJvb3REaXJlY3RvcnkgaXMgbmVlZGVkIHRvIGJ1aWxkIGEgcmVsYXRpdmUgcGFyZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mRmlsZUhhbmRsZShcbiAgICBmaWxlSGFuZGxlOiBGaWxlU3lzdGVtRmlsZUhhbmRsZSxcbiAgICByb290RGlyZWN0b3J5PzogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZVxuICApOiBPYnNlcnZhYmxlPEZpbGVFbnRyeT4ge1xuXG4gICAgICByZXR1cm4gZnJvbShmaWxlSGFuZGxlLmdldEZpbGUoKSkucGlwZShcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgoRmlsZVN5c3RlbUFwaS5idWlsZFJlbGF0aXZlUGFyZW50KGZpbGVIYW5kbGUsIHJvb3REaXJlY3RvcnkpKSxcbiAgICAgICAgbWFwKChbZmlsZSwgcmVsYXRpdmVQYXJlbnRdKSA9PiBGaWxlRW50cnkucmVsYXRpdmVGaWxlKFxuICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgcmVsYXRpdmVQYXJlbnQsXG4gICAgICAgICAgZmlsZUhhbmRsZSkpXG4gICAgICApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZmlsZSBFbnRyeSB3aXRoIGEgcmVsYXRpdmUgcGFyZW50IHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVsYXRpdmVGaWxlKFxuICAgIGZpbGU6IEZpbGUsXG4gICAgcmVsYXRpdmVQYXJlbnQ6IHN0cmluZyB8IG51bGwsXG4gICAgZmlsZUhhbmRsZT86IEZpbGVTeXN0ZW1GaWxlSGFuZGxlXG4gICk6IEZpbGVFbnRyeSB7XG4gICAgaWYgKHJlbGF0aXZlUGFyZW50ICYmIHJlbGF0aXZlUGFyZW50LmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHJlbGF0aXZlUGFyZW50ID0gcmVsYXRpdmVQYXJlbnQuc3Vic3RyaW5nKDAsIHJlbGF0aXZlUGFyZW50Lmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZpbGVFbnRyeShmaWxlLCByZWxhdGl2ZVBhcmVudCwgZmlsZUhhbmRsZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvRmlsZU1hcChlbnRyaWVzOiBGaWxlRW50cnlbXSk6IE1hcDxGaWxlLCBGaWxlRW50cnk+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPEZpbGUsIEZpbGVFbnRyeT4oKTtcbiAgICBlbnRyaWVzLmZvckVhY2goZSA9PiBtYXAuc2V0KGUuZmlsZSwgZSkpO1xuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvRmlsZUFycmF5KGVudHJpZXM6IEZpbGVFbnRyeVtdKTogRmlsZVtdIHtcbiAgICByZXR1cm4gZW50cmllcy5tYXAoZSA9PiBlLmZpbGUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgd2hpY2ggc3BlY2lmaWVzIHRoZSBmaWxlJ3MgcGF0aCByZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5IHNlbGVjdGVkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogc3RyaW5nO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEZpbGUsXG4gICAgLyoqXG4gICAgICogQ29udGFpbnMgdGhlIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgc2VsZWN0ZWQgZm9sZGVyXG4gICAgICogdG8gdGhpcyBmaWxlLiBPbmx5IHJlbGV2YW50IGlmIHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBhIGZvbGRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVsYXRpdmVQYXJlbnQ6IHN0cmluZyB8IG51bGwsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGVIYW5kbGU/OiBGaWxlU3lzdGVtRmlsZUhhbmRsZVxuICApIHtcbiAgICB0aGlzLnJlbGF0aXZlUGF0aCA9IEZpbGVFbnRyeS5idWlsZFJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhcmVudCwgZmlsZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyB3aGljaCBzcGVjaWZpZXMgdGhlIGZpbGUncyBwYXRoIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBidWlsZFJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhcmVudDogc3RyaW5nLCBmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgICBpZiAocmVsYXRpdmVQYXJlbnQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHJlbGF0aXZlUGFyZW50ICsgJy8nICsgZmlsZS5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZS5uYW1lO1xuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRSZWxhdGl2ZVBhcmVudChmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgICBsZXQgcmVsYXRpdmVQYXJlbnQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICBpZiAoZmlsZS53ZWJraXRSZWxhdGl2ZVBhdGgpIHtcbiAgICAgIGlmIChmaWxlLndlYmtpdFJlbGF0aXZlUGF0aC5lbmRzV2l0aChmaWxlLm5hbWUpKSB7XG4gICAgICAgIGNvbnN0IG5hbWVTdGFydCA9IGZpbGUud2Via2l0UmVsYXRpdmVQYXRoLmxlbmd0aCAtIGZpbGUubmFtZS5sZW5ndGg7XG4gICAgICAgIHJlbGF0aXZlUGFyZW50ID0gZmlsZS53ZWJraXRSZWxhdGl2ZVBhdGguc3Vic3RyaW5nKDAsIG5hbWVTdGFydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWxhdGl2ZVBhcmVudCA9IGZpbGUud2Via2l0UmVsYXRpdmVQYXRoO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpdmVQYXJlbnQ7XG4gIH1cbn1cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lbnRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZXMvbGlzdGluZy9maWxlLWVudHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFFcEI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBRTdCLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FDM0IsSUFBSSxFQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFHRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FDeEIsVUFBZ0MsRUFDaEMsYUFBeUM7UUFHdkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEVBQy9FLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUNwRCxJQUFJLEVBQ0osY0FBYyxFQUNkLFVBQVUsRUFDVixhQUFhLENBQUMsQ0FBQyxDQUNsQixDQUFDO0lBQ04sQ0FBQztJQUlEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FDeEIsSUFBVSxFQUNWLGNBQTZCLEVBQzdCLFVBQWlDLEVBQ2pDLG1CQUErQztRQUUvQyxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkQsY0FBYyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFvQjtRQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFvQjtRQUM1QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQWFEOzs7O2dGQUk0RTtJQUU1RSxZQUNrQixJQUFVO0lBQzFCOzs7T0FHRztJQUNhLGNBQTZCLEVBQzdCLFVBQWlDLEVBQ2pDLG1CQUErQztRQVAvQyxTQUFJLEdBQUosSUFBSSxDQUFNO1FBS1YsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE0QjtRQUUvRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7T0FFRztJQUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFzQixFQUFFLElBQVU7UUFDakUsSUFBSSxjQUFjLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTyxjQUFjLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFHTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBVTtRQUMzQyxJQUFJLGNBQWMsR0FBVyxJQUFJLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3BFLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNuRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZnJvbSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3RXaXRoLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RmlsZVN5c3RlbUFwaX0gZnJvbSAnLi4vZmlsZS1zeXN0ZW0tYXBpJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZmlsZSBhbmQgdGhlIHJlbGF0aXZlIHBhdGggd2hlcmUgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGl0LlxuICogVGhpcyBpcyB1c2VmdWwgaWYgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGEgZm9sZGVyIGFuZCBmaWxlc1xuICogYXJlIGxpc3RlZCByZWN1cnNpdmVseS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVFbnRyeSB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmaWxlIEVudHJ5IHdpdGhvdXQgYW4gZXhwbGljaXQgcmVsYXRpdmUgcGFyZW50LlxuICAgKlxuICAgKiBIb3dldmVyLCBkZXBlbmRpbmcgb24gaG93IHRoZSBmaWxlIHdhcyBzZWxlY3RlZCwgc29tZSBicm93c2Vyc1xuICAgKiBlbmNvZGUgdGhlIHJlbGF0aXZlIHBhcmVudCBwYXRoIGluIHRoZSBwcm9wZXJ0eSAnd2Via2l0UmVsYXRpdmVQYXRoJ1xuICAgKiB3aGljaCBpcyBhbHNvIHN1cHBvcnRlZCBieSB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZGaWxlKGZpbGU6IEZpbGUpOiBGaWxlRW50cnkge1xuXG4gICAgcmV0dXJuIEZpbGVFbnRyeS5yZWxhdGl2ZUZpbGUoXG4gICAgICBmaWxlLFxuICAgICAgdGhpcy5idWlsZFJlbGF0aXZlUGFyZW50KGZpbGUpXG4gICAgKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBvZiBhIEZpbGUgRW50cnkgYnkgcmVzb2x2aW5nIGl0cyBGaWxlU3lzdGVtRmlsZUhhbmRsZS5cbiAgICogQHBhcmFtIGZpbGVIYW5kbGVcbiAgICogQHBhcmFtIHJvb3REaXJlY3RvcnkgaXMgbmVlZGVkIHRvIGJ1aWxkIGEgcmVsYXRpdmUgcGFyZW50LiBBZGRpdGlvbmFsbHkgdXNlZnVsIGZvciByZXF1ZXN0aW5nIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mRmlsZUhhbmRsZShcbiAgICBmaWxlSGFuZGxlOiBGaWxlU3lzdGVtRmlsZUhhbmRsZSxcbiAgICByb290RGlyZWN0b3J5PzogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZVxuICApOiBPYnNlcnZhYmxlPEZpbGVFbnRyeT4ge1xuXG4gICAgICByZXR1cm4gZnJvbShmaWxlSGFuZGxlLmdldEZpbGUoKSkucGlwZShcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgoRmlsZVN5c3RlbUFwaS5idWlsZFJlbGF0aXZlUGFyZW50KGZpbGVIYW5kbGUsIHJvb3REaXJlY3RvcnkpKSxcbiAgICAgICAgbWFwKChbZmlsZSwgcmVsYXRpdmVQYXJlbnRdKSA9PiBGaWxlRW50cnkucmVsYXRpdmVGaWxlKFxuICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgcmVsYXRpdmVQYXJlbnQsXG4gICAgICAgICAgZmlsZUhhbmRsZSxcbiAgICAgICAgICByb290RGlyZWN0b3J5KSlcbiAgICAgICk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmaWxlIEVudHJ5IHdpdGggYSByZWxhdGl2ZSBwYXJlbnQgcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWxhdGl2ZUZpbGUoXG4gICAgZmlsZTogRmlsZSxcbiAgICByZWxhdGl2ZVBhcmVudDogc3RyaW5nIHwgbnVsbCxcbiAgICBmaWxlSGFuZGxlPzogRmlsZVN5c3RlbUZpbGVIYW5kbGUsXG4gICAgcm9vdERpcmVjdG9yeUhhbmRsZT86IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGVcbiAgKTogRmlsZUVudHJ5IHtcbiAgICBpZiAocmVsYXRpdmVQYXJlbnQgJiYgcmVsYXRpdmVQYXJlbnQuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgcmVsYXRpdmVQYXJlbnQgPSByZWxhdGl2ZVBhcmVudC5zdWJzdHJpbmcoMCwgcmVsYXRpdmVQYXJlbnQubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRmlsZUVudHJ5KGZpbGUsIHJlbGF0aXZlUGFyZW50LCBmaWxlSGFuZGxlLCByb290RGlyZWN0b3J5SGFuZGxlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9GaWxlTWFwKGVudHJpZXM6IEZpbGVFbnRyeVtdKTogTWFwPEZpbGUsIEZpbGVFbnRyeT4ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8RmlsZSwgRmlsZUVudHJ5PigpO1xuICAgIGVudHJpZXMuZm9yRWFjaChlID0+IG1hcC5zZXQoZS5maWxlLCBlKSk7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9GaWxlQXJyYXkoZW50cmllczogRmlsZUVudHJ5W10pOiBGaWxlW10ge1xuICAgIHJldHVybiBlbnRyaWVzLm1hcChlID0+IGUuZmlsZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyB3aGljaCBzcGVjaWZpZXMgdGhlIGZpbGUncyBwYXRoIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsZTogRmlsZSxcbiAgICAvKipcbiAgICAgKiBDb250YWlucyB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBzZWxlY3RlZCBmb2xkZXJcbiAgICAgKiB0byB0aGlzIGZpbGUuIE9ubHkgcmVsZXZhbnQgaWYgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGEgZm9sZGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSByZWxhdGl2ZVBhcmVudDogc3RyaW5nIHwgbnVsbCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsZUhhbmRsZT86IEZpbGVTeXN0ZW1GaWxlSGFuZGxlLFxuICAgIHB1YmxpYyByZWFkb25seSByb290RGlyZWN0b3J5SGFuZGxlPzogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZVxuICApIHtcbiAgICB0aGlzLnJlbGF0aXZlUGF0aCA9IEZpbGVFbnRyeS5idWlsZFJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhcmVudCwgZmlsZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyB3aGljaCBzcGVjaWZpZXMgdGhlIGZpbGUncyBwYXRoIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBidWlsZFJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhcmVudDogc3RyaW5nLCBmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgICBpZiAocmVsYXRpdmVQYXJlbnQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHJlbGF0aXZlUGFyZW50ICsgJy8nICsgZmlsZS5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZS5uYW1lO1xuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRSZWxhdGl2ZVBhcmVudChmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgICBsZXQgcmVsYXRpdmVQYXJlbnQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICBpZiAoZmlsZS53ZWJraXRSZWxhdGl2ZVBhdGgpIHtcbiAgICAgIGlmIChmaWxlLndlYmtpdFJlbGF0aXZlUGF0aC5lbmRzV2l0aChmaWxlLm5hbWUpKSB7XG4gICAgICAgIGNvbnN0IG5hbWVTdGFydCA9IGZpbGUud2Via2l0UmVsYXRpdmVQYXRoLmxlbmd0aCAtIGZpbGUubmFtZS5sZW5ndGg7XG4gICAgICAgIHJlbGF0aXZlUGFyZW50ID0gZmlsZS53ZWJraXRSZWxhdGl2ZVBhdGguc3Vic3RyaW5nKDAsIG5hbWVTdGFydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWxhdGl2ZVBhcmVudCA9IGZpbGUud2Via2l0UmVsYXRpdmVQYXRoO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpdmVQYXJlbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -9828,19 +9828,19 @@ class FileEntry {
9828
9828
  /**
9829
9829
  * Creates an Observable of a File Entry by resolving its FileSystemFileHandle.
9830
9830
  * @param fileHandle
9831
- * @param rootDirectory is needed to build a relative parent
9831
+ * @param rootDirectory is needed to build a relative parent. Additionally useful for requesting permissions
9832
9832
  */
9833
9833
  static ofFileHandle(fileHandle, rootDirectory) {
9834
- return from(fileHandle.getFile()).pipe(combineLatestWith(FileSystemApi.buildRelativeParent(fileHandle, rootDirectory)), map(([file, relativeParent]) => FileEntry.relativeFile(file, relativeParent, fileHandle)));
9834
+ return from(fileHandle.getFile()).pipe(combineLatestWith(FileSystemApi.buildRelativeParent(fileHandle, rootDirectory)), map(([file, relativeParent]) => FileEntry.relativeFile(file, relativeParent, fileHandle, rootDirectory)));
9835
9835
  }
9836
9836
  /**
9837
9837
  * Creates a file Entry with a relative parent path
9838
9838
  */
9839
- static relativeFile(file, relativeParent, fileHandle) {
9839
+ static relativeFile(file, relativeParent, fileHandle, rootDirectoryHandle) {
9840
9840
  if (relativeParent && relativeParent.endsWith('/')) {
9841
9841
  relativeParent = relativeParent.substring(0, relativeParent.length - 1);
9842
9842
  }
9843
- return new FileEntry(file, relativeParent, fileHandle);
9843
+ return new FileEntry(file, relativeParent, fileHandle, rootDirectoryHandle);
9844
9844
  }
9845
9845
  static toFileMap(entries) {
9846
9846
  const map = new Map();
@@ -9860,10 +9860,11 @@ class FileEntry {
9860
9860
  * Contains the relative path from the selected folder
9861
9861
  * to this file. Only relevant if the user has selected a folder.
9862
9862
  */
9863
- relativeParent, fileHandle) {
9863
+ relativeParent, fileHandle, rootDirectoryHandle) {
9864
9864
  this.file = file;
9865
9865
  this.relativeParent = relativeParent;
9866
9866
  this.fileHandle = fileHandle;
9867
+ this.rootDirectoryHandle = rootDirectoryHandle;
9867
9868
  this.relativePath = FileEntry.buildRelativePath(relativeParent, file);
9868
9869
  }
9869
9870
  /***************************************************************************