UNPKG

angular-gallery

Version:

Responsive gallery for Angular with touch screen support.

99 lines 11.7 kB
import { __decorate } from "tslib"; import { Injectable, Injector, ComponentFactoryResolver, EmbeddedViewRef, ApplicationRef } from '@angular/core'; import { EventService } from './event.service'; import { OverlayContainerComponent } from './overlay-container.component'; import { defaultProperties } from './default-properties'; var Overlay = /** @class */ (function () { function Overlay(componentFactoryResolver, appRef, injector, eventService) { var _this = this; this.componentFactoryResolver = componentFactoryResolver; this.appRef = appRef; this.injector = injector; this.eventService = eventService; this.componentRefs = {}; this._properties = {}; this.globalEventsSubscription = this.eventService.emitter.subscribe(function (event) { _this.handleGlobalEvents(event); }); } Overlay.prototype.appendComponentToBody = function (properties, component) { if (component === void 0) { component = OverlayContainerComponent; } //if (this.componentRefs[properties.id]){ if (this.componentRefs[0]) { return; } var componentRef = this.componentFactoryResolver .resolveComponentFactory(component) .create(this.injector); //this.componentRefs[properties.id] = componentRef; this.componentRefs[0] = componentRef; componentRef.instance.properties = properties; this.appRef.attachView(componentRef.hostView); var domElem = componentRef.hostView.rootNodes[0]; // Add to body document.body.appendChild(domElem); }; /* appendComponentToTag(element: any, tagname: string = ''):void { if (tagname){ document.getElementsByTagName(tagname)[0].appendChild(element); } else { document.body.appendChild(element); } } */ Overlay.prototype.load = function (properties) { properties = this.applyPropertieDefaults(defaultProperties, properties); this.appendComponentToBody(properties); }; Overlay.prototype.close = function (prop) { if (prop === void 0) { prop = {}; } /* if (this.componentRefs[prop.id]){ (<ContainerProperties>this.componentRefs[prop.id].instance).closeOverlay(); } */ }; Overlay.prototype.applyPropertieDefaults = function (defaultProperties, properties) { if (!properties) { properties = {}; } if (!properties.index) { properties.index = 0; } this._defaultProperties = Object.assign({}, defaultProperties); return Object.assign(this._defaultProperties, properties); }; Overlay.prototype.objectLength = function (obj) { var length = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) length++; } return length; }; ; Overlay.prototype.handleGlobalEvents = function (event) { if (event.type === '[Overlay] Hide') { this.handleCloseEvent(); } }; Overlay.prototype.handleCloseEvent = function () { //const id = 'popover'; // Note: pass id in event this.appRef.detachView(this.componentRefs[0].hostView); this.componentRefs[0].destroy(); delete this.componentRefs[0]; }; Overlay.ctorParameters = function () { return [ { type: ComponentFactoryResolver }, { type: ApplicationRef }, { type: Injector }, { type: EventService } ]; }; Overlay = __decorate([ Injectable() ], Overlay); return Overlay; }()); export { Overlay }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1nYWxsZXJ5LyIsInNvdXJjZXMiOlsibGliL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RDtJQU1JLGlCQUNZLHdCQUFrRCxFQUNsRCxNQUFzQixFQUN0QixRQUFrQixFQUNsQixZQUEwQjtRQUp0QyxpQkFVQztRQVRXLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVJ0QyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQVFsQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUMvRCxVQUFDLEtBQUs7WUFDRixLQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsdUNBQXFCLEdBQXJCLFVBQXNCLFVBQWUsRUFBRSxTQUEwQztRQUExQywwQkFBQSxFQUFBLHFDQUEwQztRQUM3RSx5Q0FBeUM7UUFDekMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDO1lBQ3RCLE9BQU87U0FDVjtRQUVELElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0I7YUFDN0MsdUJBQXVCLENBQUMsU0FBUyxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0IsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBRWYsWUFBWSxDQUFDLFFBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFNLE9BQU8sR0FBSSxZQUFZLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBRTVGLGNBQWM7UUFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7Ozs7O01BUUU7SUFFSyxzQkFBSSxHQUFYLFVBQVksVUFBNkI7UUFDckMsVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLHVCQUFLLEdBQVosVUFBYSxJQUFjO1FBQWQscUJBQUEsRUFBQSxTQUFjO1FBQ3ZCOzs7O1VBSUU7SUFDTixDQUFDO0lBRUQsd0NBQXNCLEdBQXRCLFVBQXVCLGlCQUFpQixFQUFFLFVBQVU7UUFDaEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBQztZQUNsQixVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELDhCQUFZLEdBQVosVUFBYSxHQUFHO1FBQ1osSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDYixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUFBLENBQUM7SUFFRixvQ0FBa0IsR0FBbEIsVUFBbUIsS0FBSztRQUNwQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsa0NBQWdCLEdBQWhCO1FBQ0ksaURBQWlEO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7Z0JBckZxQyx3QkFBd0I7Z0JBQzFDLGNBQWM7Z0JBQ1osUUFBUTtnQkFDSixZQUFZOztJQVY3QixPQUFPO1FBRG5CLFVBQVUsRUFBRTtPQUNBLE9BQU8sQ0E2Rm5CO0lBQUQsY0FBQztDQUFBLEFBN0ZELElBNkZDO1NBN0ZZLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbWJlZGRlZFZpZXdSZWYsIEFwcGxpY2F0aW9uUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3ZlcmxheVByb3BlcnRpZXMsIENvbnRhaW5lclByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGVmYXVsdFByb3BlcnRpZXMgfSBmcm9tICcuL2RlZmF1bHQtcHJvcGVydGllcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVybGF5IHtcbiAgICBnbG9iYWxFdmVudHNTdWJzY3JpcHRpb247XG4gICAgY29tcG9uZW50UmVmcyA9IHt9O1xuICAgIF9wcm9wZXJ0aWVzOiBhbnkgPSB7fTtcbiAgICBfZGVmYXVsdFByb3BlcnRpZXM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZ2xvYmFsRXZlbnRzU3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudFNlcnZpY2UuZW1pdHRlci5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUdsb2JhbEV2ZW50cyhldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXBwZW5kQ29tcG9uZW50VG9Cb2R5KHByb3BlcnRpZXM6IGFueSwgY29tcG9uZW50OiBhbnkgPSBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50KTp2b2lkIHtcbiAgICAgICAgLy9pZiAodGhpcy5jb21wb25lbnRSZWZzW3Byb3BlcnRpZXMuaWRdKXtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmc1swXSl7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgICAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAgICAgLy90aGlzLmNvbXBvbmVudFJlZnNbcHJvcGVydGllcy5pZF0gPSBjb21wb25lbnRSZWY7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmc1swXSA9IGNvbXBvbmVudFJlZjtcblxuICAgICAgICAoPENvbnRhaW5lclByb3BlcnRpZXM+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICBjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIC8vIEFkZCB0byBib2R5XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgfVxuXG4gICAgLypcbiAgICBhcHBlbmRDb21wb25lbnRUb1RhZyhlbGVtZW50OiBhbnksIHRhZ25hbWU6IHN0cmluZyA9ICcnKTp2b2lkIHtcbiAgICAgICAgaWYgKHRhZ25hbWUpe1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnbmFtZSlbMF0uYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgICovXG5cbiAgICBwdWJsaWMgbG9hZChwcm9wZXJ0aWVzOiBPdmVybGF5UHJvcGVydGllcyk6dm9pZCB7XG4gICAgICAgIHByb3BlcnRpZXMgPSB0aGlzLmFwcGx5UHJvcGVydGllRGVmYXVsdHMoZGVmYXVsdFByb3BlcnRpZXMsIHByb3BlcnRpZXMpO1xuICAgICAgICB0aGlzLmFwcGVuZENvbXBvbmVudFRvQm9keShwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UocHJvcDogYW55ID0ge30pOnZvaWQge1xuICAgICAgICAvKlxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWZzW3Byb3AuaWRdKXtcbiAgICAgICAgICAgICg8Q29udGFpbmVyUHJvcGVydGllcz50aGlzLmNvbXBvbmVudFJlZnNbcHJvcC5pZF0uaW5zdGFuY2UpLmNsb3NlT3ZlcmxheSgpO1xuICAgICAgICB9XG4gICAgICAgICovXG4gICAgfVxuXG4gICAgYXBwbHlQcm9wZXJ0aWVEZWZhdWx0cyhkZWZhdWx0UHJvcGVydGllcywgcHJvcGVydGllcyl7XG4gICAgICAgIGlmICghcHJvcGVydGllcykge1xuICAgICAgICAgICAgcHJvcGVydGllcyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghcHJvcGVydGllcy5pbmRleCl7IFxuICAgICAgICAgICAgcHJvcGVydGllcy5pbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGVmYXVsdFByb3BlcnRpZXMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UHJvcGVydGllcyk7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHRoaXMuX2RlZmF1bHRQcm9wZXJ0aWVzLCBwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBvYmplY3RMZW5ndGgob2JqKTpudW1iZXIge1xuICAgICAgICBsZXQgbGVuZ3RoID0gMCwga2V5O1xuICAgICAgICBmb3IgKGtleSBpbiBvYmopIHtcbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkgbGVuZ3RoKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9O1xuXG4gICAgaGFuZGxlR2xvYmFsRXZlbnRzKGV2ZW50KXtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdbT3ZlcmxheV0gSGlkZScpe1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDbG9zZUV2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDbG9zZUV2ZW50KCl7XG4gICAgICAgIC8vY29uc3QgaWQgPSAncG9wb3Zlcic7IC8vIE5vdGU6IHBhc3MgaWQgaW4gZXZlbnRcbiAgICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZnNbMF0uaG9zdFZpZXcpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZnNbMF0uZGVzdHJveSgpO1xuICAgICAgICBkZWxldGUgdGhpcy5jb21wb25lbnRSZWZzWzBdO1xuICAgIH1cbn0iXX0=