{"version":3,"file":"ngx-data-loader.mjs","sources":["../../../projects/ngx-data-loader/src/lib/loading/loading.component.ts","../../../projects/ngx-data-loader/src/lib/loading/loading.component.html","../../../projects/ngx-data-loader/src/lib/error/error.component.ts","../../../projects/ngx-data-loader/src/lib/error/error.component.html","../../../projects/ngx-data-loader/src/lib/loaded/loaded.component.ts","../../../projects/ngx-data-loader/src/lib/loaded/loaded.component.html","../../../projects/ngx-data-loader/src/lib/ngx-data-loader.component.ts","../../../projects/ngx-data-loader/src/lib/ngx-data-loader.component.html","../../../projects/ngx-data-loader/src/lib/ngx-data-loader.module.ts","../../../projects/ngx-data-loader/src/public-api.ts","../../../projects/ngx-data-loader/src/ngx-data-loader.ts"],"sourcesContent":["import { Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { delay, Observable, of } from 'rxjs';\n\n@Component({\n  selector: 'ngx-data-loader-loading',\n  templateUrl: './loading.component.html',\n  styleUrls: ['./loading.component.scss'],\n})\nexport class LoadingComponent implements OnInit {\n  @Input() loadingTemplate?: TemplateRef<unknown>;\n  @Input() loadingTemplateDelay = 0;\n  showTemplate$!: Observable<boolean>;\n\n  ngOnInit(): void {\n    this.showTemplate$ = of(true).pipe(delay(this.loadingTemplateDelay));\n  }\n}\n","<ng-container *ngIf=\"showTemplate$ | async\">\n  <ng-container\n    *ngTemplateOutlet=\"loadingTemplate || defaultloadingTemplate\"\n  ></ng-container>\n</ng-container>\n\n<ng-template #defaultloadingTemplate>\n  <!-- no initial loading template provided -->\n</ng-template>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n} from '@angular/core';\n\n@Component({\n  selector: 'ngx-data-loader-error',\n  templateUrl: './error.component.html',\n  styleUrls: ['./error.component.scss'],\n})\nexport class ErrorComponent {\n  @Input() errorTemplate?: TemplateRef<unknown>;\n  @Input() error?: Error | null;\n  @Output() reload = new EventEmitter<void>();\n\n  retry = () => this.reload.emit();\n}\n","<ng-container\n  *ngTemplateOutlet=\"\n    errorTemplate || defaultErrorTemplate;\n    context: { $implicit: error, retry: retry }\n  \"\n></ng-container>\n\n<ng-template #defaultErrorTemplate>\n  <!-- no error template provided -->\n</ng-template>\n","import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n  selector: 'ngx-data-loader-loaded',\n  templateUrl: './loaded.component.html',\n  styleUrls: ['./loaded.component.scss'],\n})\nexport class LoadedComponent {\n  @Input() loadedTemplate?: TemplateRef<unknown>;\n  @Input() data!: unknown;\n  @Input() loading!: boolean;\n}\n","<ng-container\n  *ngTemplateOutlet=\"\n    loadedTemplate || defaultDataTemplate;\n    context: { $implicit: data, loading: loading }\n  \"\n></ng-container>\n\n<ng-template #defaultDataTemplate>\n  <!-- no data template provided-->\n</ng-template>\n","import {\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { LoadingState, NgxLoadWithDirective } from 'ngx-load-with';\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'ngx-data-loader',\n  templateUrl: './ngx-data-loader.component.html',\n  styleUrls: ['./ngx-data-loader.component.scss'],\n})\nexport class NgxDataLoaderComponent<T = unknown> {\n  @ContentChild('loaded') loadedTemplate?: TemplateRef<unknown>;\n  @ContentChild('error') errorTemplate?: TemplateRef<unknown>;\n  @ContentChild('loading') loadingTemplate?: TemplateRef<unknown>;\n\n  /**\n   * Function that returns an `Observable` of the data to be loaded.\n   * Called on init and on reload.\n   *\n   * @example\n   * loadFn = () => this.http.get('https://example.com/api/data')\n   */\n  // eslint-disable-next-line  @typescript-eslint/no-explicit-any\n  @Input() loadFn!: (args?: any) => Observable<T>;\n\n  /**\n   * Arguments to pass to `loadFn`. Changes to this property will trigger a reload.\n   *\n   * @example\n   * loadFn = () => this.http.get('https://example.com/api/data')\n   */\n  // eslint-disable-next-line  @typescript-eslint/no-explicit-any\n  @Input() loadFnArgs?: any;\n\n  /**\n   * Data to be rendered on init. When set, `loadFn` will not be invoked on init.\n   * The loading state will be set to `loaded`.\n   */\n  @Input() initialData?: T;\n\n  /**\n   * Number of milliseconds to debounce reloads.\n   * @defaultValue `0`                                                                    |\n   */\n  @Input() debounceTime = 0;\n\n  /**\n   * Whether to keep displaying previously loaded data while reloading.\n   * @defaultValue `false`\n   */\n  @Input() showStaleData = false;\n\n  /**\n   * Delay in milliseconds before showing the loading template.\n   * @defaultValue `0`\n   */\n  @Input() loadingTemplateDelay = 0;\n\n  /**\n   * Emits the data when loaded.\n   */\n  @Output() dataLoaded = new EventEmitter<T>();\n\n  /**\n   * Emits the error when the data fails to load.\n   */\n  @Output() loadAttemptFailed = new EventEmitter<Error>();\n\n  /**\n   * Emits when the data loading completes (either successfully or unsuccessfully).\n   */\n  @Output() loadAttemptFinished = new EventEmitter<void>();\n\n  /**\n   * Emits when the data loading starts.\n   */\n  @Output() loadAttemptStarted = new EventEmitter<void>();\n\n  /**\n   * Emits the loading state when it changes.\n   */\n  @Output() loadingStateChange = new EventEmitter<LoadingState<T>>();\n\n  @ViewChild('loader', { static: true }) loader!: NgxLoadWithDirective<T>;\n\n  setData(data: T): void {\n    this.loader.setData(data);\n  }\n\n  setError(error: Error): void {\n    this.loader.setError(error);\n  }\n\n  reload(): void {\n    this.loader.load();\n  }\n\n  cancel(): void {\n    this.loader.cancel();\n  }\n}\n","<ng-template\n  #loader=\"ngxLoadWith\"\n  [ngxLoadWith]=\"loadFn\"\n  [ngxLoadWithArgs]=\"loadFnArgs\"\n  [ngxLoadWithErrorTemplate]=\"error\"\n  [ngxLoadWithLoadingTemplate]=\"loading\"\n  [ngxLoadWithDebounceTime]=\"debounceTime\"\n  [ngxLoadWithStaleData]=\"showStaleData\"\n  (loadingStateChange)=\"loadingStateChange.emit($event)\"\n  (loadError)=\"loadAttemptFailed.emit($event)\"\n  (loadFinish)=\"loadAttemptFinished.emit()\"\n  (loadSuccess)=\"dataLoaded.emit($event)\"\n  (loadStart)=\"loadAttemptStarted.emit()\"\n  let-data\n  let-loading=\"loading\"\n>\n  <ngx-data-loader-loaded\n    [loadedTemplate]=\"loadedTemplate\"\n    [data]=\"data\"\n    [loading]=\"loading\"\n  ></ngx-data-loader-loaded>\n</ng-template>\n\n<ng-template #error let-error>\n  <ngx-data-loader-error\n    [error]=\"error\"\n    [errorTemplate]=\"errorTemplate\"\n    (reload)=\"loader.load()\"\n  ></ngx-data-loader-error>\n</ng-template>\n\n<ng-template #loading>\n  <ngx-data-loader-loading\n    [loadingTemplateDelay]=\"loadingTemplateDelay\"\n    [loadingTemplate]=\"loadingTemplate\"\n  ></ngx-data-loader-loading>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxLoadWithModule } from 'ngx-load-with';\nimport { ErrorComponent } from './error/error.component';\nimport { LoadedComponent } from './loaded/loaded.component';\nimport { LoadingComponent } from './loading/loading.component';\nimport { NgxDataLoaderComponent } from './ngx-data-loader.component';\n\n@NgModule({\n  declarations: [\n    NgxDataLoaderComponent,\n    LoadingComponent,\n    ErrorComponent,\n    LoadedComponent,\n  ],\n  exports: [NgxDataLoaderComponent],\n  imports: [CommonModule, NgxLoadWithModule],\n})\nexport class NgxDataLoaderModule {}\n","/*\n * Public API Surface of ngx-data-loader\n */\n\nexport * from './lib/ngx-data-loader.component';\nexport * from './lib/ngx-data-loader.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.LoadingComponent","i3.ErrorComponent","i4.LoadedComponent"],"mappings":"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"}