UNPKG

ng-masonry-layout

Version:

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

117 lines 8.04 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Inject, ElementRef, forwardRef, PLATFORM_ID } from '@angular/core'; import { NgxMasonryComponent } from './ngx-masonry.component'; import { isPlatformBrowser } from '@angular/common'; /** * @record */ function MutationWindow() { } if (false) { /** @type {?} */ MutationWindow.prototype.MutationObserver; /** @type {?} */ MutationWindow.prototype.WebKitMutationObserver; } var NgxMasonryDirective = /** @class */ (function () { function NgxMasonryDirective(_element, _parent, platformId) { this._element = _element; this._parent = _parent; this.platformId = platformId; } /** * @return {?} */ NgxMasonryDirective.prototype.ngAfterViewInit = /** * @return {?} */ function () { if (isPlatformBrowser(this.platformId)) { this._parent.add(this._element.nativeElement); this.watchForHtmlChanges(); } }; /** * @return {?} */ NgxMasonryDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { if (isPlatformBrowser(this.platformId)) { this._parent.remove(this._element.nativeElement); } }; /** When HTML in brick changes dinamically, observe that and change layout */ /** * When HTML in brick changes dinamically, observe that and change layout * @private * @return {?} */ NgxMasonryDirective.prototype.watchForHtmlChanges = /** * When HTML in brick changes dinamically, observe that and change layout * @private * @return {?} */ function () { MutationObserver = window.MutationObserver || window.WebKitMutationObserver; if (MutationObserver) { /** * Watch for any changes to subtree * @type {?} */ var self_1 = this; /** @type {?} */ var observer = new MutationObserver((/** * @param {?} mutations * @param {?} observerFromElement * @return {?} */ function (mutations, observerFromElement) { self_1._parent.layout(); })); // define what element should be observed by the observer // and what types of mutations trigger the callback observer.observe(this._element.nativeElement, { subtree: true, childList: true }); } }; NgxMasonryDirective.decorators = [ { type: Directive, args: [{ selector: '[ngxMasonryItem], ngxMasonryItem' },] } ]; /** @nocollapse */ NgxMasonryDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: NgxMasonryComponent, decorators: [{ type: Inject, args: [forwardRef((/** * @return {?} */ function () { return NgxMasonryComponent; })),] }] }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; }; return NgxMasonryDirective; }()); export { NgxMasonryDirective }; if (false) { /** * @type {?} * @private */ NgxMasonryDirective.prototype._element; /** * @type {?} * @private */ NgxMasonryDirective.prototype._parent; /** * @type {?} * @private */ NgxMasonryDirective.prototype.platformId; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW1hc29ucnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbWFzb25yeS1sYXlvdXQvIiwic291cmNlcyI6WyJsaWIvbmd4LW1hc29ucnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUE0QixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFcEQsNkJBR0M7OztJQUZDLDBDQUFzQjs7SUFDdEIsZ0RBQTRCOztBQUs5QjtJQUlFLDZCQUNVLFFBQW9CLEVBRXBCLE9BQTRCLEVBQ1AsVUFBZTtRQUhwQyxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQ1AsZUFBVSxHQUFWLFVBQVUsQ0FBSztJQUMzQyxDQUFDOzs7O0lBRUosNkNBQWU7OztJQUFmO1FBQ0UsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7Ozs7SUFFRCx5Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELDZFQUE2RTs7Ozs7O0lBQ3JFLGlEQUFtQjs7Ozs7SUFBM0I7UUFDRSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLHNCQUFzQixDQUFDO1FBRTVFLElBQUksZ0JBQWdCLEVBQUU7Ozs7O2dCQUVkLE1BQUksR0FBRyxJQUFJOztnQkFDWCxRQUFRLEdBQUcsSUFBSSxnQkFBZ0I7Ozs7O1lBQUMsVUFBUyxTQUFTLEVBQUUsbUJBQW1CO2dCQUMzRSxNQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLENBQUMsRUFBQztZQUVGLHlEQUF5RDtZQUN6RCxtREFBbUQ7WUFDbkQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDNUMsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztnQkExQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7aUJBQzdDOzs7O2dCQWQyQixVQUFVO2dCQUU3QixtQkFBbUIsdUJBZ0J2QixNQUFNLFNBQUMsVUFBVTs7O3dCQUFDLGNBQU0sT0FBQSxtQkFBbUIsRUFBbkIsQ0FBbUIsRUFBQztnREFFNUMsTUFBTSxTQUFDLFdBQVc7O0lBbUN2QiwwQkFBQztDQUFBLEFBM0NELElBMkNDO1NBeENZLG1CQUFtQjs7Ozs7O0lBRTVCLHVDQUE0Qjs7Ozs7SUFDNUIsc0NBQ29DOzs7OztJQUNwQyx5Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3hNYXNvbnJ5Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtbWFzb25yeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbnRlcmZhY2UgTXV0YXRpb25XaW5kb3cgZXh0ZW5kcyBXaW5kb3cge1xuICBNdXRhdGlvbk9ic2VydmVyOiBhbnk7XG4gIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6IGFueTtcbn1cblxuZGVjbGFyZSB2YXIgd2luZG93OiBNdXRhdGlvbldpbmRvdztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25neE1hc29ucnlJdGVtXSwgbmd4TWFzb25yeUl0ZW0nXG59KVxuZXhwb3J0IGNsYXNzIE5neE1hc29ucnlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBOZ3hNYXNvbnJ5Q29tcG9uZW50KSlcbiAgICBwcml2YXRlIF9wYXJlbnQ6IE5neE1hc29ucnlDb21wb25lbnQsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnlcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5fcGFyZW50LmFkZCh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy53YXRjaEZvckh0bWxDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuX3BhcmVudC5yZW1vdmUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hlbiBIVE1MIGluIGJyaWNrIGNoYW5nZXMgZGluYW1pY2FsbHksIG9ic2VydmUgdGhhdCBhbmQgY2hhbmdlIGxheW91dCAqL1xuICBwcml2YXRlIHdhdGNoRm9ySHRtbENoYW5nZXMoKTogdm9pZCB7XG4gICAgTXV0YXRpb25PYnNlcnZlciA9IHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyIHx8IHdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKE11dGF0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIC8qKiBXYXRjaCBmb3IgYW55IGNoYW5nZXMgdG8gc3VidHJlZSAqL1xuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucywgb2JzZXJ2ZXJGcm9tRWxlbWVudCkge1xuICAgICAgICBzZWxmLl9wYXJlbnQubGF5b3V0KCk7XG4gICAgICB9KTtcblxuICAgICAgLy8gZGVmaW5lIHdoYXQgZWxlbWVudCBzaG91bGQgYmUgb2JzZXJ2ZWQgYnkgdGhlIG9ic2VydmVyXG4gICAgICAvLyBhbmQgd2hhdCB0eXBlcyBvZiBtdXRhdGlvbnMgdHJpZ2dlciB0aGUgY2FsbGJhY2tcbiAgICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=