diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html index 2d7105ae52..0d3aa9dd16 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html @@ -24,23 +24,24 @@ - - - {{column.name}} - - - {{column.name}} + + + {{ column.name }} + + + {{ column.name }} + - diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/entity-props.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/entity-props.ts index e376fe44df..e86e3ae34e 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/entity-props.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/entity-props.ts @@ -1,5 +1,5 @@ import { ABP, escapeHtmlChars } from '@abp/ng.core'; -import { Type } from '@angular/core'; +import { InjectFlags, InjectOptions, InjectionToken, Type } from '@angular/core'; import { Observable, of } from 'rxjs'; import { O } from 'ts-toolbelt'; import { ActionCallback } from './actions'; @@ -31,6 +31,7 @@ export class EntityProp extends Prop { readonly component?: Type; readonly enumList?: Array>; readonly tooltip?: string; + readonly columnVisible: ColumnPredicate; constructor(options: EntityPropOptions) { super( @@ -41,7 +42,8 @@ export class EntityProp extends Prop { options.visible, options.isExtra, ); - + + this.columnVisible = options.columnVisible || (() => true); this.columnWidth = options.columnWidth; this.sortable = options.sortable || false; this.valueResolver = @@ -72,6 +74,7 @@ export type EntityPropOptions = O.Optional< O.Writable>, | 'permission' | 'visible' + | 'columnVisible' | 'displayName' | 'isExtra' | 'columnWidth' @@ -85,4 +88,10 @@ export type EntityPropOptions = O.Optional< export type EntityPropDefaults = Record[]>; export type EntityPropContributorCallback = PropContributorCallback>; export type EntityPropContributorCallbacks = PropContributorCallbacks>; +export type ColumnPredicate = (getInjected: GetInjected, auxData?: any) => boolean; +export type GetInjected = ( + token: Type | InjectionToken, + notFoundValue?: T, + options?: InjectOptions | InjectFlags, +) => T; type PropDataObject = { [key: string]: any };