UNPKG

ngm-masonry

Version:

Angular Module for displaying a feed of items in a masonry layout using https://github.com/glebmlk/ngx-masonry

118 lines 8.86 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { isPlatformBrowser } from '@angular/common'; import { Directive, ElementRef, forwardRef, Inject, PLATFORM_ID, } from '@angular/core'; import { NgmMasonryComponent } from './ngm-masonry.component'; /** * @record */ function IMutationWindow() { } if (false) { /** @type {?} */ IMutationWindow.prototype.MutationObserver; /** @type {?} */ IMutationWindow.prototype.WebKitMutationObserver; } var NgmMasonryDirective = /** @class */ (function () { function NgmMasonryDirective(_element, _parent, platformId) { this._element = _element; this._parent = _parent; this.platformId = platformId; } /** * @return {?} */ NgmMasonryDirective.prototype.ngAfterViewInit = /** * @return {?} */ function () { if (isPlatformBrowser(this.platformId)) { this._parent.add(this._element.nativeElement); this.watchForHtmlChanges(); } }; /** * @return {?} */ NgmMasonryDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { if (isPlatformBrowser(this.platformId)) { this._parent.remove(this._element.nativeElement); if (!!this._observer) { this._observer.disconnect(); } } }; /** When HTML in brick changes dynamically, observe that and change layout */ /** * When HTML in brick changes dynamically, observe that and change layout * @private * @return {?} */ NgmMasonryDirective.prototype.watchForHtmlChanges = /** * When HTML in brick changes dynamically, observe that and change layout * @private * @return {?} */ function () { var _this = this; MutationObserver = window.MutationObserver || window.WebKitMutationObserver; if (MutationObserver) { this._observer = new MutationObserver(function () { requestAnimationFrame(function () { _this._parent.layout(); }); }); } if (!!this._observer) { // define what element should be observed by the observer // and what types of mutations trigger the callback this._observer.observe(this._element.nativeElement, { subtree: true, childList: true, attributes: true, attributeFilter: ['src'], }); } }; NgmMasonryDirective.decorators = [ { type: Directive, args: [{ selector: '[ngmMasonryItem], ngmMasonryItem', },] } ]; /** @nocollapse */ NgmMasonryDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: NgmMasonryComponent, decorators: [{ type: Inject, args: [forwardRef(function () { return NgmMasonryComponent; }),] }] }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; }; return NgmMasonryDirective; }()); export { NgmMasonryDirective }; if (false) { /** * @type {?} * @private */ NgmMasonryDirective.prototype._observer; /** * @type {?} * @private */ NgmMasonryDirective.prototype._element; /** * @type {?} * @private */ NgmMasonryDirective.prototype._parent; /** * @type {?} * @private */ NgmMasonryDirective.prototype.platformId; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdtLW1hc29ucnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmdtLW1hc29ucnkvIiwic291cmNlcyI6WyJuZ20tbWFzb25yeS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFFSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRTVELDhCQUdDOzs7SUFGRywyQ0FBc0I7O0lBQ3RCLGlEQUE0Qjs7QUFLaEM7SUFNSSw2QkFDWSxRQUFvQixFQUVwQixPQUE0QixFQUNQLFVBQWU7UUFIcEMsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUVwQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUNQLGVBQVUsR0FBVixVQUFVLENBQUs7SUFDN0MsQ0FBQzs7OztJQUVKLDZDQUFlOzs7SUFBZjtRQUNJLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDOzs7O0lBRUQseUNBQVc7OztJQUFYO1FBQ0ksSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVqRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDO0lBRUQsNkVBQTZFOzs7Ozs7SUFDckUsaURBQW1COzs7OztJQUEzQjtRQUFBLGlCQXFCQztRQXBCRyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLHNCQUFzQixDQUFDO1FBRTVFLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixDQUFDO2dCQUNsQyxxQkFBcUIsQ0FBQztvQkFDbEIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQix5REFBeUQ7WUFDekQsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUNoRCxPQUFPLEVBQUUsSUFBSTtnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQzNCLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7Z0JBcERKLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO2lCQUMvQzs7OztnQkFsQkcsVUFBVTtnQkFPTixtQkFBbUIsdUJBaUJsQixNQUFNLFNBQUMsVUFBVSxDQUFDLGNBQU0sT0FBQSxtQkFBbUIsRUFBbkIsQ0FBbUIsQ0FBQztnREFFNUMsTUFBTSxTQUFDLFdBQVc7O0lBMkMzQiwwQkFBQztDQUFBLEFBckRELElBcURDO1NBbERZLG1CQUFtQjs7Ozs7O0lBQzVCLHdDQUFvQzs7Ozs7SUFHaEMsdUNBQTRCOzs7OztJQUM1QixzQ0FDb0M7Ozs7O0lBQ3BDLHlDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtOZ21NYXNvbnJ5Q29tcG9uZW50fSBmcm9tICcuL25nbS1tYXNvbnJ5LmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJTXV0YXRpb25XaW5kb3cgZXh0ZW5kcyBXaW5kb3cge1xuICAgIE11dGF0aW9uT2JzZXJ2ZXI6IGFueTtcbiAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOiBhbnk7XG59XG5cbmRlY2xhcmUgdmFyIHdpbmRvdzogSU11dGF0aW9uV2luZG93O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ21NYXNvbnJ5SXRlbV0sIG5nbU1hc29ucnlJdGVtJyxcbn0pXG5leHBvcnQgY2xhc3MgTmdtTWFzb25yeURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE5nbU1hc29ucnlDb21wb25lbnQpKVxuICAgICAgICBwcml2YXRlIF9wYXJlbnQ6IE5nbU1hc29ucnlDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudC5hZGQodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMud2F0Y2hGb3JIdG1sQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXJlbnQucmVtb3ZlKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICghIXRoaXMuX29ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFdoZW4gSFRNTCBpbiBicmljayBjaGFuZ2VzIGR5bmFtaWNhbGx5LCBvYnNlcnZlIHRoYXQgYW5kIGNoYW5nZSBsYXlvdXQgKi9cbiAgICBwcml2YXRlIHdhdGNoRm9ySHRtbENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXIgPSB3aW5kb3cuTXV0YXRpb25PYnNlcnZlciB8fCB3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcjtcblxuICAgICAgICBpZiAoTXV0YXRpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyZW50LmxheW91dCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLl9vYnNlcnZlcikge1xuICAgICAgICAgICAgLy8gZGVmaW5lIHdoYXQgZWxlbWVudCBzaG91bGQgYmUgb2JzZXJ2ZWQgYnkgdGhlIG9ic2VydmVyXG4gICAgICAgICAgICAvLyBhbmQgd2hhdCB0eXBlcyBvZiBtdXRhdGlvbnMgdHJpZ2dlciB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnc3JjJ10sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==