use createTypeaheadDisplayNameGenerator for displayName

pull/6920/head
Arman Ozak 5 years ago
parent 3531cc3b35
commit 330dddbc4c

@ -14,7 +14,12 @@ import { PropCallback } from '../models/props';
import { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';
import { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';
import { createExtraPropertyValueResolver } from './props.util';
import { createTypeaheadOptions, getTypeaheadType } from './typeahead.util';
import {
createTypeaheadDisplayNameGenerator,
createTypeaheadOptions,
getTypeaheadType,
hasTypeaheadTextSuffix,
} from './typeahead.util';
import { getValidatorsFromProperty } from './validation.util';
function selectObjectExtensions(
@ -59,7 +64,7 @@ export function getObjectExtensionEntitiesFromStore(
.entities;
}),
map(entities => (isUndefined(entities) ? {} : entities)),
filter<Entities>(Boolean),
filter<ObjectExtensions.EntityExtensions>(Boolean),
take(1),
);
}
@ -75,7 +80,7 @@ export function mapEntitiesToContributors<T = any>(
const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);
return Object.keys(entities).reduce(
(acc, key: keyof Entities) => {
(acc, key: keyof ObjectExtensions.EntityExtensions) => {
acc.prop[key] = [];
acc.createForm[key] = [];
acc.editForm[key] = [];
@ -108,23 +113,30 @@ export function mapEntitiesToContributors<T = any>(
}
function createPropertiesToContributorsMapper<T = any>(
generateDisplayName: DisplayNameGeneratorFn,
generateDisplayName: ObjectExtensions.DisplayNameGeneratorFn,
resource: string,
enums: Record<string, ObjectExtensions.ExtensionEnumDto>,
) {
return (
properties: Record<string, ObjectExtensions.ExtensionPropertyDto>,
properties: ObjectExtensions.EntityExtensionProperties,
contributors: ObjectExtensions.PropContributors<T>,
key: string,
) => {
const isExtra = true;
const generateTypeaheadDisplayName = createTypeaheadDisplayNameGenerator(
generateDisplayName,
properties,
);
Object.keys(properties).forEach((name: string) => {
const property = properties[name];
const propName = name;
const lookup = property.ui.lookup || ({} as ExtensionPropertyUiLookupDto);
const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);
const displayName = generateDisplayName(property.displayName, { name, resource });
const generateDN = hasTypeaheadTextSuffix(name)
? generateTypeaheadDisplayName
: generateDisplayName;
const displayName = generateDN(property.displayName, { name, resource });
if (property.ui.onTable.isVisible) {
const sortable = Boolean(property.ui.onTable.isSortable);
@ -186,6 +198,3 @@ function getTypeFromProperty(property: ObjectExtensions.ExtensionPropertyDto): e
function isUndefined(obj: any): obj is undefined {
return typeof obj === 'undefined';
}
type DisplayNameGeneratorFn = ReturnType<typeof createDisplayNameLocalizationPipeKeyGenerator>;
type Entities = Record<string, ObjectExtensions.EntityExtensionDto>;

Loading…
Cancel
Save