UNPKG

geminis-ng

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14.

45 lines 5.21 kB
import { ComponentFactoryResolver, Directive, Input, ViewContainerRef } from '@angular/core'; import { tableColumnTypes } from './TableColumn'; export class GnCustomTableColumnDirective { constructor(resolver, container) { this.resolver = resolver; this.container = container; } set setRow(value) { this.row = value; this.setComponentRow(); } set setColumnConfig(config) { const columnType = tableColumnTypes[config.type]; if (!columnType) { throw new Error(`表格列组件[${config.type}]未注册`); } const controlFactory = this.resolver.resolveComponentFactory(columnType); this.component = this.container.createComponent(controlFactory); if (config.options) { for (const key of Object.keys(config.options)) { this.component.instance[key] = config.options[key]; } } this.setComponentRow(); } setComponentRow() { if (this.component) { this.component.instance.row = this.row; } } } GnCustomTableColumnDirective.decorators = [ { type: Directive, args: [{ selector: '[gnCustomTableColumn]' },] } ]; GnCustomTableColumnDirective.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: ViewContainerRef } ]; GnCustomTableColumnDirective.propDecorators = { setRow: [{ type: Input, args: ['row',] }], setColumnConfig: [{ type: Input, args: ['gnCustomTableColumn',] }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW1pbmlzLW5nL3NyYy9qc29uLXRhYmxlL2N1c3RvbS10YWJsZS1jb2x1bW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx3QkFBd0IsRUFFeEIsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSy9DLE1BQU0sT0FBTyw0QkFBNEI7SUF5QnZDLFlBQW9CLFFBQWtDLEVBQ2xDLFNBQTJCO1FBRDNCLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQy9DLENBQUM7SUF0QkQsSUFBa0IsTUFBTSxDQUFDLEtBQUs7UUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFrQyxlQUFlLENBQUMsTUFBMkI7UUFDM0UsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLGNBQWMsR0FBMEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BEO1NBQ0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU1PLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7O1lBcENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2FBQ2xDOzs7WUFYQyx3QkFBd0I7WUFJeEIsZ0JBQWdCOzs7cUJBYWYsS0FBSyxTQUFDLEtBQUs7OEJBS1gsS0FBSyxTQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtHblRhYmxlQ29sdW1uQ29uZmlnfSBmcm9tICcuL1RhYmxlQ29sdW1uQ29uZmlnJztcbmltcG9ydCB7dGFibGVDb2x1bW5UeXBlc30gZnJvbSAnLi9UYWJsZUNvbHVtbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tnbkN1c3RvbVRhYmxlQ29sdW1uXSdcbn0pXG5leHBvcnQgY2xhc3MgR25DdXN0b21UYWJsZUNvbHVtbkRpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+O1xuICBwcml2YXRlIHJvdzogYW55O1xuXG4gIEBJbnB1dCgncm93Jykgc2V0IHNldFJvdyh2YWx1ZSkge1xuICAgIHRoaXMucm93ID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDb21wb25lbnRSb3coKTtcbiAgfVxuXG4gIEBJbnB1dCgnZ25DdXN0b21UYWJsZUNvbHVtbicpIHNldCBzZXRDb2x1bW5Db25maWcoY29uZmlnOiBHblRhYmxlQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgY29sdW1uVHlwZSA9IHRhYmxlQ29sdW1uVHlwZXNbY29uZmlnLnR5cGVdO1xuICAgIGlmICghY29sdW1uVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGDooajmoLzliJfnu4Tku7ZbJHtjb25maWcudHlwZX1d5pyq5rOo5YaMYCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRyb2xGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT4gPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbHVtblR5cGUpO1xuICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbnRyb2xGYWN0b3J5KTtcbiAgICBpZiAoY29uZmlnLm9wdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbmZpZy5vcHRpb25zKSkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZVtrZXldID0gY29uZmlnLm9wdGlvbnNba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXRDb21wb25lbnRSb3coKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29tcG9uZW50Um93KCkge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudCkge1xuICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2Uucm93ID0gdGhpcy5yb3c7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==