{"version":3,"file":"adjai-ngx-library-src-lib-mix.mjs","sources":["../../../projects/ngx-library/src/lib/mix/directives/stop-propagation.directive.ts","../../../projects/ngx-library/src/lib/mix/directives/prevent-default.directive.ts","../../../projects/ngx-library/src/lib/mix/pipes/date.pipe.ts","../../../projects/ngx-library/src/lib/mix/pipes/inarray.pipe.ts","../../../projects/ngx-library/src/lib/mix/pipes/object-length.pipe.ts","../../../projects/ngx-library/src/lib/mix/directives/journal.directive.ts","../../../projects/ngx-library/src/lib/mix/mix.module.ts","../../../projects/ngx-library/src/lib/mix/validators/custom.validators.ts","../../../projects/ngx-library/src/lib/mix/services/journal.service.ts","../../../projects/ngx-library/src/lib/mix/services/utils.service.ts","../../../projects/ngx-library/src/lib/mix/services/fs.service.ts","../../../projects/ngx-library/src/lib/mix/adjai-ngx-library-src-lib-mix.ts"],"sourcesContent":["import {Directive, ElementRef, Input, OnInit, Renderer2, ViewContainerRef} from \"@angular/core\";\n\n@Directive({\n  selector: '[mxStopPropagation]'\n})\nexport class StopPropagationDirective implements OnInit {\n  @Input('mxStopPropagation') event = ''\n\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2\n  ) {\n\n  }\n\n  ngOnInit(): void {\n    this.event = this.event ? this.event : 'click'\n    this.renderer.listen(this.elementRef.nativeElement, this.event, (event: Event) => {\n      event.stopPropagation()\n    })\n  }\n\n}\n","import {Directive, ElementRef, Input, OnInit, Renderer2} from \"@angular/core\";\n\n@Directive({\n  selector: '[mxPreventDefault]'\n})\nexport class PreventDefaultDirective implements OnInit {\n  @Input('mxPreventDefault') event = ''\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.event = this.event ? this.event : 'mousedown'\n    this.renderer.listen(this.elementRef.nativeElement, this.event, (event: Event) => {\n      event.preventDefault()\n    })\n  }\n\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\nimport moment from 'moment';\n//import * as moment from 'moment';\n\n@Pipe({\n  name: 'mxDate'\n})\nexport class DatePipe implements PipeTransform {\n  transform(date: string | null, format: string = 'DD.MM.YYYY'): any {\n    return moment(date, 'YYYY-MM-DD H:m:s').format(format);\n    //return moment(date, 'YYYY-MM-DD H:m:s').format(format);\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'inarray'\n})\nexport class InarrayPipe implements PipeTransform {\n\n  transform(value: any, ar: any[]): boolean {\n    return ar.indexOf(value) !== (-1);\n  }\n\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n  name: 'mxObjectLength'\n})\nexport class ObjectLengthPipe implements PipeTransform {\n  transform(obj: any): number {\n    return Object.keys(obj).length\n  }\n\n}\n","import {Directive, ElementRef, Input, OnInit, Renderer2} from '@angular/core';\r\nimport {JournalService} from \"../public-api\";\r\n\r\n@Directive({\r\n  selector: '[journal-action]',\r\n})\r\nexport class JournalDirective implements OnInit {\r\n  @Input('journal-action') actionName!: string\r\n  @Input('journal-event') eventType: string = 'click'\r\n  @Input('journal-params') params: {[key: string]: any} | null = null\r\n\r\n  constructor(\r\n    private el: ElementRef,\r\n    private renderer: Renderer2,\r\n    private journalService: JournalService,\r\n  ) { }\r\n\r\n  ngOnInit() {\r\n    this.renderer.listen(this.el.nativeElement, this.eventType, event => {\r\n      this.handleEvent(event)\r\n    })\r\n  }\r\n\r\n  private handleEvent(event: Event) {\r\n    this.journalService.save(this.actionName, this.params)\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StopPropagationDirective } from './directives/stop-propagation.directive';\nimport { PreventDefaultDirective } from './directives/prevent-default.directive';\nimport { DatePipe } from './pipes/date.pipe';\nimport {ReactiveFormsModule} from \"@angular/forms\";\nimport {InarrayPipe} from \"./pipes/inarray.pipe\";\nimport {ObjectLengthPipe} from \"./pipes/object-length.pipe\";\nimport {JournalDirective} from \"./directives/journal.directive\";\n\n@NgModule({\n  declarations: [\n    StopPropagationDirective,\n    JournalDirective,\n    PreventDefaultDirective,\n    DatePipe,\n    ObjectLengthPipe,\n    InarrayPipe,\n  ],\n  exports: [\n    StopPropagationDirective,\n    JournalDirective,\n    PreventDefaultDirective,\n    DatePipe,\n    InarrayPipe,\n    ObjectLengthPipe,\n  ],\n  imports: [\n    ReactiveFormsModule,\n    CommonModule\n  ]\n})\nexport class MixModule { }\n","import {AbstractControl, ValidationErrors} from \"@angular/forms\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class CustomValidators {\r\n\r\n  static childrenControlsAreEqual(message: string): (control: AbstractControl) => (ValidationErrors | null) {\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      const values = Object.keys(control.value).map(key => control.value[key])\r\n      const areEqual = values.every((value, index) => index === 0 || values[index] === values[index - 1])\r\n      if (areEqual) {\r\n        return null\r\n      } else {\r\n        return {\r\n          notEqual: message,\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {ApiService} from \"@adjai/ngx-library/src/lib/api\";\r\nimport {UtilsService} from \"../public-api\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class JournalService {\r\n  constructor(\r\n    private apiService: ApiService,\r\n  ) {\r\n  }\r\n\r\n  save(action: string, params: {[key: string]: any} | null = null): void {\r\n    let referer = localStorage.getItem('jref')\r\n    if (!referer) {\r\n      referer = document.referrer ?? ''\r\n      localStorage.setItem('jref', referer)\r\n    }\r\n    const juidStored = localStorage.getItem('juid')\r\n    const juid = juidStored ?? UtilsService.getRandomString(32, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#!?&*$@^%')\r\n    if (juidStored === null) {\r\n      localStorage.setItem('juid', juid)\r\n    }\r\n    this.apiService.execute('journal', 'save', {\r\n      juid, action, referer, params,\r\n    }).toPromise()\r\n  }\r\n}\r\n","import {ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Type} from \"@angular/core\";\r\nimport {AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup} from \"@angular/forms\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UtilsService {\r\n\r\n  constructor(\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private appRef: ApplicationRef,\r\n    private injector: Injector,\r\n  ) { }\r\n\r\n  injectComponent<T>(component: Type<T>) {\r\n    const componentRef = this.componentFactoryResolver\r\n      .resolveComponentFactory(component)\r\n      .create(this.injector)\r\n    this.appRef.attachView(componentRef.hostView)\r\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement\r\n    document.body.appendChild(domElem)\r\n  }\r\n\r\n  /**\r\n   * Deep clones the given AbstractControl, preserving values, validators, async validators, and disabled status.\r\n   * @param control AbstractControl\r\n   * @returns AbstractControl\r\n   */\r\n  static cloneAbstractControl<T extends AbstractControl>(control: T): T {\r\n    let newControl: T;\r\n\r\n    if (control instanceof UntypedFormGroup) {\r\n      const formGroup = new UntypedFormGroup({}, control.validator, control.asyncValidator);\r\n      const controls = control.controls;\r\n\r\n      Object.keys(controls).forEach(key => {\r\n        formGroup.addControl(key, UtilsService.cloneAbstractControl(controls[key]));\r\n      })\r\n\r\n      newControl = formGroup as any;\r\n    }\r\n    else if (control instanceof UntypedFormArray) {\r\n      const formArray = new UntypedFormArray([], control.validator, control.asyncValidator);\r\n\r\n      control.controls.forEach(formControl => formArray.push(UtilsService.cloneAbstractControl(formControl)))\r\n\r\n      newControl = formArray as any;\r\n    }\r\n    else if (control instanceof UntypedFormControl) {\r\n      newControl = new UntypedFormControl(control.value, control.validator, control.asyncValidator) as any;\r\n    }\r\n    else {\r\n      throw new Error('Error: unexpected control value');\r\n    }\r\n\r\n    if (control.disabled) newControl.disable({emitEvent: false});\r\n\r\n    return newControl;\r\n  }\r\n\r\n  static getRandomString (size: number, charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {\r\n    let result = ''\r\n    for (let index = 0; index < size; index++) {\r\n      result += charset.charAt(Math.random() * 62 | 0)\r\n    }\r\n    return result;\r\n  }\r\n\r\n}\r\n","// https://www.html5rocks.com/en/tutorials/file/filesystem//\r\nimport { Injectable } from '@angular/core';\r\n\r\ndeclare global {\r\n  interface Navigator {\r\n    webkitPersistentStorage: {\r\n      requestQuota: (requestedBytes: number, successfulCallback: (grantedBytes: number) => void, errorCallback?: (error: any) => void) => {}\r\n    }\r\n  }\r\n  interface Window {\r\n    requestFileSystem: any\r\n    webkitRequestFileSystem: any\r\n    PERSISTENT: any\r\n\r\n    resolveLocalFileSystemURL: any\r\n    webkitResolveLocalFileSystemURL: any\r\n  }\r\n}\r\n\r\nexport interface FileData {\r\n  path: string\r\n  data: string\r\n}\r\n\r\nexport interface DOMFileSystem {\r\n  name: string\r\n  root: DirectoryEntry\r\n}\r\n\r\nexport interface DirectoryEntry {\r\n  filesystem: DOMFileSystem\r\n  fullPath: string\r\n  isDirectory: boolean\r\n  isFile: boolean\r\n  name: string\r\n\r\n  getFile: any\r\n  getDirectory: any\r\n  createReader: any\r\n  removeRecursively: any\r\n}\r\n\r\nexport interface FileEntry {\r\n  filesystem: DOMFileSystem\r\n  fullPath: string\r\n  isDirectory: boolean\r\n  isFile: boolean\r\n  name: string\r\n\r\n  createWriter: any\r\n  file: any\r\n  remove: any\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class FsService {\r\n  private fs: DOMFileSystem | undefined\r\n  private quotaSize = 1024 * 1024 * 30\r\n\r\n  constructor() {\r\n\r\n  }\r\n\r\n  private initFs(): Promise<DOMFileSystem | void> {\r\n    return new Promise(resolve => {\r\n      if (this.fs !== undefined) {\r\n        resolve(this.fs)\r\n      } else {\r\n        navigator.webkitPersistentStorage.requestQuota (\r\n          this.quotaSize, (grantedBytes => {\r\n            window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem\r\n            window.requestFileSystem(window.PERSISTENT, grantedBytes, (fs: DOMFileSystem) => {\r\n              this.fs = fs\r\n              resolve(this.fs)\r\n            }, (error: any) => {\r\n              FsService.errorHandler(error)\r\n              resolve()\r\n            });\r\n          }), (error: any) => {\r\n            FsService.errorHandler(error)\r\n            resolve()\r\n          }\r\n        );\r\n      }\r\n    })\r\n  }\r\n\r\n  private static errorHandler(e: any, emessage = '') {\r\n    console.log(e, emessage)\r\n  }\r\n\r\n  readFile(path: string): Promise<string | null> {\r\n    return new Promise(resolve => {\r\n      this.getFileEntry(path).then(file => {\r\n        if (file) {\r\n          resolve(this.readFileEntry(file as FileEntry))\r\n        } else {\r\n          resolve(null)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  readFileEntry(fileEntry: FileEntry): Promise<string | null> {\r\n    return new Promise(resolve => {\r\n      fileEntry.file(function(file: any) {\r\n        const reader = new FileReader();\r\n        reader.onloadend = function(e) {\r\n          resolve(this.result === null ? null : this.result as string)\r\n        };\r\n        reader.readAsText(file);\r\n      }, (error: any) => {\r\n        FsService.errorHandler(error)\r\n        resolve(null)\r\n      });\r\n    })\r\n  }\r\n\r\n  /*private readFile2(filename: string, dir: DirectoryEntry | null = null): Promise<any> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          dir.getFile(filename, {}, function(fileEntry: FileEntry) {\r\n            fileEntry.file(function(file: any) {\r\n              console.log(URL.createObjectURL(file))\r\n              var reader = new FileReader();\r\n              reader.onloadend = function(e) {\r\n                resolve(this.result)\r\n              };\r\n\r\n              reader.readAsText(file);\r\n            }, (error: any) => {\r\n              FsService.errorHandler(error)\r\n              resolve(null)\r\n            });\r\n          }, (error: any) => {\r\n            FsService.errorHandler(error)\r\n            resolve(null)\r\n          });\r\n        } else {\r\n          resolve(null)\r\n        }\r\n      })\r\n    })\r\n  }*/\r\n\r\n  removeFile(path: string): Promise<boolean> {\r\n    return new Promise(resolve => {\r\n      this.getFileEntry(path).then(fileEntry => {\r\n        if (fileEntry) {\r\n          (fileEntry as FileEntry).remove(() => {\r\n            resolve(true)\r\n          }, () => {\r\n            resolve(false)\r\n          })\r\n        } else {\r\n          resolve(false)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  removeFileInDirectory(filename: string, dir: DirectoryEntry | null = null): Promise<boolean> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          this.isFileExistsInDirectory(filename).then(ifExists => {\r\n            if (ifExists) {\r\n              dir.getFile(filename, {create: false}, function (fileEntry: FileEntry) {\r\n                fileEntry.remove(() => {\r\n                  resolve(true)\r\n                }, () => {\r\n                  resolve(false)\r\n                })\r\n              }, (e: any) => {\r\n                FsService.errorHandler(e)\r\n                resolve(false)\r\n              })\r\n            } else {\r\n              resolve(false)\r\n            }\r\n          })\r\n        } else {\r\n          resolve(false)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  removeDirectoryEntry(dir: DirectoryEntry | null = null): Promise<void> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          if (dir.fullPath === '/') {\r\n            const allPromises: Promise<void>[] = []\r\n            this.readDirectoryEntry(dir).then(results => {\r\n              results.forEach(item => {\r\n                if (item.isFile) {\r\n                  allPromises.push(new Promise(itemResolve => {\r\n                    (item as FileEntry).remove(itemResolve)\r\n                  }))\r\n                } else {\r\n                  allPromises.push(new Promise(itemResolve => {\r\n                    (item as DirectoryEntry).removeRecursively(itemResolve)\r\n                  }))\r\n                }\r\n              })\r\n              Promise.all(allPromises).then(() => resolve())\r\n            })\r\n          } else {\r\n            dir.removeRecursively(resolve)\r\n          }\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  removeDirectory(path: string): Promise<void> {\r\n    return new Promise(resolve => {\r\n      this.getDirectoryEntry(path).then(dir => {\r\n        if (dir) {\r\n          resolve(this.removeDirectoryEntry(dir as DirectoryEntry))\r\n        } else {\r\n          resolve()\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  writeFileEntry(fileEntry: FileEntry, data: string): Promise<FileEntry | null> {\r\n    return new Promise(resolve => {\r\n      fileEntry.createWriter((fileWriter: any) => {\r\n        fileWriter.onerror = (e: any) => {\r\n          FsService.errorHandler(e)\r\n          resolve(null)\r\n        };\r\n\r\n        fileWriter.onwrite = () => {\r\n          resolve(fileEntry)\r\n        }\r\n\r\n        const blob = new Blob([data], {type: 'text/plain'});\r\n        fileWriter.write(blob)\r\n      })\r\n    })\r\n  }\r\n\r\n  /*private writeFile2(filename: string, data: string, dir: DirectoryEntry | null = null): Promise<FileEntry | null> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          this.removeFileInDirectory(filename).then((result) => {\r\n            if (result) {\r\n              dir.getFile(filename, {create: true, exclusive: true}, function(fileEntry: FileEntry) {\r\n                fileEntry.createWriter((fileWriter: any) => {\r\n                  fileWriter.onerror = (e: any) => {\r\n                    resolve(null)\r\n                    FsService.errorHandler(e)\r\n                  };\r\n\r\n                  var blob = new Blob([data], {type: 'text/plain'});\r\n                  fileWriter.write(blob)\r\n                  resolve(fileEntry)\r\n                })\r\n              }, (error: any) => {\r\n                FsService.errorHandler(error)\r\n                resolve(null)\r\n              });\r\n            } else {\r\n              resolve(null)\r\n            }\r\n          })\r\n        } else {\r\n          resolve(null)\r\n        }\r\n      })\r\n    })\r\n  }*/\r\n\r\n  writeFile(path: string, data: string): Promise<FileEntry | null> {\r\n    return new Promise(resolve => {\r\n      this.getFileEntry(path, null, true).then(file => {\r\n        if (file) {\r\n          resolve(this.writeFileEntry(file as FileEntry, data))\r\n        } else {\r\n          resolve(null)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  isFileExists(path: string): Promise<boolean> {\r\n    return new Promise(resolve => {\r\n      this.getFileEntry(path).then(result => {\r\n        resolve(result !== false)\r\n      })\r\n    })\r\n  }\r\n\r\n  isFileExistsInDirectory(filename: string, dir: DirectoryEntry | null = null): Promise<boolean> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          dir.getFile(filename, {create : false}, function() {\r\n            resolve(true);\r\n          }, function() {\r\n            resolve(false);\r\n          });\r\n        } else {\r\n          resolve(false)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  resolveDir(dir: DirectoryEntry | null = null): Promise<DirectoryEntry | null> {\r\n    return new Promise(resolve => {\r\n      if (dir === null) {\r\n        this.initFs().then(fs => {\r\n          if (fs) {\r\n            resolve(fs.root)\r\n          } else {\r\n            resolve(null)\r\n          }\r\n        })\r\n      } else {\r\n        resolve(dir)\r\n      }\r\n    })\r\n  }\r\n\r\n  createDirectory(name: string, dir: DirectoryEntry | null = null): Promise<DirectoryEntry | null> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          dir.getDirectory(name, {create: true}, function(dirEntry: DirectoryEntry) {\r\n            resolve(dirEntry)\r\n          }, (error: any) => {\r\n            FsService.errorHandler(error, `createDirectory ${name}`)\r\n            resolve(null)\r\n          })\r\n        } else {\r\n          resolve(null)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  readDirectory(path: string): Promise<(FileEntry | DirectoryEntry)[] | false> {\r\n    return new Promise(resolve => {\r\n      this.getDirectoryEntry(path).then(dirEntry => {\r\n        if (dirEntry === false) {\r\n          resolve(false)\r\n        } else {\r\n          resolve(this.readDirectoryEntry(dirEntry as DirectoryEntry))\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  readDirectoryEntry(directory: DirectoryEntry): Promise<(FileEntry | DirectoryEntry)[] > {\r\n    return new Promise(resolve => {\r\n      window.resolveLocalFileSystemURL = window.resolveLocalFileSystemURL ||\r\n        window.webkitResolveLocalFileSystemURL;\r\n      const reader = directory.createReader()\r\n      reader.readEntries((result: any) => {\r\n        result.sort((item1: any, item2: any) => {\r\n          return parseInt(item1.name.replace('.json', '')) - parseInt(item2.name.replace('.json', ''))\r\n        })\r\n        resolve(result)\r\n      })\r\n    })\r\n  }\r\n\r\n  getSubEntry(dir: DirectoryEntry, name: string): Promise<FileEntry | DirectoryEntry | null> {\r\n    return new Promise(resolve => {\r\n      this.readDirectoryEntry(dir).then(items => {\r\n        const item = items.find(item => item.name === name)\r\n        resolve(item ? item : null)\r\n      })\r\n    })\r\n  }\r\n\r\n  createFile(dir: DirectoryEntry | null = null, filename: string): Promise<FileEntry | null> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          dir.getFile(filename, {create: true, exclusive: true}, function (fileEntry: FileEntry) {\r\n            resolve(fileEntry)\r\n          }, (error: any) => {\r\n            FsService.errorHandler(error, `create file ${filename}`)\r\n            resolve(null)\r\n          })\r\n        } else {\r\n          resolve(null)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  getEntry<T extends DirectoryEntry | FileEntry>(path: string, dir: DirectoryEntry | null = null, isFile: boolean, ifAutoCreate: boolean): Promise<T | false> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        if (dir) {\r\n          const pathItems = path.split('/').filter(item => item);\r\n          this.getSubEntry(dir, pathItems[0]).then(subentry => {\r\n            if (subentry) {\r\n              if (pathItems.length === 1) {\r\n                if (isFile) {\r\n                  resolve((subentry.isFile ? subentry : false) as T)\r\n                } else {\r\n                  resolve((subentry.isDirectory ? subentry : false) as T)\r\n                }\r\n              } else {\r\n                pathItems.splice(0, 1)\r\n                this.getEntry(pathItems.join('/'), subentry as DirectoryEntry, isFile, ifAutoCreate).then(result => {\r\n                  resolve(result as T)\r\n                })\r\n              }\r\n            } else {\r\n              if (ifAutoCreate) {\r\n                if (pathItems.length === 1 && isFile) {\r\n                  this.createFile(dir, pathItems[0]).then(fileEntry => {\r\n                    resolve(this.getEntry(path, dir, isFile, ifAutoCreate))\r\n                  })\r\n                } else {\r\n                  this.createDirectory(pathItems[0], dir).then(directoryEntry => {\r\n                    resolve(this.getEntry(path, dir, isFile, ifAutoCreate))\r\n                  })\r\n                }\r\n              } else {\r\n                resolve(false)\r\n              }\r\n            }\r\n          })\r\n        } else {\r\n          resolve(false)\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  getFileEntry(path: string, dir: DirectoryEntry | null = null, ifAutoCreate: boolean = false): Promise<FileEntry | false> {\r\n    return this.getEntry(path, dir, true, ifAutoCreate)\r\n  }\r\n\r\n  getDirectoryEntry(path: string, dir: DirectoryEntry | null = null, ifAutoCreate: boolean = false): Promise<DirectoryEntry | false> {\r\n    return this.getEntry(path, dir, false, ifAutoCreate)\r\n  }\r\n\r\n  getTree(dir: DirectoryEntry | null = null): Promise<any> {\r\n    return new Promise(resolve => {\r\n      this.resolveDir(dir).then(dir => {\r\n        const items: any[] = []\r\n        if (dir) {\r\n          this.readDirectoryEntry(dir).then(results => {\r\n            if (!results.length) {\r\n              resolve([])\r\n            }\r\n            results.forEach((itemEntry, itemIndex) => {\r\n              const item: any = {\r\n                name: itemEntry.name,\r\n                isFile: itemEntry.isFile,\r\n              }\r\n              if (itemEntry.isDirectory) {\r\n                this.getTree(itemEntry as DirectoryEntry).then(result => {\r\n                  item.items = result\r\n                  items.push(item)\r\n                  if (itemIndex === results.length - 1) {\r\n                    resolve(items)\r\n                  }\r\n                })\r\n              } else {\r\n                items.push(item)\r\n                if (itemIndex === results.length - 1) {\r\n                  resolve(items)\r\n                }\r\n              }\r\n            })\r\n          })\r\n        }\r\n      })\r\n    })\r\n  }\r\n\r\n  private printFSTreeNode(result: any, ifCollapsed = true, level = 0): void {\r\n    result.forEach((item: any) => {\r\n      const name = item.isFile ? item.name : `[${item.name} (${item.items.length})]`\r\n      if (!item.isFile) {\r\n        if (ifCollapsed) {\r\n          console.groupCollapsed(\"\\t\".repeat(level) + name)\r\n        } else {\r\n          console.group(\"\\t\".repeat(level) + name)\r\n        }\r\n      } else {\r\n        console.log(\"\\t\".repeat(level) + name)\r\n      }\r\n      if (typeof item.items !== 'undefined' && item.items.length > 0) {\r\n        this.printFSTreeNode(item.items, ifCollapsed, level + 1)\r\n      }\r\n      if (!item.isFile) {\r\n        console.groupEnd()\r\n      }\r\n    })\r\n\r\n  }\r\n\r\n  printFSTree(dir: DirectoryEntry | null = null, ifCollapsed = true): void {\r\n    this.getTree().then(result => {\r\n      console.group('FileSystem')\r\n      this.printFSTreeNode(result, ifCollapsed)\r\n      console.groupEnd()\r\n    })\r\n  }\r\n\r\n  writeMultipleFiles(items: FileData[], index = 0, ifLog = false): Promise<void> {\r\n    return new Promise(resolve => {\r\n      const item = items.shift()\r\n      if (item) {\r\n        this.writeFile(item.path, item.data).then(() => {\r\n          if (ifLog) {\r\n            console.log(index + 1, item.path)\r\n          }\r\n          if (items.length) {\r\n            resolve(this.writeMultipleFiles(items, index + 1, ifLog))\r\n          } else {\r\n            resolve()\r\n          }\r\n        })\r\n      } else {\r\n        resolve()\r\n      }\r\n    })\r\n  }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.JournalService"],"mappings":"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"}