Browse Source

use createTypeaheadDisplayNameGenerator for displayName

pull/6920/head
Arman Ozak 6 years ago
parent
commit
330dddbc4c
  1. 27
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts

27
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts

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

Loading…
Cancel
Save