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
JavaScript
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==