UNPKG

component-injector

Version:

Component Injector service which allows to inject dynamically components into angular2+ projects

170 lines (164 loc) 6.05 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) : typeof define === 'function' && define.amd ? define('component-injector', ['exports', '@angular/core'], factory) : (global = global || self, factory(global['component-injector'] = {}, global.ng.core)); }(this, function (exports, core) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var ComponentInjector = /** @class */ (function () { function ComponentInjector(resolver) { this.resolver = resolver; } /** * @param {?} componentsList * @return {?} */ ComponentInjector.prototype.setComponentFactories = /** * @param {?} componentsList * @return {?} */ function (componentsList) { var _this = this; if (componentsList) { componentsList.forEach((/** * @param {?} component * @return {?} */ function (component) { /** @type {?} */ var factory = _this.resolver.resolveComponentFactory(component); if (factory) { ComponentInjector.entryComponentsFactories.push(factory); } })); } }; /** * @param {?} container * @param {?} componentSelector * @return {?} */ ComponentInjector.prototype.inject = /** * @param {?} container * @param {?} componentSelector * @return {?} */ function (container, componentSelector) { /** @type {?} */ var componentFactory = this.getComponentFactory(componentSelector); if (componentFactory) { return this.injectComponentFactory(container, componentFactory); } else { console.warn('Component [' + componentSelector + '] cannot be found! ' + 'Make sure it is included in the `entryComponents` list.'); } return null; }; /** * @param {?} componentRef * @param {?} properties * @return {?} */ ComponentInjector.prototype.setProperties = /** * @param {?} componentRef * @param {?} properties * @return {?} */ function (componentRef, properties) { if (componentRef) { for (var property in properties) { if (properties.hasOwnProperty(property)) { componentRef.instance[property] = properties[property]; } } } }; /** * @param {?} componentRef * @return {?} */ ComponentInjector.prototype.remove = /** * @param {?} componentRef * @return {?} */ function (componentRef) { if (componentRef) { componentRef.destroy(); } componentRef = null; }; /** * @protected * @param {?} componentSelector * @return {?} */ ComponentInjector.prototype.getComponentFactory = /** * @protected * @param {?} componentSelector * @return {?} */ function (componentSelector) { /** @type {?} */ var factories = ComponentInjector.entryComponentsFactories; /** @type {?} */ var componentFactory = factories.find((/** * @param {?} component * @return {?} */ function (component) { return component.selector === componentSelector; })); return componentFactory ? componentFactory : null; }; /** * @protected * @param {?} container * @param {?} componentFactory * @return {?} */ ComponentInjector.prototype.injectComponentFactory = /** * @protected * @param {?} container * @param {?} componentFactory * @return {?} */ function (container, componentFactory) { return container.createComponent(componentFactory); }; ComponentInjector.entryComponentsFactories = []; ComponentInjector.decorators = [ { type: core.Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ ComponentInjector.ctorParameters = function () { return [ { type: core.ComponentFactoryResolver } ]; }; /** @nocollapse */ ComponentInjector.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ComponentInjector_Factory() { return new ComponentInjector(core.ɵɵinject(core.ComponentFactoryResolver)); }, token: ComponentInjector, providedIn: "root" }); return ComponentInjector; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var ComponentInjectorModule = /** @class */ (function () { function ComponentInjectorModule() { } ComponentInjectorModule.decorators = [ { type: core.NgModule, args: [{ declarations: [], imports: [], exports: [] },] } ]; return ComponentInjectorModule; }()); exports.ComponentInjector = ComponentInjector; exports.ComponentInjectorModule = ComponentInjectorModule; Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=component-injector.umd.js.map