@netgrif/components-core 6.4.0-beta.2 → 6.4.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/esm2020/assets/i18n/de.json +5 -1
  2. package/esm2020/assets/i18n/en.json +5 -1
  3. package/esm2020/assets/i18n/sk.json +5 -1
  4. package/esm2020/lib/header/abstract-header.component.mjs +22 -7
  5. package/esm2020/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.mjs +1 -10
  6. package/esm2020/lib/navigation/model/group-navigation-constants.mjs +116 -35
  7. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +152 -107
  8. package/esm2020/lib/navigation/navigation-tree/abstract-navigation-tree.component.mjs +3 -126
  9. package/esm2020/lib/navigation/service/uri.service.mjs +3 -3
  10. package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +33 -9
  11. package/esm2020/lib/navigation/utility/navigation-item-task-utility-methods.mjs +38 -4
  12. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +5 -2
  13. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.mjs +5 -2
  14. package/esm2020/lib/routing/routing-builder/routing-builder.service.mjs +7 -5
  15. package/esm2020/lib/side-menu/content-components/import-net/abstract-import-net.component.mjs +10 -7
  16. package/esm2020/lib/side-menu/content-components/new-case/model/new-case-injection-data.mjs +1 -1
  17. package/esm2020/lib/utility/navigation-item-default-headers-factory.mjs +22 -0
  18. package/esm2020/lib/utility/public-api.mjs +2 -1
  19. package/esm2020/lib/view/case-view/service/case-view-service.mjs +10 -7
  20. package/fesm2015/netgrif-components-core.mjs +1095 -980
  21. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  22. package/fesm2020/netgrif-components-core.mjs +1089 -976
  23. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  24. package/lib/header/abstract-header.component.d.ts +7 -2
  25. package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.d.ts +0 -1
  26. package/lib/navigation/model/group-navigation-constants.d.ts +115 -34
  27. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +38 -28
  28. package/lib/navigation/navigation-tree/abstract-navigation-tree.component.d.ts +2 -27
  29. package/lib/navigation/utility/filter-extraction.service.d.ts +9 -2
  30. package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +16 -1
  31. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +2 -1
  32. package/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.d.ts +2 -1
  33. package/lib/routing/routing-builder/routing-builder.service.d.ts +2 -0
  34. package/lib/side-menu/content-components/import-net/abstract-import-net.component.d.ts +3 -1
  35. package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +2 -1
  36. package/lib/utility/navigation-item-default-headers-factory.d.ts +3 -0
  37. package/lib/utility/public-api.d.ts +1 -0
  38. package/lib/view/case-view/service/case-view-service.d.ts +2 -2
  39. package/package.json +1 -1
  40. package/src/assets/i18n/de.json +5 -1
  41. package/src/assets/i18n/en.json +5 -1
  42. package/src/assets/i18n/sk.json +5 -1
@@ -16,7 +16,11 @@ export declare abstract class AbstractHeaderComponent implements OnInit, OnDestr
16
16
  protected readonly DEFAULT_COLUMN_WIDTH = 220;
17
17
  protected readonly INPUT_DEBOUNCE_TIME = 600;
18
18
  type: HeaderType;
19
- hideEditMode: boolean;
19
+ hideHeaderMenu: boolean;
20
+ showEditButton: boolean;
21
+ showSortButton: boolean;
22
+ showSearchButton: boolean;
23
+ showTableSection: boolean;
20
24
  headerService: AbstractHeaderService;
21
25
  protected _headerSearch: HeaderSearchService;
22
26
  readonly headerModeEnum: typeof HeaderMode;
@@ -33,6 +37,7 @@ export declare abstract class AbstractHeaderComponent implements OnInit, OnDestr
33
37
  constructor(_injector: Injector, _translate: TranslateService, _overflowService: OverflowService);
34
38
  set maxHeaderColumns(count: number);
35
39
  set responsiveHeaders(responsive: boolean);
40
+ changeHeadersMode(mode: HeaderMode, saveLastMode?: boolean): void;
36
41
  ngOnInit(): void;
37
42
  ngOnDestroy(): void;
38
43
  /**
@@ -52,5 +57,5 @@ export declare abstract class AbstractHeaderComponent implements OnInit, OnDestr
52
57
  protected initializeFormControls(exist: boolean): void;
53
58
  protected initializeValueChanges(): void;
54
59
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractHeaderComponent, [null, null, { optional: true; }]>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<AbstractHeaderComponent, "ncc-abstract-header", never, { "type": "type"; "hideEditMode": "hideEditMode"; "maxHeaderColumns": "maxHeaderColumns"; "responsiveHeaders": "responsiveHeaders"; }, {}, never, never>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractHeaderComponent, "ncc-abstract-header", never, { "type": "type"; "hideHeaderMenu": "hideHeaderMenu"; "showEditButton": "showEditButton"; "showSortButton": "showSortButton"; "showSearchButton": "showSearchButton"; "showTableSection": "showTableSection"; "maxHeaderColumns": "maxHeaderColumns"; "responsiveHeaders": "responsiveHeaders"; }, {}, never, never>;
56
61
  }
@@ -10,6 +10,5 @@ export declare abstract class GroupNavigationComponentResolverService {
10
10
  protected constructor(_taskResourceService: TaskResourceService, _log: LoggerService);
11
11
  protected abstract resolveViewComponent(navigationItemTaskData: Array<DataGroup>): Type<any>;
12
12
  createResolvedViewComponentPortal(taskId: string, parentInjector: Injector): Observable<ComponentPortal<any>>;
13
- protected resolveDefaultHeaders(caze: Array<DataGroup>): Array<string> | undefined;
14
13
  private forwardError;
15
14
  }
@@ -8,50 +8,131 @@ export declare enum GroupNavigationConstants {
8
8
  */
9
9
  GROUP_NAVIGATION_ROUTER_PARAM = "filterCaseId",
10
10
  /**
11
- * Id of the transition that stores the group navigation menu data
11
+ * Field id, that contains the tab name of the navigation item.
12
12
  */
13
- NAVIGATION_CONFIG_TRANSITION_ID = "navigationMenuConfig",
13
+ NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX = "tab_name",
14
14
  /**
15
- * Id of the task ref field that holds the ids of the individual navigation item tasks
15
+ * Boolean field id, that determines if the navigation defines a tab icon.
16
16
  */
17
- NAVIGATION_ENTRIES_TASK_REF_FIELD_ID = "filter_tasks",
17
+ NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX = "use_tab_icon",
18
18
  /**
19
- * Suffix of the field id that contains the name of the navigation entry.
20
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
19
+ * Text field id, that contains the id of the used material icon.
21
20
  */
22
- NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX = "entry_name",
21
+ NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX = "tab_icon",
23
22
  /**
24
- * Suffix of the field id that contains the filter case id.
25
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
26
- */
27
- NAVIGATION_FILTER_CASE_ID_FIELD_ID_SUFFIX = "filter_case_id",
23
+ * TaskRef field, that contains taskId of filter task
24
+ * */
25
+ ITEM_FIELD_ID_FILTER_TASKREF = "current_filter_preview",
28
26
  /**
29
- * Suffix of the field id that is the navigation entry marker.
30
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
31
- */
32
- NAVIGATION_ENTRY_MARKER_FIELD_ID_SUFFIX = "entry_marker",
27
+ * Text field id, that contains title of create case button
28
+ * */
29
+ ITEM_FIELD_ID_CREATE_CASE_BUTTON_TITLE = "create_case_button_title",
33
30
  /**
34
- * Suffix of the boolean field id that determines if the navigation entry defines an icon.
35
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
36
- */
37
- NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX = "use_icon",
31
+ * Text field id, that contains icon name of create case button
32
+ * */
33
+ ITEM_FIELD_ID_CREATE_CASE_BUTTON_ICON = "create_case_button_icon",
38
34
  /**
39
- * Suffix of the text field id that contains the id of the used material icon.
40
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
41
- */
42
- NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX = "icon_name",
35
+ * EnumerationMap field, that contains selected search type for case view
36
+ * */
37
+ ITEM_FIELD_ID_CASE_VIEW_SEARCH_TYPE = "case_view_search_type",
43
38
  /**
44
- * Suffix of the text field id that contains the IDs of roles that are able to view the navigation entry.
45
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
46
- */
47
- NAVIGATION_ENTRY_ALLOWED_ROLES_FIELD_ID_SUFFIX = "allowed_roles",
39
+ * EnumerationMap field, that contains selected search type for task view
40
+ * */
41
+ ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE = "task_view_search_type",
48
42
  /**
49
- * Suffix of the text field id that contains the IDs of roles that are banned from viewing the navigation entry.
50
- * Since the field itself is inserted via task ref the actual id is prefixed by the task id.
51
- */
52
- NAVIGATION_ENTRY_BANNED_ROLES_FIELD_ID_SUFFIX = "banned_roles",
43
+ * Boolean field, that is true if user wants to merge base filter and custom filter
44
+ * */
45
+ ITEM_FIELD_ID_MERGE_FILTERS = "merge_filters",
53
46
  /**
54
- * The number of datagroups in the navigation configuration task that correspond to a single navigation entry.
55
- */
56
- DATAGROUPS_PER_NAVIGATION_ENTRY = 2
47
+ * TaskRef field, that contains taskId of custom filter for task view
48
+ * */
49
+ ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF = "current_additional_filter_preview",
50
+ /**
51
+ * Boolean field, that is true if the user wants to see more menu for case item in case view
52
+ * */
53
+ ITEM_FIELD_ID_CASE_SHOW_MORE_MENU = "case_show_more_menu",
54
+ /**
55
+ * Boolean field, that is true if no input for title in case creation is shown
56
+ * */
57
+ ITEM_FIELD_ID_CASE_TITLE_IN_CREATION = "case_require_title_in_creation",
58
+ /**
59
+ * Text field, that contains banned processes in case creation as a value
60
+ * */
61
+ ITEM_FIELD_ID_CASE_BANNED_PROCESS_CREATION = "case_banned_nets_in_creation",
62
+ /**
63
+ * Boolean field, that is true if the user wants to see more menu for task item in task view
64
+ * */
65
+ ITEM_FIELD_ID_TASK_SHOW_MORE_MENU = "task_show_more_menu",
66
+ /**
67
+ * MultichoiceMap field, that contains selected header modes for case view as a value
68
+ * */
69
+ ITEM_FIELD_ID_CASE_HEADERS_MODE = "case_headers_mode",
70
+ /**
71
+ * Boolean field, that is true if table mode can be applied in case view
72
+ * */
73
+ ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE = "case_allow_header_table_mode",
74
+ /**
75
+ * EnumerationMap field, that contains selected default header mode for case view as a value
76
+ * */
77
+ ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE = "case_headers_default_mode",
78
+ /**
79
+ * Boolean field, that is true to make mode menu in case view visible
80
+ * */
81
+ ITEM_FIELD_ID_CASE_HEADERS_CHANGEABLE = "case_is_header_mode_changeable",
82
+ /**
83
+ * MultichoiceMap field, that contains selected header modes for task view as a value
84
+ * */
85
+ ITEM_FIELD_ID_TASK_HEADERS_MODE = "task_headers_mode",
86
+ /**
87
+ * Boolean field, that is true if table mode can be applied in task view
88
+ * */
89
+ ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE = "task_allow_header_table_mode",
90
+ /**
91
+ * EnumerationMap field, that contains selected default header mode for task view as a value
92
+ * */
93
+ ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE = "task_headers_default_mode",
94
+ /**
95
+ * Boolean field, that is true to make mode menu in task view visible
96
+ * */
97
+ ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE = "task_is_header_mode_changeable",
98
+ /**
99
+ * Boolean field, that is true to use default headers configuration for case view
100
+ * */
101
+ ITEM_FIELD_ID_USE_CASE_DEFAULT_HEADERS = "use_case_default_headers",
102
+ /**
103
+ * Text field, that contains default header metadata separated by comma for case view as a value
104
+ * */
105
+ ITEM_FIELD_ID_CASE_DEFAULT_HEADERS = "case_default_headers",
106
+ /**
107
+ * Boolean field, that is true to use default headers configuration for task view
108
+ * */
109
+ ITEM_FIELD_ID_USE_TASK_DEFAULT_HEADERS = "use_task_default_headers",
110
+ /**
111
+ * Text field, that contains default header metadata separated by comma for task view as a value
112
+ * */
113
+ ITEM_FIELD_ID_TASK_DEFAULT_HEADERS = "task_default_headers",
114
+ /**
115
+ * MultichoiceMap field, that contains allowed roles as value
116
+ * */
117
+ ITEM_FIELD_ID_ALLOWED_ROLES = "allowed_roles",
118
+ /**
119
+ * MultichoiceMap field, that contains banned roles as value
120
+ * */
121
+ ITEM_FIELD_ID_BANNED_ROLES = "banned_roles",
122
+ /**
123
+ * Text field, that contains icon identifier
124
+ * */
125
+ ITEM_FIELD_ID_MENU_ICON = "menu_icon",
126
+ /**
127
+ * I18n field, that contains labels of menu item
128
+ * */
129
+ ITEM_FIELD_ID_MENU_NAME = "menu_name",
130
+ /**
131
+ * Text field, that contains URI
132
+ * */
133
+ ITEM_FIELD_ID_NODE_PATH = "nodePath",
134
+ /**
135
+ * Boolean field, that is true if item contains child items
136
+ * */
137
+ ITEM_FIELD_ID_HAS_CHILDREN = "hasChildren"
57
138
  }
@@ -18,6 +18,7 @@ import { UserService } from '../../user/services/user.service';
18
18
  import { LoadingEmitter } from '../../utility/loading-emitter';
19
19
  import { UriNodeResource } from '../model/uri-resource';
20
20
  import { UriService } from '../service/uri.service';
21
+ import { TranslateService } from "@ngx-translate/core";
21
22
  import * as i0 from "@angular/core";
22
23
  export interface ConfigDoubleMenu {
23
24
  mode: MatDrawerMode;
@@ -25,18 +26,22 @@ export interface ConfigDoubleMenu {
25
26
  disableClose: boolean;
26
27
  width: number;
27
28
  }
28
- export interface ViewNavigationItem extends View {
29
+ export interface NavigationItem extends View {
29
30
  id: string;
30
31
  resource?: Case;
31
32
  }
32
- export declare const FILTER_IDENTIFIERS: string[];
33
- export declare const FILTER_VIEW_TASK_TRANSITION_ID = "view";
34
- export declare const FILTER_DEFAULT_HEADERS_ID = "default_headers";
33
+ export declare const MENU_IDENTIFIERS: string[];
34
+ export declare const SETTINGS_TRANSITION_ID = "item_settings";
35
+ declare enum MenuOrder {
36
+ Ascending = 0,
37
+ Descending = 1
38
+ }
35
39
  export declare abstract class AbstractNavigationDoubleDrawerComponent implements OnInit, OnDestroy {
36
40
  protected _router: Router;
37
41
  protected _activatedRoute: ActivatedRoute;
38
42
  protected _breakpoint: BreakpointObserver;
39
43
  protected _languageService: LanguageService;
44
+ protected _translateService: TranslateService;
40
45
  protected _userService: UserService;
41
46
  protected _accessService: AccessService;
42
47
  protected _log: LoggerService;
@@ -62,23 +67,23 @@ export declare abstract class AbstractNavigationDoubleDrawerComponent implements
62
67
  foldersCategoryName: string;
63
68
  viewsCategoryName: string;
64
69
  /**
65
- * Array of folder nodes on left side
70
+ * List of displayed items on the left side
71
+ * */
72
+ leftItems: Array<NavigationItem>;
73
+ /**
74
+ * List of displayed items on the right side
66
75
  * */
67
- leftNodes: Array<UriNodeResource>;
76
+ rightItems: Array<NavigationItem>;
68
77
  /**
69
- * Array of folder nodes on right side
78
+ * List of hidden items
70
79
  * */
71
- rightNodes: Array<UriNodeResource>;
80
+ moreItems: Array<NavigationItem>;
72
81
  /**
73
- * Processes that can be displayed under folders on right side menu
82
+ * List of custom items in more menu
74
83
  * */
75
- views: Array<ViewNavigationItem>;
76
- moreMenuItems: Array<ViewNavigationItem>;
77
- protected _leftNodesSubscription: Subscription;
78
- protected _rightNodesSubscription: Subscription;
79
- protected _filtersSubscription: Subscription;
84
+ hiddenCustomItems: Array<NavigationItem>;
85
+ itemsOrder: MenuOrder;
80
86
  protected _breakpointSubscription: Subscription;
81
- protected _rootSubscription: Subscription;
82
87
  protected _currentNodeSubscription: Subscription;
83
88
  /**
84
89
  * Currently display uri
@@ -92,15 +97,13 @@ export declare abstract class AbstractNavigationDoubleDrawerComponent implements
92
97
  protected _configRightMenu: ConfigDoubleMenu;
93
98
  protected _childCustomViews: {
94
99
  [uri: string]: {
95
- [key: string]: ViewNavigationItem;
100
+ [key: string]: NavigationItem;
96
101
  };
97
102
  };
98
- protected constructor(_router: Router, _activatedRoute: ActivatedRoute, _breakpoint: BreakpointObserver, _languageService: LanguageService, _userService: UserService, _accessService: AccessService, _log: LoggerService, _config: ConfigurationService, _uriService: UriService, _impersonationUserSelect: ImpersonationUserSelectService, _impersonation: ImpersonationService, _dynamicRoutingService: DynamicNavigationRouteProviderService);
103
+ protected constructor(_router: Router, _activatedRoute: ActivatedRoute, _breakpoint: BreakpointObserver, _languageService: LanguageService, _translateService: TranslateService, _userService: UserService, _accessService: AccessService, _log: LoggerService, _config: ConfigurationService, _uriService: UriService, _impersonationUserSelect: ImpersonationUserSelectService, _impersonation: ImpersonationService, _dynamicRoutingService: DynamicNavigationRouteProviderService);
99
104
  ngOnInit(): void;
100
105
  get currentNode(): UriNodeResource;
101
106
  set currentNode(node: UriNodeResource);
102
- protected resolveUriForChildViews(configPath: string, childView: View): void;
103
- protected resolveHiddenMenuItemFromChildViews(configPath: string, childView: View): void;
104
107
  ngOnDestroy(): void;
105
108
  get configLeftMenu(): ConfigDoubleMenu;
106
109
  get configRightMenu(): ConfigDoubleMenu;
@@ -126,25 +129,32 @@ export declare abstract class AbstractNavigationDoubleDrawerComponent implements
126
129
  * Current level is set to a lower number in order to set the left side menu.
127
130
  * */
128
131
  onBackClick(): void;
129
- onNodeClick(node: UriNodeResource): void;
130
- onViewClick(view: ViewNavigationItem): void;
132
+ onItemClick(item: NavigationItem): void;
133
+ hasItemChildren(item: NavigationItem): boolean;
134
+ isItemAndNodeEqual(item: NavigationItem, node: UriNodeResource): boolean;
131
135
  protected loadLeftSide(): void;
132
136
  protected loadRightSide(): void;
133
- protected resolveFilterCaseToViewNavigationItem(filter: Case): ViewNavigationItem | undefined;
137
+ loadMoreItems(): void;
138
+ isAscending(): boolean;
139
+ switchOrder(): void;
140
+ protected resolveCustomViewsInRightSide(): void;
141
+ protected resolveItemCaseToNavigationItem(itemCase: Case): NavigationItem | undefined;
142
+ private getTranslation;
134
143
  protected resolveAccessRoles(filter: Case, roleType: string): Array<RoleAccess> | undefined;
135
- protected getFilterRoutingPath(filterCase: Case): string;
136
- protected compareStrings(a: string, b: string): number;
144
+ protected getItemRoutingPath(itemCase: Case): string;
137
145
  /**
138
146
  * Function to check whether the back button should be displayed
139
147
  * @returns boolean if the back button should be displayed
140
148
  * */
141
149
  isOnZeroLevel(): boolean;
142
- isLeftNodesEmpty(): boolean;
143
- isRightNodesEmpty(): boolean;
144
- isViewsEmpty(): boolean;
150
+ isLeftItemsEmpty(): boolean;
151
+ isRightItemsEmpty(): boolean;
145
152
  uriNodeTrackBy(index: number, node: UriNodeResource): string;
146
- viewsTrackBy(index: number, view: ViewNavigationItem): string;
153
+ itemsTrackBy(index: number, item: NavigationItem): string;
147
154
  onResizeEvent(event: ResizeEvent): void;
155
+ protected resolveUriForChildViews(configPath: string, childView: View): void;
156
+ protected resolveHiddenMenuItemFromChildViews(configPath: string, childView: View): void;
148
157
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractNavigationDoubleDrawerComponent, never>;
149
158
  static ɵcmp: i0.ɵɵComponentDeclaration<AbstractNavigationDoubleDrawerComponent, "ncc-abstract-navigation-double-drawer", never, { "portalLeftMenu": "portalLeftMenu"; "portalRightMenu": "portalRightMenu"; "imageRouterLink": "imageRouterLink"; "imageAlt": "imageAlt"; "image": "image"; "profileRouterLink": "profileRouterLink"; "includeUser": "includeUser"; "includeLanguage": "includeLanguage"; "includeMoreMenu": "includeMoreMenu"; "includeImpersonation": "includeImpersonation"; "allClosable": "allClosable"; "folderIcon": "folderIcon"; "openedFolderIcon": "openedFolderIcon"; "filterIcon": "filterIcon"; "foldersCategoryName": "foldersCategoryName"; "viewsCategoryName": "viewsCategoryName"; }, {}, never, never>;
150
159
  }
160
+ export {};
@@ -1,16 +1,15 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { NestedTreeControl } from '@angular/cdk/tree';
3
3
  import { ConfigurationService } from '../../configuration/configuration.service';
4
- import { Services, View, Views } from '../../../commons/schema';
4
+ import { View, Views } from '../../../commons/schema';
5
5
  import { Router } from '@angular/router';
6
6
  import { MatTreeNestedDataSource } from '@angular/material/tree';
7
- import { Observable, ReplaySubject } from 'rxjs';
7
+ import { ReplaySubject } from 'rxjs';
8
8
  import { LoggerService } from '../../logger/services/logger.service';
9
9
  import { UserService } from '../../user/services/user.service';
10
10
  import { AbstractNavigationResizableDrawerComponent } from '../navigation-drawer/abstract-navigation-resizable-drawer.component';
11
11
  import { ActiveGroupService } from '../../groups/services/active-group.service';
12
12
  import { TaskResourceService } from '../../resources/engine-endpoint/task-resource.service';
13
- import { DataGroup } from '../../resources/interface/data-groups';
14
13
  import { LanguageService } from '../../translate/language.service';
15
14
  import { DynamicNavigationRouteProviderService } from '../../routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service';
16
15
  import { AccessService } from "../../authorization/permission/access.service";
@@ -37,11 +36,9 @@ export declare abstract class AbstractNavigationTreeComponent extends AbstractNa
37
36
  parentUrl: string;
38
37
  routerChange: boolean;
39
38
  protected _reloadNavigation: ReplaySubject<void>;
40
- protected _groupNavigationConfig: Services['groupNavigation'];
41
39
  private _subscriptions;
42
40
  private _subGroupResolution;
43
41
  private _subLangChange;
44
- private _groupNavNodesCount;
45
42
  treeControl: NestedTreeControl<NavigationNode>;
46
43
  dataSource: MatTreeNestedDataSource<NavigationNode>;
47
44
  protected constructor(_config: ConfigurationService, _router: Router, _log: LoggerService, _userService: UserService, _accessService: AccessService, _activeGroupService: ActiveGroupService, _taskResourceService: TaskResourceService, _languageService: LanguageService, _navigationRouteProvider: DynamicNavigationRouteProviderService);
@@ -80,28 +77,6 @@ export declare abstract class AbstractNavigationTreeComponent extends AbstractNa
80
77
  protected appendRouteSegment(parentUrl: string, routeSegment: string): string;
81
78
  protected resolveLevels(nodes: Array<NavigationNode>, parentLevel?: number): void;
82
79
  protected resolveChange(): void;
83
- /**
84
- * @returns `true` if the layout of the provided {@link View} node's name indicates it is a
85
- * [group navigation outlet]{@link GroupNavigationConstants#GROUP_NAVIGATION_OUTLET}. Returns `false` otherwise.
86
- */
87
- protected isGroupNavigationNode(view: View): boolean;
88
- /**
89
- * Forces a reload of the group navigation nodes.
90
- * @param insertPosition the position in the container where group navigation nodes reside
91
- * @param nodeContainer the node container that contains the group navigation nodes
92
- * (can be an inner node of the navigation tree or its root)
93
- */
94
- protected loadGroupNavigationNodes(insertPosition: number, nodeContainer: Array<NavigationNode>): void;
95
- protected generateGroupNavigationNodes(): Observable<Array<NavigationNode>>;
96
- protected convertDatagroupsToNavEntries(navConfigDatagroups: Array<DataGroup>): Array<NavigationNode>;
97
- /**
98
- * Splits the provided strings on the ':' character and returns an array of the resulting splits.
99
- *
100
- * If any of the input strings split into fewer or more than 2 strings an error is thrown.
101
- *
102
- * @param joined a list of strings in the form `<role identifier>:<net identifier>`
103
- */
104
- protected extractRoleAndNetId(joined: Array<string>): Array<Array<string>>;
105
80
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractNavigationTreeComponent, never>;
106
81
  static ɵcmp: i0.ɵɵComponentDeclaration<AbstractNavigationTreeComponent, "ncc-abstract-navigation-tree", never, { "viewPath": "viewPath"; "parentUrl": "parentUrl"; "routerChange": "routerChange"; }, {}, never, never>;
107
82
  }
@@ -4,6 +4,9 @@ import { FilterRepository } from '../../filter/filter.repository';
4
4
  import { LoggerService } from '../../logger/services/logger.service';
5
5
  import { TaskResourceService } from '../../resources/engine-endpoint/task-resource.service';
6
6
  import { DataField } from '../../data-fields/models/abstract-data-field';
7
+ import { AllowedNetsService } from "../../allowed-nets/services/allowed-nets.service";
8
+ import { AllowedNetsServiceFactory } from "../../allowed-nets/services/factory/allowed-nets-service-factory";
9
+ import { BaseAllowedNetsService } from "../../allowed-nets/services/base-allowed-nets.service";
7
10
  import * as i0 from "@angular/core";
8
11
  /**
9
12
  * This service is able to load the full saved filter including all of its ancestor filters.
@@ -11,10 +14,14 @@ import * as i0 from "@angular/core";
11
14
  export declare class FilterExtractionService {
12
15
  protected _filterRepository: FilterRepository;
13
16
  protected _taskResourceService: TaskResourceService;
17
+ protected _factory: AllowedNetsServiceFactory;
18
+ protected baseAllowedNets: BaseAllowedNetsService;
14
19
  protected _log: LoggerService;
15
20
  protected static readonly UNTABBED_VIEW_ID_EXTRACTOR = "^.*?(-\\d+)?$";
16
- constructor(_filterRepository: FilterRepository, _taskResourceService: TaskResourceService, _log: LoggerService);
17
- extractCompleteFilterFromData(dataSection: Array<DataGroup>): Filter | undefined;
21
+ constructor(_filterRepository: FilterRepository, _taskResourceService: TaskResourceService, _factory: AllowedNetsServiceFactory, baseAllowedNets: BaseAllowedNetsService, _log: LoggerService);
22
+ extractAdditionalFilterAllowedNets(dataSection: Array<DataGroup>): AllowedNetsService;
23
+ extractCompleteAdditionalFilterFromData(dataSection: Array<DataGroup>): Filter | undefined;
24
+ extractCompleteFilterFromData(dataSection: Array<DataGroup>, fieldId?: string): Filter | undefined;
18
25
  protected extractViewFilter(originViewIdField: DataField<any>): Filter | undefined;
19
26
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterExtractionService, never>;
20
27
  static ɵprov: i0.ɵɵInjectableDeclaration<FilterExtractionService>;
@@ -2,11 +2,14 @@ import { GroupNavigationItemLabel } from '../model/group-navigation-item-label';
2
2
  import { DataGroup } from '../../resources/interface/data-groups';
3
3
  import { Filter } from '../../filter/models/filter';
4
4
  import { FilterField } from '../../data-fields/filter-field/models/filter-field';
5
+ import { SearchMode } from "../../search/models/component-configuration/search-mode";
6
+ import { TranslateService } from "@ngx-translate/core";
5
7
  /**
6
8
  * Extracts the item name and item icon (if any) rom a section of the navigation item task data.
7
9
  * @param dataSection an array containing the data groups that correspond to a single navigation entry
10
+ * @param translateService is a service to translate label name
8
11
  */
9
- export declare function extractIconAndTitle(dataSection: Array<DataGroup>): GroupNavigationItemLabel;
12
+ export declare function extractIconAndTitle(dataSection: Array<DataGroup>, translateService: TranslateService): GroupNavigationItemLabel;
10
13
  /**
11
14
  * Based on provided parameter extracts allowed or banned roles into an Array of strings from a section of the navigation item task data.
12
15
  * Each item has format ROLE_IMPORT_ID:NET_IMPORT_ID
@@ -31,3 +34,15 @@ export declare function extractFilterFieldFromData(dataSection: Array<DataGroup>
31
34
  * Throws an error if this is not possible.
32
35
  */
33
36
  export declare function extractFilterFromFilterField(filterField: FilterField): Filter;
37
+ /**
38
+ * Extracts the selected search type from enumeration field of the navigation item task data.
39
+ * @returns a {@link SearchMode} containing {@link SearchMode.ADVANCED} or {@link SearchMode.FULLTEXT} or {@link undefined}
40
+ * if unexpected value is found
41
+ * */
42
+ export declare function extractSearchTypeFromData(dataSection: Array<DataGroup>, typeFieldId: string): SearchMode;
43
+ /**
44
+ * Extracts field value from data
45
+ * @returns value of extracted field
46
+ * @throws Error if no field is found
47
+ * */
48
+ export declare function extractFieldValueFromData<T>(dataSection: Array<DataGroup>, fieldId: string): T;
@@ -69,6 +69,7 @@ export declare abstract class AbstractTaskPanelComponent extends AbstractPanelWi
69
69
  hidePanelHeader: boolean;
70
70
  actionButtonTemplates: Array<TemplateRef<any>>;
71
71
  actionRowJustifyContent: 'space-between' | 'flex-start' | 'flex-end' | 'center' | 'space-around' | 'initial' | 'start' | 'end' | 'left' | 'right' | 'revert' | 'inherit' | 'unset';
72
+ showMoreMenu: boolean;
72
73
  thisContext: TaskPanelContext;
73
74
  set forceLoadDataOnOpen(force: boolean);
74
75
  textEllipsis: boolean;
@@ -119,5 +120,5 @@ export declare abstract class AbstractTaskPanelComponent extends AbstractPanelWi
119
120
  isForceOpen(): boolean;
120
121
  getContentMinHeight(): string;
121
122
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTaskPanelComponent, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null, null, null, null, { optional: true; }, { optional: true; }]>;
122
- static ɵcmp: i0.ɵɵComponentDeclaration<AbstractTaskPanelComponent, "ncc-abstract-legal-notice", never, { "taskListVirtualScroll": "taskListVirtualScroll"; "panelContentComponent": "panelContentComponent"; "selectedHeaders$": "selectedHeaders$"; "first": "first"; "last": "last"; "responsiveBody": "responsiveBody"; "preventCollapse": "preventCollapse"; "hidePanelHeader": "hidePanelHeader"; "actionButtonTemplates": "actionButtonTemplates"; "actionRowJustifyContent": "actionRowJustifyContent"; "forceLoadDataOnOpen": "forceLoadDataOnOpen"; "textEllipsis": "textEllipsis"; "taskPanelData": "taskPanelData"; }, { "taskEvent": "taskEvent"; "panelRefOutput": "panelRefOutput"; }, never, never>;
123
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractTaskPanelComponent, "ncc-abstract-legal-notice", never, { "taskListVirtualScroll": "taskListVirtualScroll"; "panelContentComponent": "panelContentComponent"; "selectedHeaders$": "selectedHeaders$"; "first": "first"; "last": "last"; "responsiveBody": "responsiveBody"; "preventCollapse": "preventCollapse"; "hidePanelHeader": "hidePanelHeader"; "actionButtonTemplates": "actionButtonTemplates"; "actionRowJustifyContent": "actionRowJustifyContent"; "showMoreMenu": "showMoreMenu"; "forceLoadDataOnOpen": "forceLoadDataOnOpen"; "textEllipsis": "textEllipsis"; "taskPanelData": "taskPanelData"; }, { "taskEvent": "taskEvent"; "panelRefOutput": "panelRefOutput"; }, never, never>;
123
124
  }
@@ -24,6 +24,7 @@ export declare abstract class AbstractDefaultTaskListComponent extends TabbedVir
24
24
  responsiveBody: boolean;
25
25
  forceLoadDataOnOpen: boolean;
26
26
  textEllipsis: boolean;
27
+ showMoreMenu: boolean;
27
28
  set allowMultiOpen(bool: boolean);
28
29
  get allowMultiOpen(): boolean;
29
30
  /**
@@ -42,5 +43,5 @@ export declare abstract class AbstractDefaultTaskListComponent extends TabbedVir
42
43
  addToPanelRefs(task: TaskPanelData, panelRef: MatExpansionPanel): void;
43
44
  onRedirect(): void;
44
45
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDefaultTaskListComponent, [null, null, { optional: true; }, null]>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<AbstractDefaultTaskListComponent, "ncc-abstract-default-task-list", never, { "loading$": "loading$"; "selectedHeaders$": "selectedHeaders$"; "responsiveBody": "responsiveBody"; "forceLoadDataOnOpen": "forceLoadDataOnOpen"; "textEllipsis": "textEllipsis"; "allowMultiOpen": "allowMultiOpen"; }, { "taskEvent": "taskEvent"; }, never, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractDefaultTaskListComponent, "ncc-abstract-default-task-list", never, { "loading$": "loading$"; "selectedHeaders$": "selectedHeaders$"; "responsiveBody": "responsiveBody"; "forceLoadDataOnOpen": "forceLoadDataOnOpen"; "textEllipsis": "textEllipsis"; "showMoreMenu": "showMoreMenu"; "allowMultiOpen": "allowMultiOpen"; }, { "taskEvent": "taskEvent"; }, never, never>;
46
47
  }
@@ -2,6 +2,7 @@ import { Type } from '@angular/core';
2
2
  import { ConfigurationService } from '../../configuration/configuration.service';
3
3
  import { ViewService } from '../view-service/view.service';
4
4
  import { Router } from '@angular/router';
5
+ import { View } from '../../../commons/schema';
5
6
  import { LoggerService } from '../../logger/services/logger.service';
6
7
  import { AbstractGroupNavigationComponentResolverComponent } from '../../navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component';
7
8
  import { DynamicNavigationRouteProviderService } from '../dynamic-navigation-route-provider/dynamic-navigation-route-provider.service';
@@ -21,6 +22,7 @@ export declare class RoutingBuilderService {
21
22
  private constructRouteObject;
22
23
  private resolveComponentClass;
23
24
  private resolveComponentClassFromLayout;
25
+ static parseClassNameFromView(view: View, configPath: string): string;
24
26
  private defaultRoutesRedirects;
25
27
  static ɵfac: i0.ɵɵFactoryDeclaration<RoutingBuilderService, [null, null, null, null, null, { optional: true; }]>;
26
28
  static ɵprov: i0.ɵɵInjectableDeclaration<RoutingBuilderService>;
@@ -8,6 +8,7 @@ import { FileUploadDataModel } from '../../../data-fields/file-field/models/file
8
8
  import { Subscription } from 'rxjs';
9
9
  import { TranslateService } from '@ngx-translate/core';
10
10
  import { PetriNetEventOutcome } from '../../../event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome';
11
+ import { UriService } from "../../../navigation/service/uri.service";
11
12
  import * as i0 from "@angular/core";
12
13
  export declare class FileUploadModel {
13
14
  stringId: string;
@@ -26,6 +27,7 @@ interface FileList {
26
27
  export declare abstract class AbstractImportNetComponent implements AfterViewInit {
27
28
  protected _sideMenuControl: SideMenuControl;
28
29
  protected _petriNetResource: PetriNetResourceService;
30
+ protected _uriService: UriService;
29
31
  protected _log: LoggerService;
30
32
  protected _snackbar: SnackBarService;
31
33
  protected _translate: TranslateService;
@@ -34,7 +36,7 @@ export declare abstract class AbstractImportNetComponent implements AfterViewIni
34
36
  releaseTypeControl: FormControl;
35
37
  protected _response: PetriNetEventOutcome;
36
38
  protected _fileInput: HTMLInputElement;
37
- constructor(_sideMenuControl: SideMenuControl, _petriNetResource: PetriNetResourceService, _log: LoggerService, _snackbar: SnackBarService, _translate: TranslateService);
39
+ constructor(_sideMenuControl: SideMenuControl, _petriNetResource: PetriNetResourceService, _uriService: UriService, _log: LoggerService, _snackbar: SnackBarService, _translate: TranslateService);
38
40
  ngAfterViewInit(): void;
39
41
  get fileList(): Array<FileUploadModel>;
40
42
  get isAllFinished(): boolean;
@@ -7,12 +7,13 @@ export interface NewCaseInjectionData extends SideMenuInjectionData {
7
7
  }
8
8
  export declare const NAE_NEW_CASE_CREATION_CONFIGURATION_DATA: InjectionToken<NewCaseCreationConfigurationData>;
9
9
  /**
10
- * injection token used for new case title configuration
10
+ * injection token used for new case configuration
11
11
  */
12
12
  export interface NewCaseCreationConfigurationData {
13
13
  enableCaseTitle: boolean;
14
14
  isCaseTitleRequired: boolean;
15
15
  newCaseButtonConfig?: NewCaseButtonConfiguration;
16
+ blockNets?: string[];
16
17
  }
17
18
  export interface NewCaseButtonConfiguration {
18
19
  createCaseButtonTitle?: string;
@@ -0,0 +1,3 @@
1
+ import { DataGroup } from "../resources/interface/data-groups";
2
+ export declare function navigationItemCaseViewDefaultHeadersFactory(navigationItemTaskData: DataGroup[]): Array<string> | undefined;
3
+ export declare function navigationItemTaskViewDefaultHeadersFactory(navigationItemTaskData: DataGroup[]): Array<string> | undefined;
@@ -20,6 +20,7 @@ export * from './refresh-tree';
20
20
  export * from './destroy-subscription';
21
21
  export * from './navigation-item-task-filter-factory';
22
22
  export * from './navigation-item-task-search-categories-factory';
23
+ export * from './navigation-item-default-headers-factory';
23
24
  export * from './is-empty.pipe';
24
25
  export * from './is-non-empty.pipe';
25
26
  export * from './contains.pipe';
@@ -55,8 +55,8 @@ export declare class CaseViewService extends AbstractSortableViewComponent imple
55
55
  nextPagePagination(length: number, pageIndex: number, requestContext?: PageLoadRequestContext): void;
56
56
  private isLoadingRelevantFilter;
57
57
  createNewCase(newCaseCreationConfiguration?: NewCaseCreationConfigurationData): Observable<Case>;
58
- createDefaultNewCase(): Observable<Case>;
59
- getNewCaseAllowedNets(): Observable<Array<PetriNetReferenceWithPermissions>>;
58
+ createDefaultNewCase(newCaseCreationConfiguration?: NewCaseCreationConfigurationData): Observable<Case>;
59
+ getNewCaseAllowedNets(blockNets?: string[]): Observable<Array<PetriNetReferenceWithPermissions>>;
60
60
  /**
61
61
  * Returns number of allowed nets of case view
62
62
  * @returns length of allowedNets array if it is defined, 0 if it is undefined
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netgrif/components-core",
3
- "version": "6.4.0-beta.2",
3
+ "version": "6.4.0-beta.4",
4
4
  "description": "Netgrif Application engine frontend core Angular library",
5
5
  "homepage": "https://components.netgrif.com",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -475,7 +475,11 @@
475
475
  "errorCreate": "Fehler beim Erstellen des Falles "
476
476
  },
477
477
  "dynamicNavigation": {
478
- "couldNotResolveView": "Ein Fehler ist aufgetreten während des Ansichtauflösungsprocess. Der Ansicht kann nicht angezeigt werden"
478
+ "couldNotResolveView": "Ein Fehler ist aufgetreten während des Ansichtauflösungsprocess. Der Ansicht kann nicht angezeigt werden",
479
+ "filterNotFound": "Diese Ansicht hat keinen Filter",
480
+ "loadMoreItems": "Mehr",
481
+ "ascending": "Aufsteigend",
482
+ "descending": "Absteigend"
479
483
  },
480
484
  "impersonation": {
481
485
  "user": {
@@ -476,7 +476,11 @@
476
476
  "errorCreate": "Error while creating case "
477
477
  },
478
478
  "dynamicNavigation": {
479
- "couldNotResolveView": "An error has occurred during the view resolution process. The view could not be displayed"
479
+ "couldNotResolveView": "An error has occurred during the view resolution process. The view could not be displayed",
480
+ "filterNotFound": "This view has no filter",
481
+ "loadMoreItems": "More",
482
+ "ascending": "Ascending",
483
+ "descending": "Descending"
480
484
  },
481
485
  "impersonation": {
482
486
  "user": {
@@ -475,7 +475,11 @@
475
475
  "errorCreate": "Chyba pri vytváraní prípadu "
476
476
  },
477
477
  "dynamicNavigation": {
478
- "couldNotResolveView": "Počas načítania zobrazenia sa vyskytla chyba. Zobrazenie nie je možné zobraziť"
478
+ "couldNotResolveView": "Počas načítania zobrazenia sa vyskytla chyba. Zobrazenie nie je možné zobraziť",
479
+ "filterNotFound": "Toto zobrazenie neobsahuje filter",
480
+ "loadMoreItems": "Viac",
481
+ "ascending": "Vzostupne",
482
+ "descending": "Zostupne"
479
483
  },
480
484
  "impersonation": {
481
485
  "user": {