{"version":3,"file":"ironsource-fusion-ui-directives-load-more.mjs","sources":["../../../projects/fusion-ui/directives/load-more/load-more.directive.ts","../../../projects/fusion-ui/directives/load-more/load-more.module.ts","../../../projects/fusion-ui/directives/load-more/ironsource-fusion-ui-directives-load-more.ts"],"sourcesContent":["import {Directive, Input, OnInit, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {map, tap} from 'rxjs/operators';\n\n@Directive({\n    selector: '[fusionLoadMore]'\n})\nexport class LoadMoreDirective implements OnInit {\n    @Input() fusionLoadMoreChunkSize = 10;\n    @Input() set fusionLoadMoreOf(value: any[]) {\n        if (!isNullOrUndefined(value)) {\n            this.options$.next(value);\n            this.loadMore$.next(1);\n        }\n    }\n\n    private options$ = new BehaviorSubject<any[]>([]);\n    private loadMore$ = new BehaviorSubject<number>(1);\n    private hasMore$ = new BehaviorSubject<boolean>(false);\n\n    constructor(private templateRef: TemplateRef<any>, private vcr: ViewContainerRef) {}\n\n    ngOnInit() {\n        this.vcr.createEmbeddedView(this.templateRef, {\n            $implicit: this.buildImplicitObservable(),\n            hasMore$: this.hasMore$.asObservable(),\n            loadMore: this.loadMore.bind(this)\n        });\n    }\n\n    private buildImplicitObservable(): Observable<any[]> {\n        return combineLatest([this.options$.asObservable(), this.loadMore$.asObservable()]).pipe(\n            tap(([options, index]) => this.hasMore$.next(options.length > this.fusionLoadMoreChunkSize * index)),\n            map(([options, index]) => options.slice(0, this.fusionLoadMoreChunkSize * index))\n        );\n    }\n\n    private loadMore() {\n        this.loadMore$.next(this.loadMore$.getValue() + 1);\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LoadMoreDirective} from './load-more.directive';\n\n@NgModule({\n    declarations: [LoadMoreDirective],\n    imports: [CommonModule],\n    exports: [LoadMoreDirective]\n})\nexport class LoadMoreModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}