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
JavaScript
/**
* @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==