UNPKG

igniteui-react-core

Version:
73 lines (72 loc) 2.94 kB
import { __extends } from "tslib"; import * as React from 'react'; var IgrComponentRendererContainer = /** @class */ /*@__PURE__*/ (function (_super) { __extends(IgrComponentRendererContainer, _super); function IgrComponentRendererContainer(props) { var _this = _super.call(this, props) || this; _this.createdListeners = []; _this.clearedListeners = []; _this._currentRoot = null; _this.rootCreated = _this.rootCreated.bind(_this); _this.state = {}; return _this; } IgrComponentRendererContainer.prototype.createObject = function (t, container, context, portalChildren, nameContext) { var C = t; t = new C(); return t; }; IgrComponentRendererContainer.prototype.rootCreated = function (rootRef) { var toRemove = []; if (!rootRef) { toRemove = []; for (var i = 0; i < this.clearedListeners.length; i++) { toRemove.push(this.clearedListeners[i]); } this.clearedListeners.length = 0; for (var i = 0; i < toRemove.length; i++) { toRemove[i](rootRef); } this._currentRoot = null; return; } this._currentRoot = rootRef; toRemove = []; for (var i = 0; i < this.createdListeners.length; i++) { toRemove.push(this.createdListeners[i]); } this.createdListeners.length = 0; for (var i = 0; i < toRemove.length; i++) { toRemove[i](rootRef); } }; IgrComponentRendererContainer.prototype.replaceRootItem = function (t, deferAttach, continueActions) { var act = function (r) { continueActions(true); }; this.createdListeners.push(act); this.setState({ rootComponentType: t }); }; IgrComponentRendererContainer.prototype.clearContainer = function (continueActions) { this.createdListeners.length = 0; var act = function (r) { continueActions(true); }; this.clearedListeners.push(act); this.setState({ rootComponentType: null }); }; IgrComponentRendererContainer.prototype.getRootObject = function () { return this._currentRoot; }; IgrComponentRendererContainer.prototype.render = function () { if (this.state.rootComponentType) { var ele = React.createElement(this.state.rootComponentType, { ref: this.rootCreated, width: "100%", height: "100%" }); return React.createElement("div", { style: this.props.style ? this.props.style : { width: "100%", height: "100%" } }, ele); } else { return React.createElement("div", { style: this.props.style ? this.props.style : { width: "100%", height: "100%" } }); } }; return IgrComponentRendererContainer; }(React.Component)); export { IgrComponentRendererContainer };