UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

38 lines 7.45 kB
import { UserFilterConstants } from '../filter/models/user-filter-constants'; import { getFieldFromDataGroups } from './get-field'; import { FilterType } from '../filter/models/filter-type'; /** * Creates search categories based on the metadata stored in the filter case * @param categoryResolverService * @param navigationItemTaskData task data of a navigation item task, the data must contain a filter field, that is used * to generate the categories * @param defaultCaseSearchCategories the default case search categories that should be merged with the categories provided by the filter * field, if the filter metadata allow it and the filter is a case filter * @param defaultTaskSearchCategories the default task search categories that should be merged with the categories provided by the filter * field, if the filter metadata allow it and the filter is a task filter */ export function navigationItemTaskCategoryFactory(categoryResolverService, navigationItemTaskData, defaultCaseSearchCategories, defaultTaskSearchCategories) { if (!navigationItemTaskData) { return []; } const filterField = getFieldFromDataGroups(navigationItemTaskData, UserFilterConstants.FILTER_FIELD_ID); if (filterField === undefined) { throw new Error(`Provided navigation item task data does not contain a filter field with ID '${UserFilterConstants.FILTER_FIELD_ID}'! Search categories cannot be generated from it!`); } const merge = new Set(); const cats = filterField.filterMetadata.searchCategories.map(cat => { const category = categoryResolverService.toClass(cat); merge.add(category); return category; }); if (filterField.filterMetadata.defaultSearchCategories) { (filterField.filterMetadata.filterType === FilterType.CASE ? defaultCaseSearchCategories : defaultTaskSearchCategories) .forEach(cat => { if (!merge.has(cat)) { cats.push(cat); } }); } return cats; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLXRhc2stc2VhcmNoLWNhdGVnb3JpZXMtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvdXRpbGl0eS9uYXZpZ2F0aW9uLWl0ZW0tdGFzay1zZWFyY2gtY2F0ZWdvcmllcy1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUluRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFeEQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLHVCQUFnRCxFQUNoRCxzQkFBeUMsRUFDekMsMkJBQXdELEVBQ3hELDJCQUF3RDtJQUN0RyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7UUFDekIsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUNELE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDLGVBQWUsQ0FBZ0IsQ0FBQztJQUV2SCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDWCwrRUFBK0UsbUJBQW1CLENBQUMsZUFDbkcsbURBQW1ELENBQUMsQ0FBQztLQUM1RDtJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDL0QsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEIsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUU7UUFDcEQsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUM7YUFDbEgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEI7UUFDTCxDQUFDLENBQUMsQ0FBQztLQUNWO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhdGVnb3J5fSBmcm9tICcuLi9zZWFyY2gvbW9kZWxzL2NhdGVnb3J5L2NhdGVnb3J5JztcbmltcG9ydCB7VXNlckZpbHRlckNvbnN0YW50c30gZnJvbSAnLi4vZmlsdGVyL21vZGVscy91c2VyLWZpbHRlci1jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRGaWVsZEZyb21EYXRhR3JvdXBzfSBmcm9tICcuL2dldC1maWVsZCc7XG5pbXBvcnQge0ZpbHRlckZpZWxkfSBmcm9tICcuLi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvbW9kZWxzL2ZpbHRlci1maWVsZCc7XG5pbXBvcnQge0RhdGFHcm91cH0gZnJvbSAnLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9kYXRhLWdyb3Vwcyc7XG5pbXBvcnQge0NhdGVnb3J5UmVzb2x2ZXJTZXJ2aWNlfSBmcm9tICcuLi9zZWFyY2gvY2F0ZWdvcnktZmFjdG9yeS9jYXRlZ29yeS1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7RmlsdGVyVHlwZX0gZnJvbSAnLi4vZmlsdGVyL21vZGVscy9maWx0ZXItdHlwZSc7XG5cbi8qKlxuICogQ3JlYXRlcyBzZWFyY2ggY2F0ZWdvcmllcyBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgc3RvcmVkIGluIHRoZSBmaWx0ZXIgY2FzZVxuICogQHBhcmFtIGNhdGVnb3J5UmVzb2x2ZXJTZXJ2aWNlXG4gKiBAcGFyYW0gbmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSB0YXNrIGRhdGEgb2YgYSBuYXZpZ2F0aW9uIGl0ZW0gdGFzaywgdGhlIGRhdGEgbXVzdCBjb250YWluIGEgZmlsdGVyIGZpZWxkLCB0aGF0IGlzIHVzZWRcbiAqIHRvIGdlbmVyYXRlIHRoZSBjYXRlZ29yaWVzXG4gKiBAcGFyYW0gZGVmYXVsdENhc2VTZWFyY2hDYXRlZ29yaWVzIHRoZSBkZWZhdWx0IGNhc2Ugc2VhcmNoIGNhdGVnb3JpZXMgdGhhdCBzaG91bGQgYmUgbWVyZ2VkIHdpdGggdGhlIGNhdGVnb3JpZXMgcHJvdmlkZWQgYnkgdGhlIGZpbHRlclxuICogZmllbGQsIGlmIHRoZSBmaWx0ZXIgbWV0YWRhdGEgYWxsb3cgaXQgYW5kIHRoZSBmaWx0ZXIgaXMgYSBjYXNlIGZpbHRlclxuICogQHBhcmFtIGRlZmF1bHRUYXNrU2VhcmNoQ2F0ZWdvcmllcyB0aGUgZGVmYXVsdCB0YXNrIHNlYXJjaCBjYXRlZ29yaWVzIHRoYXQgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIHRoZSBjYXRlZ29yaWVzIHByb3ZpZGVkIGJ5IHRoZSBmaWx0ZXJcbiAqIGZpZWxkLCBpZiB0aGUgZmlsdGVyIG1ldGFkYXRhIGFsbG93IGl0IGFuZCB0aGUgZmlsdGVyIGlzIGEgdGFzayBmaWx0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hdmlnYXRpb25JdGVtVGFza0NhdGVnb3J5RmFjdG9yeShjYXRlZ29yeVJlc29sdmVyU2VydmljZTogQ2F0ZWdvcnlSZXNvbHZlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtVGFza0RhdGE/OiBBcnJheTxEYXRhR3JvdXA+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q2FzZVNlYXJjaENhdGVnb3JpZXM/OiBBcnJheTxUeXBlPENhdGVnb3J5PGFueT4+PixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFRhc2tTZWFyY2hDYXRlZ29yaWVzPzogQXJyYXk8VHlwZTxDYXRlZ29yeTxhbnk+Pj4pOiBBcnJheTxUeXBlPENhdGVnb3J5PGFueT4+PiB7XG4gICAgaWYgKCFuYXZpZ2F0aW9uSXRlbVRhc2tEYXRhKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyRmllbGQgPSBnZXRGaWVsZEZyb21EYXRhR3JvdXBzKG5hdmlnYXRpb25JdGVtVGFza0RhdGEsIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEKSBhcyBGaWx0ZXJGaWVsZDtcblxuICAgIGlmIChmaWx0ZXJGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBQcm92aWRlZCBuYXZpZ2F0aW9uIGl0ZW0gdGFzayBkYXRhIGRvZXMgbm90IGNvbnRhaW4gYSBmaWx0ZXIgZmllbGQgd2l0aCBJRCAnJHtVc2VyRmlsdGVyQ29uc3RhbnRzLkZJTFRFUl9GSUVMRF9JRFxuICAgICAgICAgICAgfSchIFNlYXJjaCBjYXRlZ29yaWVzIGNhbm5vdCBiZSBnZW5lcmF0ZWQgZnJvbSBpdCFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXJnZSA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBjYXRzID0gZmlsdGVyRmllbGQuZmlsdGVyTWV0YWRhdGEuc2VhcmNoQ2F0ZWdvcmllcy5tYXAoY2F0ID0+IHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yeVJlc29sdmVyU2VydmljZS50b0NsYXNzKGNhdCk7XG4gICAgICAgIG1lcmdlLmFkZChjYXRlZ29yeSk7XG4gICAgICAgIHJldHVybiBjYXRlZ29yeTtcbiAgICB9KTtcblxuICAgIGlmIChmaWx0ZXJGaWVsZC5maWx0ZXJNZXRhZGF0YS5kZWZhdWx0U2VhcmNoQ2F0ZWdvcmllcykge1xuICAgICAgICAoZmlsdGVyRmllbGQuZmlsdGVyTWV0YWRhdGEuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5DQVNFID8gZGVmYXVsdENhc2VTZWFyY2hDYXRlZ29yaWVzIDogZGVmYXVsdFRhc2tTZWFyY2hDYXRlZ29yaWVzKVxuICAgICAgICAgICAgLmZvckVhY2goY2F0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIW1lcmdlLmhhcyhjYXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhdHMucHVzaChjYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjYXRzO1xufVxuIl19