UNPKG

igniteui-angular-core

Version:

Ignite UI Angular Core logic used in multiple UI components.

153 lines (152 loc) 8.24 kB
/* THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE: https://www.infragistics.com/legal/license/igultimate-la https://www.infragistics.com/legal/license/igultimate-eula GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company. */ import { EventEmitter, ApplicationRef, Component, ViewChild, Input, ChangeDetectionStrategy, ViewContainerRef } from '@angular/core'; import { TypeRegistrar } from './type'; import * as i0 from "@angular/core"; var IgxComponentRendererContainerComponent = /** @class */ /*@__PURE__*/ (function () { function IgxComponentRendererContainerComponent(_renderer, _elRef, _ngZone, changeDetector, _componentFactoryResolver, _injector) { this._renderer = _renderer; this._elRef = _elRef; this._ngZone = _ngZone; this.changeDetector = changeDetector; this._componentFactoryResolver = _componentFactoryResolver; this._injector = _injector; this.isAngularHost = true; this.listeners = []; this._currentRoot = null; this._currentRootRef = null; } Object.defineProperty(IgxComponentRendererContainerComponent.prototype, "height", { get: function () { return this._height; }, set: function (value) { this._height = value; this._renderer.setStyle(this._elRef.element.nativeElement, "height", value); }, enumerable: false, configurable: true }); Object.defineProperty(IgxComponentRendererContainerComponent.prototype, "width", { get: function () { return this._width; }, set: function (value) { this._width = value; this._renderer.setStyle(this._elRef.element.nativeElement, "width", value); }, enumerable: false, configurable: true }); IgxComponentRendererContainerComponent.isEvent = function (ev) { return ev instanceof EventEmitter; }; IgxComponentRendererContainerComponent.prototype.determineInjector = function (origName, typeName, type) { return this._currentRootRef.injector; }; IgxComponentRendererContainerComponent.prototype.getSpecificAnchor = function (origName, typeName, type, context) { var _a; var meta = context.getMetadata(origName, "__mustUseNGParentAnchor"); if (meta) { return (_a = this._currentRootRef.instance.anchor) !== null && _a !== void 0 ? _a : this._currentRootRef.instance.___viewContainerRef; } return null; }; IgxComponentRendererContainerComponent.prototype.createObject = function (type, container, context, portalChildren, nameContext) { var origName = type; var meta = context.getMetadata(type, "__qualifiedNameTS"); if (meta) { type = meta.specificExternalType; } var meta = context.getMetadata(origName, "__qualifiedNameNG"); if (meta) { type = meta.specificExternalType; } var typeName = "Igx" + type + "Component"; if (TypeRegistrar.isRegistered(typeName)) { var C = TypeRegistrar.get(typeName); var cf = this._componentFactoryResolver.resolveComponentFactory(C); var injector = this.determineInjector(origName, typeName, C); var parentViewRef = injector.get(ViewContainerRef); var cr = cf.create(parentViewRef.injector); cr.instance.___owningRef = cr; cr.instance.___parentViewRef = parentViewRef; cr.instance.___hostView = cr.hostView; var specificAnchor = this.getSpecificAnchor(origName, typeName, C, context); if (!specificAnchor) { var appRef = parentViewRef.injector.get(ApplicationRef); appRef.attachView(cr.hostView); this._currentRootRef.changeDetectorRef.detectChanges(); cr.changeDetectorRef.detectChanges(); } else { var domParent = cr.location.nativeElement.parentElement; if (domParent) { var nextSibling = cr.location.nativeElement.nextSibling; specificAnchor.insert(cr.hostView); domParent.insertBefore(cr.hostView, nextSibling); } else { specificAnchor.insert(cr.hostView); } this._currentRootRef.changeDetectorRef.detectChanges(); } return cr.instance; } return null; }; IgxComponentRendererContainerComponent.prototype.replaceRootItem = function (t, deferAttach, continueActions) { if (this._currentRoot != null) { if (this._currentRootRef) { this._currentRootRef.destroy(); this._currentRootRef = null; this._currentRoot = null; } } var cf = this._componentFactoryResolver.resolveComponentFactory(t); var cr = this._dynamicContent.createComponent(cf); this._currentRootRef = cr; this._currentRoot = cr.instance; this.changeDetector.detectChanges(); cr.instance.___owningRef = cr; cr.instance.___viewContainerRef = cr.injector.get(ViewContainerRef); this._currentRoot.width = "100%"; this._currentRoot.height = "100%"; continueActions(false); }; IgxComponentRendererContainerComponent.prototype.clearContainer = function (continueActions) { if (this._currentRootRef) { this._currentRootRef.destroy(); this._currentRootRef = null; this._currentRoot = null; } continueActions(false); }; IgxComponentRendererContainerComponent.prototype.getRootObject = function () { return this._currentRoot; }; IgxComponentRendererContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxComponentRendererContainerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); IgxComponentRendererContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxComponentRendererContainerComponent, selector: "igx-component-renderer-container", inputs: { height: "height", width: "width" }, viewQueries: [{ propertyName: "_dynamicContent", first: true, predicate: ["dynamicContent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "\n <ng-container #dynamicContent></ng-container>\n ", isInline: true, styles: ["\n :host {\n display: block;\n }"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); return IgxComponentRendererContainerComponent; }()); export { IgxComponentRendererContainerComponent }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxComponentRendererContainerComponent, decorators: [{ type: Component, args: [{ selector: 'igx-component-renderer-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n <ng-container #dynamicContent></ng-container>\n ", styles: ["\n :host {\n display: block;\n }"] }] }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, propDecorators: { height: [{ type: Input }], width: [{ type: Input }], _dynamicContent: [{ type: ViewChild, args: ["dynamicContent", { read: ViewContainerRef, static: true }] }] } });