UNPKG

angular-dynamic-forms-lite

Version:
68 lines 5.26 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export class ArrayRenderer { // TODO is arrayRoot needed /** * @param {?} parentFieldFactory * @param {?} arrayRoot */ constructor(parentFieldFactory, arrayRoot) { this.parentFieldFactory = parentFieldFactory; this.arrayRoot = arrayRoot; } /** * @param {?} context * @param {?} pageEvent * @return {?} */ render(context, pageEvent) { this.renderChildren(this.arrayRoot, this.getChildrenToRender((/** @type {?} */ (context.children)), pageEvent)); } /** * @private * @param {?} arrayRoot * @param {?} contexts * @return {?} */ renderChildren(arrayRoot, contexts) { arrayRoot.clearView(); contexts.forEach((/** * @param {?} context * @return {?} */ context => { if (context.componentRef.hostView.destroyed) { // recreate the view if it is destroyed /** @type {?} */ const newContext = this.parentFieldFactory.create(context); this.parentFieldFactory.render(arrayRoot, newContext); return; } this.parentFieldFactory.render(arrayRoot, context); })); } /** * @private * @param {?} children * @param {?} pageEvent * @return {?} */ getChildrenToRender(children, pageEvent) { return children.slice(pageEvent.pageIndex * pageEvent.pageSize, (pageEvent.pageIndex + 1) * pageEvent.pageSize); } } if (false) { /** * @type {?} * @private */ ArrayRenderer.prototype.parentFieldFactory; /** * @type {?} * @private */ ArrayRenderer.prototype.arrayRoot; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktcmVuZGVyZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWR5bmFtaWMtZm9ybXMtbGl0ZS8iLCJzb3VyY2VzIjpbImxpYi9mb3JtLWZpZWxkL2FycmF5L2FycmF5LXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFNQSxNQUFNLE9BQU8sYUFBYTs7Ozs7O0lBRXhCLFlBQW9CLGtCQUFzQyxFQUFVLFNBQTRCO1FBQTVFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtJQUFHLENBQUM7Ozs7OztJQUU3RixNQUFNLENBQUMsT0FBb0MsRUFBRSxTQUFvQjtRQUN0RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFBLE9BQU8sQ0FBQyxRQUFRLEVBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDOzs7Ozs7O0lBRU8sY0FBYyxDQUFDLFNBQTRCLEVBQUUsUUFBNEI7UUFDL0UsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXRCLFFBQVEsQ0FBQyxPQUFPOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7OztzQkFFckMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQU0sT0FBTyxDQUFDO2dCQUUvRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDdEQsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBRU8sbUJBQW1CLENBQUMsUUFBaUMsRUFBRSxTQUFvQjtRQUNqRixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEgsQ0FBQztDQUNGOzs7Ozs7SUF6QmEsMkNBQThDOzs7OztJQUFFLGtDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gXCIuL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgRm9ybVJvb3REaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZm9ybS9mb3JtLXJvb3QuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBGb3JtQ29udGV4dCB9IGZyb20gXCIuLi8uLi9mb3JtL2Zvcm0tY29udGV4dFwiO1xuaW1wb3J0IHsgUGFyZW50RmllbGRGYWN0b3J5IH0gZnJvbSBcIi4uL2ZpZWxkLWZhY3RvcnlcIjtcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgY2xhc3MgQXJyYXlSZW5kZXJlciB7XG4gIC8vIFRPRE8gaXMgYXJyYXlSb290IG5lZWRlZFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudEZpZWxkRmFjdG9yeTogUGFyZW50RmllbGRGYWN0b3J5LCBwcml2YXRlIGFycmF5Um9vdDogRm9ybVJvb3REaXJlY3RpdmUpIHt9XG5cbiAgcHVibGljIHJlbmRlcihjb250ZXh0OiBGb3JtQ29udGV4dDxhbnksIEZvcm1BcnJheT4sIHBhZ2VFdmVudDogUGFnZUV2ZW50KSB7XG4gICAgdGhpcy5yZW5kZXJDaGlsZHJlbih0aGlzLmFycmF5Um9vdCwgdGhpcy5nZXRDaGlsZHJlblRvUmVuZGVyKGNvbnRleHQuY2hpbGRyZW4gYXMgRm9ybUNvbnRleHQ8YW55PltdLCBwYWdlRXZlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ2hpbGRyZW4oYXJyYXlSb290OiBGb3JtUm9vdERpcmVjdGl2ZSwgY29udGV4dHM6IEZvcm1Db250ZXh0PGFueT5bXSk6IHZvaWQge1xuICAgIGFycmF5Um9vdC5jbGVhclZpZXcoKTtcblxuICAgIGNvbnRleHRzLmZvckVhY2goY29udGV4dCA9PiB7XG4gICAgICBpZiAoY29udGV4dC5jb21wb25lbnRSZWYuaG9zdFZpZXcuZGVzdHJveWVkKSB7XG4gICAgICAgIC8vIHJlY3JlYXRlIHRoZSB2aWV3IGlmIGl0IGlzIGRlc3Ryb3llZFxuICAgICAgICBjb25zdCBuZXdDb250ZXh0ID0gdGhpcy5wYXJlbnRGaWVsZEZhY3RvcnkuY3JlYXRlPGFueT4oY29udGV4dCk7XG5cbiAgICAgICAgdGhpcy5wYXJlbnRGaWVsZEZhY3RvcnkucmVuZGVyKGFycmF5Um9vdCwgbmV3Q29udGV4dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYXJlbnRGaWVsZEZhY3RvcnkucmVuZGVyKGFycmF5Um9vdCwgY29udGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENoaWxkcmVuVG9SZW5kZXIoY2hpbGRyZW46IEZvcm1Db250ZXh0PGFueSwgYW55PltdLCBwYWdlRXZlbnQ6IFBhZ2VFdmVudCkge1xuICAgIHJldHVybiBjaGlsZHJlbi5zbGljZShwYWdlRXZlbnQucGFnZUluZGV4ICogcGFnZUV2ZW50LnBhZ2VTaXplLCAocGFnZUV2ZW50LnBhZ2VJbmRleCArIDEpICogcGFnZUV2ZW50LnBhZ2VTaXplKTtcbiAgfVxufVxuIl19