{"version":3,"file":"ngx-masonry.mjs","sources":["../../../projects/ngx-masonry/src/lib/ngx-masonry.component.ts","../../../projects/ngx-masonry/src/lib/ngx-masonry.directive.ts","../../../projects/ngx-masonry/src/lib/ngx-masonry.module.ts","../../../projects/ngx-masonry/src/public-api.ts","../../../projects/ngx-masonry/src/ngx-masonry.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Inject, Input, OnChanges, OnDestroy, OnInit, Output, PLATFORM_ID, SimpleChanges } from '@angular/core';\nimport { NgxMasonryOptions } from './ngx-masonry-options';\nimport { NgxMasonryDirective } from './ngx-masonry.directive';\n\ndeclare var require: any;\nlet masonryConstructor: any;\n\n@Component({\n  selector: '[ngx-masonry], ngx-masonry',\n  template: '<ng-content></ng-content>',\n  styles: [\n    `\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`\n  ]\n})\nexport class NgxMasonryComponent implements OnInit, OnChanges, OnDestroy {\n  constructor(@Inject(PLATFORM_ID) private platformId: any, private _element: ElementRef) {}\n\n  public masonryInstance: any;\n\n  // Inputs\n  @Input() public options: NgxMasonryOptions;\n  @Input() updateLayout = false;\n  @Input() ordered = false;\n\n  // Outputs\n  @Output() layoutComplete: EventEmitter<any[]> = new EventEmitter<any[]>();\n  @Output() removeComplete: EventEmitter<any[]> = new EventEmitter<any[]>();\n  @Output() itemsLoaded: EventEmitter<number> = new EventEmitter<number>();\n\n  private pendingItems = [];\n\n  ngOnInit() {\n\n    if (isPlatformBrowser(this.platformId) && masonryConstructor === undefined) {\n      masonryConstructor = require('masonry-layout');\n    }\n\n    // Create masonry options object\n    if (!this.options) {\n      this.options = {};\n    }\n\n    // Set default itemSelector\n    if (!this.options.itemSelector) {\n      this.options.itemSelector = '[ngxMasonryItem], ngxMasonryItem';\n    }\n\n    this.options['transitionDuration'] = '0s';\n\n    if (isPlatformBrowser(this.platformId)) {\n      // Initialize Masonry\n      this.masonryInstance = new masonryConstructor(this._element.nativeElement, this.options);\n\n      // Bind to events\n      this.masonryInstance.on('layoutComplete', (items: any) => {\n        this.layoutComplete.emit(items);\n      });\n      this.masonryInstance.on('removeComplete', (items: any) => {\n        this.removeComplete.emit(items);\n      });\n      this.masonryInstance.items=[];\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    // only update layout if it's not the first change\n    if (changes.updateLayout) {\n      if (!changes.updateLayout.firstChange) {\n        this.layout();\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.masonryInstance) {\n      this.masonryInstance.destroy();\n    }\n  }\n\n  public layout() {\n    setTimeout(() => {\n      this.masonryInstance.layout();\n    });\n  }\n\n  public reloadItems() {\n    setTimeout(() => {\n      this.masonryInstance.reloadItems();\n    });\n  }\n\n  public addPendingItem(item: NgxMasonryDirective) {\n    this.pendingItems.push(item);\n  }\n\n  public add(newItem: NgxMasonryDirective) {\n    if (this.ordered) {\n      for (const [index, item] of this.pendingItems.entries()) {\n        if (item) {\n          if (item.images && item.images.size === 0) {\n            this.pendingItems[index] = undefined;\n            this.itemLoaded(item);\n            if (index + 1 === this.pendingItems.length) {\n              // All items are loaded\n              this.itemsLoaded.emit(this.pendingItems.length);\n              this.pendingItems = [];\n            }\n          } else {\n            return;\n          }\n        }\n      }\n    } else {\n      this.itemLoaded(newItem);\n    }\n  }\n\n  private itemLoaded(item: NgxMasonryDirective) {\n    if(isPlatformBrowser(this.platformId)){\n      // Tell Masonry that a child element has been added\n      if (item.prepend) {\n        this.masonryInstance.prepended(item.element.nativeElement);\n      } else {\n        this.masonryInstance.appended(item.element.nativeElement);\n      }\n\n      // Check if first item\n      if (this.masonryInstance.items.length === 1) {\n          this.masonryInstance.layout();\n      }\n      item.playAnimation(true);\n    }\n  }\n\n  public remove(element: HTMLElement) {\n    if (isPlatformBrowser(this.platformId)) {\n      // Tell Masonry that a child element has been removed\n      this.masonryInstance.remove(element);\n\n      // Layout items\n      this.layout();\n    }\n  }\n}\n","import { Directive, Inject, ElementRef, forwardRef, OnDestroy, AfterViewInit, Renderer2, OnInit, Input } from '@angular/core';\nimport { style, animate, AnimationBuilder } from '@angular/animations';\n\nimport { NgxMasonryComponent } from './ngx-masonry.component';\nimport { NgxMasonryAnimations } from './ngx-masonry-options';\n\n@Directive({\n  selector: '[ngxMasonryItem], ngxMasonryItem'\n})\nexport class NgxMasonryDirective implements OnInit, OnDestroy, AfterViewInit {\n  @Input() prepend = false;\n\n  public images: Set<HTMLImageElement>;\n  private animations: NgxMasonryAnimations = {\n    show: [\n      style({opacity: 0}),\n      animate('400ms ease-in', style({opacity: 1})),\n    ],\n    hide: [\n      style({opacity: '*'}),\n      animate('400ms ease-in', style({opacity: 0})),\n    ]\n  };\n\n  constructor(\n    public element: ElementRef,\n    private builder: AnimationBuilder,\n    @Inject(forwardRef(() => NgxMasonryComponent)) private parent: NgxMasonryComponent,\n    private renderer: Renderer2,\n  ) {}\n\n  ngOnInit() {\n    if (this.parent.options.animations !== undefined) {\n      this.animations = this.parent.options.animations;\n    }\n    this.renderer.setStyle(this.element.nativeElement, 'position', 'fixed');\n    this.renderer.setStyle(this.element.nativeElement, 'right', '-150vw');\n    this.parent.addPendingItem(this);\n  }\n\n  ngAfterViewInit() {\n    const images: HTMLImageElement[] = Array.from(this.element.nativeElement.getElementsByTagName('img'));\n    this.images = new Set(images);\n    if (images.length === 0) {\n      setTimeout(() => {\n        this.parent.add(this);\n      });\n    } else {\n      for (const imageRef of images) {\n        // skip image render check if image has `masonryLazy` attribute\n        if (imageRef.hasAttribute('masonryLazy')) {\n            this.imageLoaded(imageRef);\n        } else { \n          this.renderer.listen(imageRef, 'load', _ => {\n            this.imageLoaded(imageRef);\n          });\n          this.renderer.listen(imageRef, 'error', _ => {\n            this.imageLoaded(imageRef);\n          });\n        }\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.images && this.images.size === 0 && this.element.nativeElement.parentNode) {\n      this.playAnimation(false);\n      this.parent.remove(this.element.nativeElement);\n    }\n  }\n\n  private imageLoaded(image?: HTMLImageElement) {\n    this.images.delete(image);\n    if (this.images.size === 0) {\n      this.parent.add(this);\n    }\n  }\n\n  public playAnimation(show: boolean) {\n    const metadata = show ? this.animations.show : this.animations.hide;\n    if (metadata) {\n      const player = this.builder.build(metadata).create(this.element.nativeElement);\n      player.play();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxMasonryComponent } from './ngx-masonry.component';\nimport { NgxMasonryDirective } from './ngx-masonry.directive';\n\n@NgModule({\n  imports: [],\n  declarations: [NgxMasonryComponent, NgxMasonryDirective],\n  exports: [NgxMasonryComponent, NgxMasonryDirective]\n})\nexport class NgxMasonryModule {}\n","/*\n * Public API Surface of ngx-masonry\n */\n\nexport * from './lib/ngx-masonry.component';\nexport * from './lib/ngx-masonry.directive';\nexport * from './lib/ngx-masonry-options';\nexport * from './lib/ngx-masonry.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}