@netgrif/components-core 6.4.0-beta.3 → 6.4.0-beta.5

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 (57) hide show
  1. package/esm2020/lib/actions/front-action.module.mjs +28 -0
  2. package/esm2020/lib/actions/model/front-action-definition.mjs +2 -0
  3. package/esm2020/lib/actions/model/router-action-definitions.mjs +8 -0
  4. package/esm2020/lib/actions/model/task-action-definitions.mjs +16 -0
  5. package/esm2020/lib/actions/public-api.mjs +6 -0
  6. package/esm2020/lib/actions/services/front-action.service.mjs +27 -0
  7. package/esm2020/lib/data-fields/data-fields.module.mjs +1 -1
  8. package/esm2020/lib/data-fields/models/changed-fields.mjs +1 -1
  9. package/esm2020/lib/event/model/event-constants.mjs +5 -1
  10. package/esm2020/lib/event/services/event.service.mjs +23 -1
  11. package/esm2020/lib/filter/user-filters.service.mjs +1 -1
  12. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +45 -1
  13. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +5 -2
  14. package/esm2020/lib/panel/task-panel-single/abstract-single-task.component.mjs +11 -5
  15. package/esm2020/lib/public/factories/public-search-factory.mjs +15 -4
  16. package/esm2020/lib/registry/front-action-registry.service.mjs +34 -0
  17. package/esm2020/lib/registry/public-api.mjs +2 -1
  18. package/esm2020/lib/resources/interface/event-outcome.mjs +1 -1
  19. package/esm2020/lib/side-menu/content-components/injection-tokens.mjs +2 -1
  20. package/esm2020/lib/side-menu/content-components/public-api.mjs +2 -1
  21. package/esm2020/lib/side-menu/content-components/task-view/model/task-view-injection-data.mjs +2 -0
  22. package/esm2020/lib/task/services/task-data.service.mjs +11 -9
  23. package/esm2020/lib/task-content/services/single-task-content.service.mjs +4 -4
  24. package/esm2020/lib/task-content/services/task-content.service.mjs +6 -21
  25. package/esm2020/lib/task-content/services/unlimited-task-content.service.mjs +4 -4
  26. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +18 -34
  27. package/esm2020/public-api.mjs +2 -1
  28. package/fesm2015/netgrif-components-core.mjs +623 -469
  29. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  30. package/fesm2020/netgrif-components-core.mjs +623 -465
  31. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  32. package/lib/actions/front-action.module.d.ts +9 -0
  33. package/lib/actions/model/front-action-definition.d.ts +5 -0
  34. package/lib/actions/model/router-action-definitions.d.ts +2 -0
  35. package/lib/actions/model/task-action-definitions.d.ts +3 -0
  36. package/lib/actions/public-api.d.ts +5 -0
  37. package/lib/actions/services/front-action.service.d.ts +15 -0
  38. package/lib/data-fields/models/changed-fields.d.ts +7 -6
  39. package/lib/event/model/event-constants.d.ts +5 -1
  40. package/lib/event/services/event.service.d.ts +3 -0
  41. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +12 -0
  42. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +2 -1
  43. package/lib/panel/task-panel-single/abstract-single-task.component.d.ts +5 -3
  44. package/lib/public/factories/public-search-factory.d.ts +3 -0
  45. package/lib/registry/front-action-registry.service.d.ts +13 -0
  46. package/lib/registry/public-api.d.ts +1 -0
  47. package/lib/resources/interface/event-outcome.d.ts +5 -0
  48. package/lib/side-menu/content-components/injection-tokens.d.ts +1 -0
  49. package/lib/side-menu/content-components/public-api.d.ts +1 -0
  50. package/lib/side-menu/content-components/task-view/model/task-view-injection-data.d.ts +4 -0
  51. package/lib/task/services/task-data.service.d.ts +4 -2
  52. package/lib/task-content/services/single-task-content.service.d.ts +2 -2
  53. package/lib/task-content/services/task-content.service.d.ts +6 -16
  54. package/lib/task-content/services/unlimited-task-content.service.d.ts +2 -2
  55. package/lib/view/task-view/abstract-single-task-view.component.d.ts +6 -5
  56. package/package.json +1 -1
  57. package/public-api.d.ts +1 -0
@@ -75,7 +75,7 @@ import moment from 'moment';
75
75
  import * as Buffer from 'buffer';
76
76
  import { ENTER, COMMA } from '@angular/cdk/keycodes';
77
77
  import * as i2$3 from '@angular/router';
78
- import { NavigationEnd } from '@angular/router';
78
+ import { NavigationEnd, Router } from '@angular/router';
79
79
  import * as i1$6 from '@angular/cdk/overlay';
80
80
  import { OverlayModule } from '@angular/cdk/overlay';
81
81
  import { orderBy } from 'natural-orderby';
@@ -7090,6 +7090,10 @@ var EventConstants;
7090
7090
  * Changed fields parameter of {@link SetDataEventOutcome}
7091
7091
  */
7092
7092
  EventConstants["CHANGED_FIELDS"] = "changedFields";
7093
+ /**
7094
+ * Front actions parameter of {@link EventOutcome}
7095
+ */
7096
+ EventConstants["FRONT_ACTIONS"] = "frontActions";
7093
7097
  })(EventConstants || (EventConstants = {}));
7094
7098
 
7095
7099
  class EventService {
@@ -7137,6 +7141,28 @@ class EventService {
7137
7141
  });
7138
7142
  return changedFieldsMap;
7139
7143
  }
7144
+ parseFrontActionsFromOutcomeTree(outcome) {
7145
+ const frontActions = [];
7146
+ if (!!outcome.outcomes && outcome.outcomes.length > 0) {
7147
+ return this.parseFrontActionsFromOutcomeTreeRecursive(outcome.outcomes, frontActions);
7148
+ }
7149
+ else
7150
+ return frontActions;
7151
+ }
7152
+ parseFrontActionsFromOutcomeTreeRecursive(outcomes, frontActions) {
7153
+ outcomes.forEach(childOutcome => {
7154
+ if (EventConstants.FRONT_ACTIONS in childOutcome) {
7155
+ const childFrontActions = childOutcome.frontActions;
7156
+ if (!!childFrontActions) {
7157
+ frontActions.push(...childFrontActions);
7158
+ }
7159
+ }
7160
+ if (!!childOutcome.outcomes && childOutcome.outcomes.length > 0) {
7161
+ this.parseFrontActionsFromOutcomeTreeRecursive(childOutcome.outcomes, frontActions);
7162
+ }
7163
+ });
7164
+ return frontActions;
7165
+ }
7140
7166
  }
7141
7167
  EventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7142
7168
  EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EventService, providedIn: 'root' });
@@ -14901,12 +14927,12 @@ class TaskContentService {
14901
14927
  * A snackbar will also be displayed to the user, informing them of the fact that the fields are invalid.
14902
14928
  * @returns whether the task is valid or not
14903
14929
  */
14904
- validateTaskData() {
14930
+ validateTaskData(taskId) {
14905
14931
  if (!this._task || !this._task.dataGroups) {
14906
14932
  return false;
14907
14933
  }
14908
- const valid = !this._task.dataGroups.some(group => group.fields.some(field => !field.valid && !field.disabled));
14909
- const validDisabled = !this._task.dataGroups.some(group => group.fields.some(field => !field.validRequired && field.disabled));
14934
+ const valid = !this._task.dataGroups.filter(group => !!group.parentTaskId && !!taskId ? group.parentTaskId === taskId : true).some(group => group.fields.some(field => !field.valid && !field.disabled));
14935
+ const validDisabled = !this._task.dataGroups.filter(group => !!group.parentTaskId && !!taskId ? group.parentTaskId === taskId : true).some(group => group.fields.some(field => !field.validRequired && field.disabled));
14910
14936
  if (!valid) {
14911
14937
  this._snackBarService.openErrorSnackBar(this._translate.instant('tasks.snackbar.invalidData'));
14912
14938
  this._task.dataGroups.forEach(group => group.fields.forEach(field => field.touch = true));
@@ -14996,7 +15022,6 @@ class TaskContentService {
14996
15022
  }
14997
15023
  });
14998
15024
  this.$shouldCreate.next(this._task.dataGroups);
14999
- this.performFrontendAction(frontendActions);
15000
15025
  }
15001
15026
  updateField(chFields, field, frontendActions) {
15002
15027
  if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF) {
@@ -15078,20 +15103,6 @@ class TaskContentService {
15078
15103
  field.update();
15079
15104
  });
15080
15105
  }
15081
- /**
15082
- * Performs the specific frontend action.
15083
- *
15084
- * A prototype implementation of frontend actions.
15085
- *
15086
- * The specifics are subject to change. It is very likely that this method will be moved to a different service.
15087
- *
15088
- * @param frontendAction the action that should be performed.
15089
- */
15090
- performFrontendAction(frontendAction) {
15091
- if (frontendAction && frontendAction.type === TaskContentService.VALIDATE_FRONTEND_ACTION) {
15092
- timer().subscribe(() => this.validateTaskData());
15093
- }
15094
- }
15095
15106
  isFieldInTask(taskId, changedField) {
15096
15107
  return !!taskId
15097
15108
  && !!this.taskFieldsIndex[taskId]
@@ -15113,7 +15124,7 @@ class TaskContentService {
15113
15124
  }
15114
15125
  }
15115
15126
  TaskContentService.FRONTEND_ACTIONS_KEY = '_frontend_actions';
15116
- TaskContentService.VALIDATE_FRONTEND_ACTION = 'validate';
15127
+ TaskContentService.ACTION = 'action';
15117
15128
  TaskContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskContentService, deps: [{ token: FieldConverterService }, { token: SnackBarService }, { token: i1$2.TranslateService }, { token: LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
15118
15129
  TaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskContentService });
15119
15130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskContentService, decorators: [{
@@ -15514,12 +15525,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15514
15525
  type: Injectable
15515
15526
  }], ctorParameters: function () { return []; } });
15516
15527
 
15528
+ class FrontActionRegistryService {
15529
+ constructor() {
15530
+ this._registry = new Map();
15531
+ }
15532
+ get registry() {
15533
+ return this._registry;
15534
+ }
15535
+ set registry(value) {
15536
+ this._registry = value;
15537
+ }
15538
+ register(key, fn) {
15539
+ this._registry.set(key, fn);
15540
+ }
15541
+ contains(key) {
15542
+ return this._registry.has(key);
15543
+ }
15544
+ get(key) {
15545
+ if (this._registry.has(key)) {
15546
+ return this._registry.get(key);
15547
+ }
15548
+ return undefined;
15549
+ }
15550
+ }
15551
+ FrontActionRegistryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15552
+ FrontActionRegistryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionRegistryService, providedIn: 'root' });
15553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionRegistryService, decorators: [{
15554
+ type: Injectable,
15555
+ args: [{
15556
+ providedIn: 'root'
15557
+ }]
15558
+ }], ctorParameters: function () { return []; } });
15559
+
15560
+ class FrontActionService {
15561
+ constructor(_injector, _frontActionRegistry, _log) {
15562
+ this._injector = _injector;
15563
+ this._frontActionRegistry = _frontActionRegistry;
15564
+ this._log = _log;
15565
+ }
15566
+ run(frontAction) {
15567
+ const fn = this._frontActionRegistry.get(frontAction.id);
15568
+ if (!fn) {
15569
+ this._log.error("Frontend action is not defined for ID [" + frontAction.id + "]");
15570
+ }
15571
+ fn.call(this._injector, frontAction);
15572
+ }
15573
+ runAll(frontAction) {
15574
+ frontAction.forEach(a => this.run(a));
15575
+ }
15576
+ }
15577
+ FrontActionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionService, deps: [{ token: i0.Injector }, { token: FrontActionRegistryService }, { token: LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
15578
+ FrontActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionService });
15579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionService, decorators: [{
15580
+ type: Injectable
15581
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: FrontActionRegistryService }, { type: LoggerService }]; } });
15582
+
15517
15583
  /**
15518
15584
  * Handles the loading and updating of data fields and behaviour of
15519
15585
  * a single Task object managed by a {@link TaskContentService} instance.
15520
15586
  */
15521
15587
  class TaskDataService extends TaskHandlingService {
15522
- constructor(_taskState, _translate, _log, _snackBar, _taskResourceService, _fieldConverterService, _taskEvent, _taskOperations, _selectedCaseService, _taskContentService, _afterActionFactory, _eventQueue, _userComparator, _eventService, _changedFieldsService) {
15588
+ constructor(_taskState, _translate, _log, _snackBar, _taskResourceService, _fieldConverterService, _taskEvent, _taskOperations, _selectedCaseService, _taskContentService, _afterActionFactory, _eventQueue, _userComparator, _eventService, _changedFieldsService, _frontActionService) {
15523
15589
  super(_taskContentService, _selectedCaseService);
15524
15590
  this._taskState = _taskState;
15525
15591
  this._translate = _translate;
@@ -15534,13 +15600,10 @@ class TaskDataService extends TaskHandlingService {
15534
15600
  this._userComparator = _userComparator;
15535
15601
  this._eventService = _eventService;
15536
15602
  this._changedFieldsService = _changedFieldsService;
15603
+ this._frontActionService = _frontActionService;
15537
15604
  this._updateSuccess$ = new Subject();
15538
15605
  this._dataReloadSubscription = this._taskContentService.taskDataReloadRequest$.subscribe(queuedFrontendAction => {
15539
- this.initializeTaskDataFields(this._afterActionFactory.create(success => {
15540
- if (success && queuedFrontendAction) {
15541
- this._taskContentService.performFrontendAction(queuedFrontendAction);
15542
- }
15543
- }), true);
15606
+ this.initializeTaskDataFields(new AfterAction(), true);
15544
15607
  });
15545
15608
  }
15546
15609
  ngOnDestroy() {
@@ -15915,9 +15978,13 @@ class TaskDataService extends TaskHandlingService {
15915
15978
  processSuccessfulSetDataRequest(setTaskId, response, afterAction, nextEvent, body) {
15916
15979
  const outcome = response.outcome;
15917
15980
  const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcome);
15981
+ const frontActions = this._eventService.parseFrontActionsFromOutcomeTree(outcome);
15918
15982
  if (Object.keys(changedFieldsMap).length > 0) {
15919
15983
  this._changedFieldsService.emitChangedFields(changedFieldsMap);
15920
15984
  }
15985
+ if (!!frontActions && frontActions.length > 0) {
15986
+ this._frontActionService.runAll(frontActions);
15987
+ }
15921
15988
  this.clearWaitingForResponseFlag(body);
15922
15989
  this._snackBar.openSuccessSnackBar(!!outcome.message ? outcome.message : this._translate.instant('tasks.snackbar.dataSaved'));
15923
15990
  this.updateStateInfo(afterAction, true, setTaskId);
@@ -16035,7 +16102,7 @@ class TaskDataService extends TaskHandlingService {
16035
16102
  });
16036
16103
  }
16037
16104
  }
16038
- TaskDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskDataService, deps: [{ token: TaskRequestStateService }, { token: i1$2.TranslateService }, { token: LoggerService }, { token: SnackBarService }, { token: TaskResourceService }, { token: FieldConverterService }, { token: TaskEventService }, { token: NAE_TASK_OPERATIONS }, { token: SelectedCaseService, optional: true }, { token: TaskContentService }, { token: CallChainService }, { token: EventQueueService }, { token: UserComparatorService }, { token: EventService }, { token: ChangedFieldsService }], target: i0.ɵɵFactoryTarget.Injectable });
16105
+ TaskDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskDataService, deps: [{ token: TaskRequestStateService }, { token: i1$2.TranslateService }, { token: LoggerService }, { token: SnackBarService }, { token: TaskResourceService }, { token: FieldConverterService }, { token: TaskEventService }, { token: NAE_TASK_OPERATIONS }, { token: SelectedCaseService, optional: true }, { token: TaskContentService }, { token: CallChainService }, { token: EventQueueService }, { token: UserComparatorService }, { token: EventService }, { token: ChangedFieldsService }, { token: FrontActionService }], target: i0.ɵɵFactoryTarget.Injectable });
16039
16106
  TaskDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskDataService });
16040
16107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskDataService, decorators: [{
16041
16108
  type: Injectable
@@ -16044,7 +16111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16044
16111
  args: [NAE_TASK_OPERATIONS]
16045
16112
  }] }, { type: SelectedCaseService, decorators: [{
16046
16113
  type: Optional
16047
- }] }, { type: TaskContentService }, { type: CallChainService }, { type: EventQueueService }, { type: UserComparatorService }, { type: EventService }, { type: ChangedFieldsService }]; } });
16114
+ }] }, { type: TaskContentService }, { type: CallChainService }, { type: EventQueueService }, { type: UserComparatorService }, { type: EventService }, { type: ChangedFieldsService }, { type: FrontActionService }]; } });
16048
16115
 
16049
16116
  class AbstractTaskRefDashboardTileComponent {
16050
16117
  constructor(_caseResourceService, _processService, _logger, _taskResourceService, _callChainService, _parentTaskContentService, _taskDataService, _taskOperations) {
@@ -18899,6 +18966,7 @@ const NAE_SAVE_FILTER_COMPONENT = new InjectionToken('NaeSaveFilterComponent');
18899
18966
  const NAE_LOAD_FILTER_COMPONENT = new InjectionToken('NaeLoadFilterComponent');
18900
18967
  const NAE_USER_IMPERSONATE_COMPONENT = new InjectionToken('NaeUserImpersonateComponent');
18901
18968
  const NAE_ADMIN_IMPERSONATE_COMPONENT = new InjectionToken('NaeAdminImpersonateComponent');
18969
+ const NAE_TASK_VIEW_COMPONENT = new InjectionToken('NaeTaskViewComponent');
18902
18970
 
18903
18971
  const NAE_SIDE_MENU_CONTROL = new InjectionToken('NaeSideMenuControl');
18904
18972
 
@@ -19842,6 +19910,7 @@ class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataComponent
19842
19910
  this.responsiveBody = true;
19843
19911
  this.preventCollapse = false;
19844
19912
  this.hidePanelHeader = false;
19913
+ this.hideActionRow = false;
19845
19914
  this.showMoreMenu = true;
19846
19915
  this.thisContext = {
19847
19916
  canAssign: () => this.canAssign(),
@@ -20110,7 +20179,7 @@ class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataComponent
20110
20179
  }
20111
20180
  }
20112
20181
  AbstractTaskPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskPanelComponent, deps: [{ token: TaskContentService }, { token: LoggerService }, { token: TaskViewService }, { token: PaperViewService }, { token: TaskEventService }, { token: AssignTaskService }, { token: DelegateTaskService }, { token: CancelTaskService }, { token: FinishTaskService }, { token: TaskRequestStateService }, { token: TaskDataService }, { token: AssignPolicyService }, { token: FinishPolicyService }, { token: CallChainService }, { token: SubjectTaskOperations }, { token: NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, optional: true }, { token: i1$2.TranslateService }, { token: i5.CurrencyPipe }, { token: ChangedFieldsService }, { token: PermissionService }, { token: OverflowService, optional: true }, { token: NAE_TASK_FORCE_OPEN, optional: true }], target: i0.ɵɵFactoryTarget.Component });
20113
- AbstractTaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractTaskPanelComponent, selector: "ncc-abstract-legal-notice", inputs: { 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" }, outputs: { taskEvent: "taskEvent", panelRefOutput: "panelRefOutput" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
20182
+ AbstractTaskPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractTaskPanelComponent, selector: "ncc-abstract-legal-notice", inputs: { taskListVirtualScroll: "taskListVirtualScroll", panelContentComponent: "panelContentComponent", selectedHeaders$: "selectedHeaders$", first: "first", last: "last", responsiveBody: "responsiveBody", preventCollapse: "preventCollapse", hidePanelHeader: "hidePanelHeader", hideActionRow: "hideActionRow", actionButtonTemplates: "actionButtonTemplates", actionRowJustifyContent: "actionRowJustifyContent", showMoreMenu: "showMoreMenu", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", taskPanelData: "taskPanelData" }, outputs: { taskEvent: "taskEvent", panelRefOutput: "panelRefOutput" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
20114
20183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskPanelComponent, decorators: [{
20115
20184
  type: Component,
20116
20185
  args: [{
@@ -20145,6 +20214,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20145
20214
  type: Input
20146
20215
  }], hidePanelHeader: [{
20147
20216
  type: Input
20217
+ }], hideActionRow: [{
20218
+ type: Input
20148
20219
  }], actionButtonTemplates: [{
20149
20220
  type: Input
20150
20221
  }], actionRowJustifyContent: [{
@@ -20820,12 +20891,13 @@ class AbstractSingleTaskComponent {
20820
20891
  this.textEllipsis = false;
20821
20892
  this.preventCollapse = true;
20822
20893
  this.hidePanelHeader = true;
20894
+ this.hideActionRow = true;
20895
+ this.showPageHeader = true;
20896
+ this.showPageFooter = true;
20823
20897
  this.taskEvent = new EventEmitter();
20824
- this._unsubscribe$ = new Subject();
20825
20898
  }
20826
20899
  ngOnDestroy() {
20827
20900
  this.taskEvent.complete();
20828
- this._unsubscribe$.complete();
20829
20901
  }
20830
20902
  setPanelRef(panelRef) {
20831
20903
  this._taskPanelRef = panelRef;
@@ -20842,7 +20914,7 @@ class AbstractSingleTaskComponent {
20842
20914
  }
20843
20915
  }
20844
20916
  AbstractSingleTaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskComponent, deps: [{ token: LoggerService }, { token: i2$3.ActivatedRoute }, { token: NAE_TAB_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
20845
- AbstractSingleTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractSingleTaskComponent, selector: "ncc-abstract-single-task", inputs: { task$: "task$", loading$: "loading$", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", preventCollapse: "preventCollapse", hidePanelHeader: "hidePanelHeader", noTaskSection: "noTaskSection", pageHeader: "pageHeader", pageFooter: "pageFooter", headerTitle: "headerTitle", footerText: "footerText", actionButtonTemplates: "actionButtonTemplates", actionRowJustifyContent: "actionRowJustifyContent" }, outputs: { taskEvent: "taskEvent" }, ngImport: i0, template: '', isInline: true });
20917
+ AbstractSingleTaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractSingleTaskComponent, selector: "ncc-abstract-single-task", inputs: { task$: "task$", loading$: "loading$", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", preventCollapse: "preventCollapse", hidePanelHeader: "hidePanelHeader", hideActionRow: "hideActionRow", noTaskSection: "noTaskSection", pageHeader: "pageHeader", pageFooter: "pageFooter", showPageHeader: "showPageHeader", showPageFooter: "showPageFooter", headerTitle: "headerTitle", footerText: "footerText", actionButtonTemplates: "actionButtonTemplates", actionRowJustifyContent: "actionRowJustifyContent" }, outputs: { taskEvent: "taskEvent" }, ngImport: i0, template: '', isInline: true });
20846
20918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskComponent, decorators: [{
20847
20919
  type: Component,
20848
20920
  args: [{
@@ -20870,12 +20942,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20870
20942
  type: Input
20871
20943
  }], hidePanelHeader: [{
20872
20944
  type: Input
20945
+ }], hideActionRow: [{
20946
+ type: Input
20873
20947
  }], noTaskSection: [{
20874
20948
  type: Input
20875
20949
  }], pageHeader: [{
20876
20950
  type: Input
20877
20951
  }], pageFooter: [{
20878
20952
  type: Input
20953
+ }], showPageHeader: [{
20954
+ type: Input
20955
+ }], showPageFooter: [{
20956
+ type: Input
20879
20957
  }], headerTitle: [{
20880
20958
  type: Input
20881
20959
  }], footerText: [{
@@ -26515,6 +26593,228 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26515
26593
  type: Input
26516
26594
  }] } });
26517
26595
 
26596
+ class ImportToAdd {
26597
+ constructor(className, fileImportPath) {
26598
+ this.className = className;
26599
+ this.fileImportPath = fileImportPath;
26600
+ }
26601
+ }
26602
+
26603
+ /**
26604
+ * @license
26605
+ * Copyright Google Inc. All Rights Reserved.
26606
+ *
26607
+ * Use of this source code is governed by an MIT-style license that can be
26608
+ * found in the LICENSE file at https://angular.io/license
26609
+ *
26610
+ * File copied from: angular_devkit/core/src/utils/strings.ts
26611
+ */
26612
+ const STRING_DASHERIZE_REGEXP = (/[ _]/g);
26613
+ const STRING_DECAMELIZE_REGEXP = (/([a-z\d])([A-Z])/g);
26614
+ const STRING_CAMELIZE_REGEXP = (/(-|_|\.|\s)+(.)?/g);
26615
+ const STRING_UNDERSCORE_REGEXP_1 = (/([a-z\d])([A-Z]+)/g);
26616
+ const STRING_UNDERSCORE_REGEXP_2 = (/-|\s+/g);
26617
+ /**
26618
+ * Converts a camelized string into all lower case separated by underscores.
26619
+ *
26620
+ * ```javascript
26621
+ * decamelize('innerHTML'); // 'inner_html'
26622
+ * decamelize('action_name'); // 'action_name'
26623
+ * decamelize('css-class-name'); // 'css-class-name'
26624
+ * decamelize('my favorite items'); // 'my favorite items'
26625
+ * ```
26626
+ * @method decamelize
26627
+ * @param str The string to decamelize.
26628
+ * @return the decamelized string.
26629
+ */
26630
+ function decamelize(str) {
26631
+ return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();
26632
+ }
26633
+ /**
26634
+ * Replaces underscores, spaces, or camelCase with dashes.
26635
+ * ```javascript
26636
+ * dasherize('innerHTML'); // 'inner-html'
26637
+ * dasherize('action_name'); // 'action-name'
26638
+ * dasherize('css-class-name'); // 'css-class-name'
26639
+ * dasherize('my favorite items'); // 'my-favorite-items'
26640
+ * ```
26641
+ * @method dasherize
26642
+ * @param str The string to dasherize.
26643
+ * @return the dasherized string.
26644
+ */
26645
+ function dasherize(str) {
26646
+ return decamelize(str).replace(STRING_DASHERIZE_REGEXP, '-');
26647
+ }
26648
+ /**
26649
+ * Returns the lowerCamelCase form of a string.
26650
+ * ```javascript
26651
+ * camelize('innerHTML'); // 'innerHTML'
26652
+ * camelize('action_name'); // 'actionName'
26653
+ * camelize('css-class-name'); // 'cssClassName'
26654
+ * camelize('my favorite items'); // 'myFavoriteItems'
26655
+ * camelize('My Favorite Items'); // 'myFavoriteItems'
26656
+ * ```
26657
+ * @method camelize
26658
+ * @param str The string to camelize.
26659
+ * @return the camelized string.
26660
+ */
26661
+ function camelize(str) {
26662
+ return str
26663
+ .replace(STRING_CAMELIZE_REGEXP, (_match, _separator, chr) => {
26664
+ return chr ? chr.toUpperCase() : '';
26665
+ })
26666
+ .replace(/^([A-Z])/, (match) => match.toLowerCase());
26667
+ }
26668
+ /**
26669
+ * Returns the UpperCamelCase form of a string.
26670
+ * ```javascript
26671
+ * 'innerHTML'.classify(); // 'InnerHTML'
26672
+ * 'action_name'.classify(); // 'ActionName'
26673
+ * 'css-class-name'.classify(); // 'CssClassName'
26674
+ * 'my favorite items'.classify(); // 'MyFavoriteItems'
26675
+ * ```
26676
+ * @method classify
26677
+ * @param str the string to classify
26678
+ * @return the classified string
26679
+ */
26680
+ function classify(str) {
26681
+ return str.split('.').map(part => capitalize(camelize(part))).join('.');
26682
+ }
26683
+ /**
26684
+ * More general than decamelize. Returns the lower\_case\_and\_underscored
26685
+ * form of a string.
26686
+ * ```javascript
26687
+ * 'innerHTML'.underscore(); // 'inner_html'
26688
+ * 'action_name'.underscore(); // 'action_name'
26689
+ * 'css-class-name'.underscore(); // 'css_class_name'
26690
+ * 'my favorite items'.underscore(); // 'my_favorite_items'
26691
+ * ```
26692
+ * @method underscore
26693
+ * @param str The string to underscore.
26694
+ * @return the underscored string.
26695
+ */
26696
+ function underscore(str) {
26697
+ return str
26698
+ .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')
26699
+ .replace(STRING_UNDERSCORE_REGEXP_2, '_')
26700
+ .toLowerCase();
26701
+ }
26702
+ /**
26703
+ * Returns the Capitalized form of a string
26704
+ * ```javascript
26705
+ * 'innerHTML'.capitalize() // 'InnerHTML'
26706
+ * 'action_name'.capitalize() // 'Action_name'
26707
+ * 'css-class-name'.capitalize() // 'Css-class-name'
26708
+ * 'my favorite items'.capitalize() // 'My favorite items'
26709
+ * ```
26710
+ * @method capitalize
26711
+ * @param str The string to capitalize.
26712
+ * @return The capitalized string.
26713
+ */
26714
+ function capitalize(str) {
26715
+ return str.charAt(0).toUpperCase() + str.substr(1);
26716
+ }
26717
+ /**
26718
+ * Calculate the levenshtein distance of two strings.
26719
+ * See https://en.wikipedia.org/wiki/Levenshtein_distance.
26720
+ * Based off https://gist.github.com/andrei-m/982927 (for using the faster dynamic programming
26721
+ * version).
26722
+ *
26723
+ * @param a String a.
26724
+ * @param b String b.
26725
+ * @returns A number that represents the distance between the two strings. The greater the number
26726
+ * the more distant the strings are from each others.
26727
+ */
26728
+ function levenshtein(a, b) {
26729
+ if (a.length === 0) {
26730
+ return b.length;
26731
+ }
26732
+ if (b.length === 0) {
26733
+ return a.length;
26734
+ }
26735
+ const matrix = [];
26736
+ // increment along the first column of each row
26737
+ for (let i = 0; i <= b.length; i++) {
26738
+ matrix[i] = [i];
26739
+ }
26740
+ // increment each column in the first row
26741
+ for (let j = 0; j <= a.length; j++) {
26742
+ matrix[0][j] = j;
26743
+ }
26744
+ // Fill in the rest of the matrix
26745
+ for (let i = 1; i <= b.length; i++) {
26746
+ for (let j = 1; j <= a.length; j++) {
26747
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
26748
+ matrix[i][j] = matrix[i - 1][j - 1];
26749
+ }
26750
+ else {
26751
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
26752
+ matrix[i][j - 1] + 1, // insertion
26753
+ matrix[i - 1][j] + 1);
26754
+ }
26755
+ }
26756
+ }
26757
+ return matrix[b.length][a.length];
26758
+ }
26759
+
26760
+ class ViewClassInfo extends ImportToAdd {
26761
+ constructor(path, viewType, customComponentName) {
26762
+ super('', '');
26763
+ if (!customComponentName) {
26764
+ this.prefix = ViewClassInfo.convertPathToClassNamePrefix(path);
26765
+ const classSuffix = ViewClassInfo.resolveClassSuffixForView(viewType);
26766
+ this.nameWithoutComponent = `${classify(this.prefix)}${classSuffix}`;
26767
+ this.fileImportPath = `./views/${path}/${this.prefix}-${dasherize(classSuffix)}.component`;
26768
+ }
26769
+ else {
26770
+ this.prefix = '';
26771
+ this.nameWithoutComponent = classify(customComponentName);
26772
+ this.fileImportPath = `./views/${path}/${dasherize(customComponentName)}.component`;
26773
+ }
26774
+ this.className = `${this.nameWithoutComponent}Component`;
26775
+ }
26776
+ static convertPathToClassNamePrefix(path) {
26777
+ const regexDash = /-/g;
26778
+ return path.replace(regexDash, '_').replace(/\//g, '-').toLocaleLowerCase();
26779
+ }
26780
+ static resolveClassSuffixForView(view) {
26781
+ switch (view) {
26782
+ case 'login':
26783
+ return 'Login';
26784
+ case 'tabView':
26785
+ return 'TabView';
26786
+ case 'taskView':
26787
+ return 'TaskView';
26788
+ case 'caseView':
26789
+ return 'CaseView';
26790
+ case 'emptyView':
26791
+ return 'EmptyView';
26792
+ case 'sidenavView':
26793
+ return 'SidenavView';
26794
+ case 'doubleDrawerView':
26795
+ return 'DoubleDrawerView';
26796
+ case 'toolbarView':
26797
+ return 'ToolbarView';
26798
+ case 'sidenavAndToolbarView':
26799
+ return 'SidenavAndToolbarView';
26800
+ case 'groupView':
26801
+ return 'GroupView';
26802
+ case 'dashboard':
26803
+ return 'Dashboard';
26804
+ case 'treeCaseView':
26805
+ return 'TreeCaseView';
26806
+ case 'workflowView':
26807
+ return 'WorkflowView';
26808
+ case 'roleAssignmentView':
26809
+ return 'RoleAssignmentView';
26810
+ case 'ldapRoleAssignmentView':
26811
+ return 'LdapRoleAssignmentView';
26812
+ default:
26813
+ throw new Error(`Unknown view type '${view}'`);
26814
+ }
26815
+ }
26816
+ }
26817
+
26518
26818
  var GroupNavigationConstants;
26519
26819
  (function (GroupNavigationConstants) {
26520
26820
  /**
@@ -26655,6 +26955,177 @@ var GroupNavigationConstants;
26655
26955
  GroupNavigationConstants["ITEM_FIELD_ID_HAS_CHILDREN"] = "hasChildren";
26656
26956
  })(GroupNavigationConstants || (GroupNavigationConstants = {}));
26657
26957
 
26958
+ /**
26959
+ * Holds component for dynamic routing resolution of group navigation component resolver component by the {@link RoutingBuilderService}.
26960
+ */
26961
+ const NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT = new InjectionToken('NaeGroupNavigationComponentResolverComponent');
26962
+
26963
+ const NAE_ROUTING_CONFIGURATION_PATH = "configPath";
26964
+ /**
26965
+ * Uses the information from nae.json to construct the application's routing
26966
+ */
26967
+ class RoutingBuilderService {
26968
+ constructor(router, _configService, _viewService, _logger, _dynamicNavigationRouteService, _groupNavigationComponentResolverComponent) {
26969
+ this._configService = _configService;
26970
+ this._viewService = _viewService;
26971
+ this._logger = _logger;
26972
+ this._dynamicNavigationRouteService = _dynamicNavigationRouteService;
26973
+ this._groupNavigationComponentResolverComponent = _groupNavigationComponentResolverComponent;
26974
+ this._groupNavigationRouteGenerated = false;
26975
+ router.relativeLinkResolution = 'legacy';
26976
+ router.config.splice(0, router.config.length);
26977
+ for (const [pathSegment, view] of Object.entries(_configService.get().views)) {
26978
+ const route = this.constructRouteObject(view, pathSegment);
26979
+ if (route !== undefined) {
26980
+ router.config.push(route);
26981
+ }
26982
+ }
26983
+ router.config.push(...this.defaultRoutesRedirects());
26984
+ }
26985
+ constructRouteObject(view, configPath, ancestors = []) {
26986
+ const component = this.resolveComponentClass(view, configPath);
26987
+ if (component === undefined) {
26988
+ return undefined;
26989
+ }
26990
+ if (!view.routing) {
26991
+ this._logger.warn(`nae.json configuration is invalid. View at path '${configPath}'` +
26992
+ ` must define a 'routing' attribute. Skipping this view for routing generation.`);
26993
+ return undefined;
26994
+ }
26995
+ const route = {
26996
+ path: view.routing.path,
26997
+ data: {
26998
+ [NAE_ROUTING_CONFIGURATION_PATH]: configPath
26999
+ },
27000
+ component
27001
+ };
27002
+ if (view?.layout?.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {
27003
+ if (this._groupNavigationRouteGenerated) {
27004
+ this._logger.warn(`Multiple groupNavigationOutlets are present in nae.json. Duplicate entry found at path ${configPath}`);
27005
+ }
27006
+ else {
27007
+ this._logger.debug(`GroupNavigationOutlet found in nae.json at path '${configPath}'`);
27008
+ }
27009
+ const pathNoParams = route.path;
27010
+ route.path = `${pathNoParams}/:${GroupNavigationConstants.GROUP_NAVIGATION_ROUTER_PARAM}`;
27011
+ route.canActivate = [AuthenticationGuardService];
27012
+ const parentPathSegments = ancestors.map(a => a.path);
27013
+ parentPathSegments.push(pathNoParams);
27014
+ this._dynamicNavigationRouteService.route = parentPathSegments.join('/');
27015
+ this._groupNavigationRouteGenerated = true;
27016
+ return route;
27017
+ }
27018
+ if (view.routing.match !== undefined && view.routing.match) {
27019
+ route['pathMatch'] = 'full';
27020
+ }
27021
+ route['canActivate'] = [];
27022
+ if (view.access === 'private'
27023
+ || view.access.hasOwnProperty('role')
27024
+ || view.access.hasOwnProperty('group')
27025
+ || view.access.hasOwnProperty('authority')) {
27026
+ route['canActivate'].push(AuthenticationGuardService);
27027
+ }
27028
+ if (view.access.hasOwnProperty('role')) {
27029
+ route['canActivate'].push(RoleGuardService);
27030
+ }
27031
+ if (view.access.hasOwnProperty('authority')) {
27032
+ route['canActivate'].push(AuthorityGuardService);
27033
+ }
27034
+ if (view.access.hasOwnProperty('group')) {
27035
+ route['canActivate'].push(GroupGuardService);
27036
+ }
27037
+ if (!!view.children) {
27038
+ route['children'] = [];
27039
+ Object.entries(view.children).forEach(([configPathSegment, childView]) => {
27040
+ // TODO check if routes are constructed correctly regarding empty route segments
27041
+ const childRoute = this.constructRouteObject(childView, `${configPath}/${configPathSegment}`, [...ancestors, route]);
27042
+ if (childRoute !== undefined) {
27043
+ route['children'].push(childRoute);
27044
+ }
27045
+ });
27046
+ }
27047
+ if (view?.layout?.name === 'tabView') {
27048
+ if (!view.children) {
27049
+ route['children'] = [];
27050
+ }
27051
+ route['children'].push({
27052
+ path: '**',
27053
+ component
27054
+ });
27055
+ }
27056
+ return route;
27057
+ }
27058
+ resolveComponentClass(view, configPath) {
27059
+ let result;
27060
+ if (!!view.component) {
27061
+ result = this._viewService.resolveNameToClass(view.component.class);
27062
+ }
27063
+ else if (!!view.layout) {
27064
+ result = this.resolveComponentClassFromLayout(view, configPath);
27065
+ }
27066
+ else {
27067
+ this._logger.warn(`nae.json configuration is invalid. View at path '${configPath}'` +
27068
+ ` must define either a 'layout' or a 'component' attribute. Skipping this view for routing generation.`);
27069
+ return undefined;
27070
+ }
27071
+ if (result === undefined) {
27072
+ this._logger.warn(`Some views from nae.json configuration have not been created in the project.` +
27073
+ ` Run create-view schematic to rectify this. Skipping this view for routing generation.`);
27074
+ return undefined;
27075
+ }
27076
+ return result;
27077
+ }
27078
+ resolveComponentClassFromLayout(view, configPath) {
27079
+ if (view.layout.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {
27080
+ return this._groupNavigationComponentResolverComponent;
27081
+ }
27082
+ const className = RoutingBuilderService.parseClassNameFromView(view, configPath);
27083
+ return this._viewService.resolveNameToClass(className);
27084
+ }
27085
+ static parseClassNameFromView(view, configPath) {
27086
+ if (!!view.layout.componentName) {
27087
+ return `${classify(view.layout.componentName)}Component`;
27088
+ }
27089
+ else {
27090
+ const classInfo = new ViewClassInfo(configPath, view.layout.name, view.layout.componentName);
27091
+ return classInfo.className;
27092
+ }
27093
+ }
27094
+ defaultRoutesRedirects() {
27095
+ const result = [];
27096
+ const servicesConfig = this._configService.getServicesConfiguration();
27097
+ if (!!servicesConfig && !!servicesConfig.routing) {
27098
+ if (!!servicesConfig.routing.defaultRedirect) {
27099
+ result.push({
27100
+ path: '',
27101
+ redirectTo: servicesConfig.routing.defaultRedirect,
27102
+ pathMatch: 'full'
27103
+ });
27104
+ }
27105
+ if (!!servicesConfig.routing.wildcardRedirect) {
27106
+ result.push({
27107
+ path: '**',
27108
+ redirectTo: servicesConfig.routing.wildcardRedirect
27109
+ });
27110
+ }
27111
+ }
27112
+ return result;
27113
+ }
27114
+ }
27115
+ RoutingBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RoutingBuilderService, deps: [{ token: i2$3.Router }, { token: ConfigurationService }, { token: ViewService }, { token: LoggerService }, { token: DynamicNavigationRouteProviderService }, { token: NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
27116
+ RoutingBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RoutingBuilderService, providedIn: 'root' });
27117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RoutingBuilderService, decorators: [{
27118
+ type: Injectable,
27119
+ args: [{
27120
+ providedIn: 'root'
27121
+ }]
27122
+ }], ctorParameters: function () { return [{ type: i2$3.Router }, { type: ConfigurationService }, { type: ViewService }, { type: LoggerService }, { type: DynamicNavigationRouteProviderService }, { type: i0.Type, decorators: [{
27123
+ type: Optional
27124
+ }, {
27125
+ type: Inject,
27126
+ args: [NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT]
27127
+ }] }]; } });
27128
+
26658
27129
  /**
26659
27130
  * Holds all identifiers of the Impersonation config process in an accessible manner
26660
27131
  */
@@ -26886,6 +27357,8 @@ class AbstractNavigationDoubleDrawerComponent {
26886
27357
  this.rightLoading$ = new LoadingEmitter();
26887
27358
  this.nodeLoading$ = new LoadingEmitter();
26888
27359
  this.itemsOrder = MenuOrder.Ascending;
27360
+ this.hiddenCustomItems = [];
27361
+ this._childCustomViews = {};
26889
27362
  }
26890
27363
  ngOnInit() {
26891
27364
  this._breakpointSubscription = this._breakpoint.observe([Breakpoints.HandsetLandscape]).subscribe(() => {
@@ -26903,6 +27376,14 @@ class AbstractNavigationDoubleDrawerComponent {
26903
27376
  this._currentNodeSubscription = this._uriService.activeNode$.subscribe(node => {
26904
27377
  this.currentNode = node;
26905
27378
  });
27379
+ const viewConfigurationPath = this._activatedRoute.snapshot.data[NAE_ROUTING_CONFIGURATION_PATH];
27380
+ if (!!viewConfigurationPath) {
27381
+ const viewConfiguration = this._config.getViewByPath(viewConfigurationPath);
27382
+ Object.entries(viewConfiguration.children).forEach(([key, childView]) => {
27383
+ this.resolveUriForChildViews(viewConfigurationPath + '/' + key, childView);
27384
+ this.resolveHiddenMenuItemFromChildViews(viewConfigurationPath + '/' + key, childView);
27385
+ });
27386
+ }
26906
27387
  }
26907
27388
  get currentNode() {
26908
27389
  return this._currentNode;
@@ -27088,17 +27569,20 @@ class AbstractNavigationDoubleDrawerComponent {
27088
27569
  else {
27089
27570
  this.rightItems = result.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);
27090
27571
  }
27572
+ this.resolveCustomViewsInRightSide();
27091
27573
  this.rightLoading$.off();
27092
27574
  }, error => {
27093
27575
  this._log.error(error);
27094
27576
  this.rightItems = [];
27095
27577
  this.moreItems = [];
27578
+ this.resolveCustomViewsInRightSide();
27096
27579
  this.rightLoading$.off();
27097
27580
  });
27098
27581
  }, error => {
27099
27582
  this._log.error(error);
27100
27583
  this.rightItems = [];
27101
27584
  this.moreItems = [];
27585
+ this.resolveCustomViewsInRightSide();
27102
27586
  this.rightLoading$.off();
27103
27587
  });
27104
27588
  }
@@ -27124,6 +27608,11 @@ class AbstractNavigationDoubleDrawerComponent {
27124
27608
  this.leftItems = this.leftItems.sort((a, b) => multiplier * a?.navigation?.title.localeCompare(b?.navigation?.title));
27125
27609
  this.moreItems = this.moreItems.sort((a, b) => multiplier * a?.navigation?.title.localeCompare(b?.navigation?.title));
27126
27610
  }
27611
+ resolveCustomViewsInRightSide() {
27612
+ if (!!this._childCustomViews[this._currentNode.uriPath]) {
27613
+ this.rightItems.push(...Object.values(this._childCustomViews[this._currentNode.uriPath]));
27614
+ }
27615
+ }
27127
27616
  resolveItemCaseToNavigationItem(itemCase) {
27128
27617
  const item = {
27129
27618
  access: {},
@@ -27204,6 +27693,31 @@ class AbstractNavigationDoubleDrawerComponent {
27204
27693
  // this.userPreferenceService._drawerWidthChanged$.next(this.width);
27205
27694
  // this.contentWidth.next(this.width);
27206
27695
  }
27696
+ resolveUriForChildViews(configPath, childView) {
27697
+ if (!childView.processUri)
27698
+ return;
27699
+ if (!this._accessService.canAccessView(childView, configPath))
27700
+ return;
27701
+ if (!this._childCustomViews[childView.processUri]) {
27702
+ this._childCustomViews[childView.processUri] = {};
27703
+ }
27704
+ this._childCustomViews[childView.processUri][configPath] = {
27705
+ id: configPath,
27706
+ ...childView,
27707
+ };
27708
+ }
27709
+ resolveHiddenMenuItemFromChildViews(configPath, childView) {
27710
+ if (!childView.navigation)
27711
+ return;
27712
+ if (!this._accessService.canAccessView(childView, configPath))
27713
+ return;
27714
+ if (!!(childView?.navigation?.hidden)) {
27715
+ this.hiddenCustomItems.push({
27716
+ id: configPath,
27717
+ ...childView,
27718
+ });
27719
+ }
27720
+ }
27207
27721
  }
27208
27722
  AbstractNavigationDoubleDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractNavigationDoubleDrawerComponent, deps: [{ token: i2$3.Router }, { token: i2$3.ActivatedRoute }, { token: i1$7.BreakpointObserver }, { token: LanguageService }, { token: i1$2.TranslateService }, { token: UserService }, { token: AccessService }, { token: LoggerService }, { token: ConfigurationService }, { token: UriService }, { token: ImpersonationUserSelectService }, { token: ImpersonationService }, { token: DynamicNavigationRouteProviderService }], target: i0.ɵɵFactoryTarget.Component });
27209
27723
  AbstractNavigationDoubleDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractNavigationDoubleDrawerComponent, selector: "ncc-abstract-navigation-double-drawer", inputs: { 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" }, ngImport: i0, template: '', isInline: true });
@@ -27810,11 +28324,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
27810
28324
  }]
27811
28325
  }], ctorParameters: function () { return [{ type: FilterRepository }, { type: TaskResourceService }, { type: AllowedNetsServiceFactory }, { type: BaseAllowedNetsService }, { type: LoggerService }]; } });
27812
28326
 
27813
- /**
27814
- * Holds component for dynamic routing resolution of group navigation component resolver component by the {@link RoutingBuilderService}.
27815
- */
27816
- const NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT = new InjectionToken('NaeGroupNavigationComponentResolverComponent');
27817
-
27818
28327
  var UriContentType;
27819
28328
  (function (UriContentType) {
27820
28329
  UriContentType[UriContentType["PROCESS"] = 0] = "PROCESS";
@@ -29694,30 +30203,18 @@ class TaskConst {
29694
30203
  }
29695
30204
  TaskConst.TRANSITION_ID = 'transitionId';
29696
30205
  class AbstractSingleTaskViewComponent extends AbstractViewWithHeadersComponent {
29697
- constructor(taskViewService, activatedRoute, async) {
30206
+ constructor(taskViewService, activatedRoute, baseFilter) {
29698
30207
  super(taskViewService, activatedRoute);
29699
30208
  this.taskViewService = taskViewService;
30209
+ this.baseFilter = baseFilter;
29700
30210
  this.initiallyExpanded = true;
29701
30211
  this.preventCollapse = true;
29702
30212
  this.noTaskPresent = new EventEmitter();
29703
- this.taskPanelData = new ReplaySubject(1);
29704
- this.subRoute = this._activatedRoute.paramMap.subscribe(paramMap => {
29705
- if (!!(paramMap?.['params']?.[TaskConst.TRANSITION_ID])) {
29706
- this.transitionId = paramMap['params'][TaskConst.TRANSITION_ID];
29707
- this.subPanelData = this.taskViewService.tasks$.subscribe(tasks => {
29708
- if (!!tasks && tasks.length > 0) {
29709
- this.taskPanelData.next(this.resolveTransitionTask(tasks));
29710
- }
29711
- else {
29712
- const isLoading = async.transform(this.loading$);
29713
- if (!isLoading) {
29714
- this.taskPanelData.next(undefined);
29715
- this.noTaskPresent.next();
29716
- }
29717
- }
29718
- });
30213
+ this.taskPanelData = this.taskViewService.tasks$.pipe(map(tasks => tasks.find(panelData => this.isTaskMatchingFilter(panelData, baseFilter.filter.getRequestBody())))).pipe(tap(panelData => {
30214
+ if (!!panelData) {
30215
+ panelData.initiallyExpanded = true;
29719
30216
  }
29720
- });
30217
+ }));
29721
30218
  this.loading$ = this.taskViewService.loading$;
29722
30219
  }
29723
30220
  ngOnDestroy() {
@@ -29728,22 +30225,15 @@ class AbstractSingleTaskViewComponent extends AbstractViewWithHeadersComponent {
29728
30225
  if (!!this.subPanelData) {
29729
30226
  this.subPanelData.unsubscribe();
29730
30227
  }
29731
- if (!!this.taskPanelData) {
29732
- this.taskPanelData.complete();
29733
- }
29734
30228
  }
29735
30229
  get task$() {
29736
- return this.taskPanelData.asObservable();
30230
+ return this.taskPanelData;
29737
30231
  }
29738
- resolveTransitionTask(tasks) {
29739
- const transitionTask = tasks.find(t => t.task.transitionId === this.transitionId);
29740
- if (!!transitionTask) {
29741
- transitionTask.initiallyExpanded = transitionTask.task.finishDate === undefined;
29742
- }
29743
- return transitionTask;
30232
+ isTaskMatchingFilter(panelData, taskSearchRequestBody) {
30233
+ return panelData.task.stringId === taskSearchRequestBody.stringId || panelData.task.transitionId === taskSearchRequestBody.transitionId;
29744
30234
  }
29745
30235
  }
29746
- AbstractSingleTaskViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskViewComponent, deps: [{ token: TaskViewService }, { token: i2$3.ActivatedRoute }, { token: i5.AsyncPipe }], target: i0.ɵɵFactoryTarget.Component });
30236
+ AbstractSingleTaskViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskViewComponent, deps: [{ token: TaskViewService }, { token: i2$3.ActivatedRoute }, { token: NAE_BASE_FILTER }], target: i0.ɵɵFactoryTarget.Component });
29747
30237
  AbstractSingleTaskViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractSingleTaskViewComponent, selector: "ncc-abstract-single-task-view", inputs: { initiallyExpanded: "initiallyExpanded", preventCollapse: "preventCollapse" }, outputs: { noTaskPresent: "noTaskPresent" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
29748
30238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskViewComponent, decorators: [{
29749
30239
  type: Component,
@@ -29751,7 +30241,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
29751
30241
  selector: 'ncc-abstract-single-task-view',
29752
30242
  template: ''
29753
30243
  }]
29754
- }], ctorParameters: function () { return [{ type: TaskViewService }, { type: i2$3.ActivatedRoute }, { type: i5.AsyncPipe }]; }, propDecorators: { initiallyExpanded: [{
30244
+ }], ctorParameters: function () { return [{ type: TaskViewService }, { type: i2$3.ActivatedRoute }, { type: undefined, decorators: [{
30245
+ type: Inject,
30246
+ args: [NAE_BASE_FILTER]
30247
+ }] }]; }, propDecorators: { initiallyExpanded: [{
29755
30248
  type: Input
29756
30249
  }], preventCollapse: [{
29757
30250
  type: Input
@@ -33088,394 +33581,6 @@ class MockProfileService {
33088
33581
  }
33089
33582
  }
33090
33583
 
33091
- class ImportToAdd {
33092
- constructor(className, fileImportPath) {
33093
- this.className = className;
33094
- this.fileImportPath = fileImportPath;
33095
- }
33096
- }
33097
-
33098
- /**
33099
- * @license
33100
- * Copyright Google Inc. All Rights Reserved.
33101
- *
33102
- * Use of this source code is governed by an MIT-style license that can be
33103
- * found in the LICENSE file at https://angular.io/license
33104
- *
33105
- * File copied from: angular_devkit/core/src/utils/strings.ts
33106
- */
33107
- const STRING_DASHERIZE_REGEXP = (/[ _]/g);
33108
- const STRING_DECAMELIZE_REGEXP = (/([a-z\d])([A-Z])/g);
33109
- const STRING_CAMELIZE_REGEXP = (/(-|_|\.|\s)+(.)?/g);
33110
- const STRING_UNDERSCORE_REGEXP_1 = (/([a-z\d])([A-Z]+)/g);
33111
- const STRING_UNDERSCORE_REGEXP_2 = (/-|\s+/g);
33112
- /**
33113
- * Converts a camelized string into all lower case separated by underscores.
33114
- *
33115
- * ```javascript
33116
- * decamelize('innerHTML'); // 'inner_html'
33117
- * decamelize('action_name'); // 'action_name'
33118
- * decamelize('css-class-name'); // 'css-class-name'
33119
- * decamelize('my favorite items'); // 'my favorite items'
33120
- * ```
33121
- * @method decamelize
33122
- * @param str The string to decamelize.
33123
- * @return the decamelized string.
33124
- */
33125
- function decamelize(str) {
33126
- return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();
33127
- }
33128
- /**
33129
- * Replaces underscores, spaces, or camelCase with dashes.
33130
- * ```javascript
33131
- * dasherize('innerHTML'); // 'inner-html'
33132
- * dasherize('action_name'); // 'action-name'
33133
- * dasherize('css-class-name'); // 'css-class-name'
33134
- * dasherize('my favorite items'); // 'my-favorite-items'
33135
- * ```
33136
- * @method dasherize
33137
- * @param str The string to dasherize.
33138
- * @return the dasherized string.
33139
- */
33140
- function dasherize(str) {
33141
- return decamelize(str).replace(STRING_DASHERIZE_REGEXP, '-');
33142
- }
33143
- /**
33144
- * Returns the lowerCamelCase form of a string.
33145
- * ```javascript
33146
- * camelize('innerHTML'); // 'innerHTML'
33147
- * camelize('action_name'); // 'actionName'
33148
- * camelize('css-class-name'); // 'cssClassName'
33149
- * camelize('my favorite items'); // 'myFavoriteItems'
33150
- * camelize('My Favorite Items'); // 'myFavoriteItems'
33151
- * ```
33152
- * @method camelize
33153
- * @param str The string to camelize.
33154
- * @return the camelized string.
33155
- */
33156
- function camelize(str) {
33157
- return str
33158
- .replace(STRING_CAMELIZE_REGEXP, (_match, _separator, chr) => {
33159
- return chr ? chr.toUpperCase() : '';
33160
- })
33161
- .replace(/^([A-Z])/, (match) => match.toLowerCase());
33162
- }
33163
- /**
33164
- * Returns the UpperCamelCase form of a string.
33165
- * ```javascript
33166
- * 'innerHTML'.classify(); // 'InnerHTML'
33167
- * 'action_name'.classify(); // 'ActionName'
33168
- * 'css-class-name'.classify(); // 'CssClassName'
33169
- * 'my favorite items'.classify(); // 'MyFavoriteItems'
33170
- * ```
33171
- * @method classify
33172
- * @param str the string to classify
33173
- * @return the classified string
33174
- */
33175
- function classify(str) {
33176
- return str.split('.').map(part => capitalize(camelize(part))).join('.');
33177
- }
33178
- /**
33179
- * More general than decamelize. Returns the lower\_case\_and\_underscored
33180
- * form of a string.
33181
- * ```javascript
33182
- * 'innerHTML'.underscore(); // 'inner_html'
33183
- * 'action_name'.underscore(); // 'action_name'
33184
- * 'css-class-name'.underscore(); // 'css_class_name'
33185
- * 'my favorite items'.underscore(); // 'my_favorite_items'
33186
- * ```
33187
- * @method underscore
33188
- * @param str The string to underscore.
33189
- * @return the underscored string.
33190
- */
33191
- function underscore(str) {
33192
- return str
33193
- .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')
33194
- .replace(STRING_UNDERSCORE_REGEXP_2, '_')
33195
- .toLowerCase();
33196
- }
33197
- /**
33198
- * Returns the Capitalized form of a string
33199
- * ```javascript
33200
- * 'innerHTML'.capitalize() // 'InnerHTML'
33201
- * 'action_name'.capitalize() // 'Action_name'
33202
- * 'css-class-name'.capitalize() // 'Css-class-name'
33203
- * 'my favorite items'.capitalize() // 'My favorite items'
33204
- * ```
33205
- * @method capitalize
33206
- * @param str The string to capitalize.
33207
- * @return The capitalized string.
33208
- */
33209
- function capitalize(str) {
33210
- return str.charAt(0).toUpperCase() + str.substr(1);
33211
- }
33212
- /**
33213
- * Calculate the levenshtein distance of two strings.
33214
- * See https://en.wikipedia.org/wiki/Levenshtein_distance.
33215
- * Based off https://gist.github.com/andrei-m/982927 (for using the faster dynamic programming
33216
- * version).
33217
- *
33218
- * @param a String a.
33219
- * @param b String b.
33220
- * @returns A number that represents the distance between the two strings. The greater the number
33221
- * the more distant the strings are from each others.
33222
- */
33223
- function levenshtein(a, b) {
33224
- if (a.length === 0) {
33225
- return b.length;
33226
- }
33227
- if (b.length === 0) {
33228
- return a.length;
33229
- }
33230
- const matrix = [];
33231
- // increment along the first column of each row
33232
- for (let i = 0; i <= b.length; i++) {
33233
- matrix[i] = [i];
33234
- }
33235
- // increment each column in the first row
33236
- for (let j = 0; j <= a.length; j++) {
33237
- matrix[0][j] = j;
33238
- }
33239
- // Fill in the rest of the matrix
33240
- for (let i = 1; i <= b.length; i++) {
33241
- for (let j = 1; j <= a.length; j++) {
33242
- if (b.charAt(i - 1) === a.charAt(j - 1)) {
33243
- matrix[i][j] = matrix[i - 1][j - 1];
33244
- }
33245
- else {
33246
- matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
33247
- matrix[i][j - 1] + 1, // insertion
33248
- matrix[i - 1][j] + 1);
33249
- }
33250
- }
33251
- }
33252
- return matrix[b.length][a.length];
33253
- }
33254
-
33255
- class ViewClassInfo extends ImportToAdd {
33256
- constructor(path, viewType, customComponentName) {
33257
- super('', '');
33258
- if (!customComponentName) {
33259
- this.prefix = ViewClassInfo.convertPathToClassNamePrefix(path);
33260
- const classSuffix = ViewClassInfo.resolveClassSuffixForView(viewType);
33261
- this.nameWithoutComponent = `${classify(this.prefix)}${classSuffix}`;
33262
- this.fileImportPath = `./views/${path}/${this.prefix}-${dasherize(classSuffix)}.component`;
33263
- }
33264
- else {
33265
- this.prefix = '';
33266
- this.nameWithoutComponent = classify(customComponentName);
33267
- this.fileImportPath = `./views/${path}/${dasherize(customComponentName)}.component`;
33268
- }
33269
- this.className = `${this.nameWithoutComponent}Component`;
33270
- }
33271
- static convertPathToClassNamePrefix(path) {
33272
- const regexDash = /-/g;
33273
- return path.replace(regexDash, '_').replace(/\//g, '-').toLocaleLowerCase();
33274
- }
33275
- static resolveClassSuffixForView(view) {
33276
- switch (view) {
33277
- case 'login':
33278
- return 'Login';
33279
- case 'tabView':
33280
- return 'TabView';
33281
- case 'taskView':
33282
- return 'TaskView';
33283
- case 'caseView':
33284
- return 'CaseView';
33285
- case 'emptyView':
33286
- return 'EmptyView';
33287
- case 'sidenavView':
33288
- return 'SidenavView';
33289
- case 'doubleDrawerView':
33290
- return 'DoubleDrawerView';
33291
- case 'toolbarView':
33292
- return 'ToolbarView';
33293
- case 'sidenavAndToolbarView':
33294
- return 'SidenavAndToolbarView';
33295
- case 'groupView':
33296
- return 'GroupView';
33297
- case 'dashboard':
33298
- return 'Dashboard';
33299
- case 'treeCaseView':
33300
- return 'TreeCaseView';
33301
- case 'workflowView':
33302
- return 'WorkflowView';
33303
- case 'roleAssignmentView':
33304
- return 'RoleAssignmentView';
33305
- case 'ldapRoleAssignmentView':
33306
- return 'LdapRoleAssignmentView';
33307
- default:
33308
- throw new Error(`Unknown view type '${view}'`);
33309
- }
33310
- }
33311
- }
33312
-
33313
- const NAE_ROUTING_CONFIGURATION_PATH = "configPath";
33314
- /**
33315
- * Uses the information from nae.json to construct the application's routing
33316
- */
33317
- class RoutingBuilderService {
33318
- constructor(router, _configService, _viewService, _logger, _dynamicNavigationRouteService, _groupNavigationComponentResolverComponent) {
33319
- this._configService = _configService;
33320
- this._viewService = _viewService;
33321
- this._logger = _logger;
33322
- this._dynamicNavigationRouteService = _dynamicNavigationRouteService;
33323
- this._groupNavigationComponentResolverComponent = _groupNavigationComponentResolverComponent;
33324
- this._groupNavigationRouteGenerated = false;
33325
- router.relativeLinkResolution = 'legacy';
33326
- router.config.splice(0, router.config.length);
33327
- for (const [pathSegment, view] of Object.entries(_configService.get().views)) {
33328
- const route = this.constructRouteObject(view, pathSegment);
33329
- if (route !== undefined) {
33330
- router.config.push(route);
33331
- }
33332
- }
33333
- router.config.push(...this.defaultRoutesRedirects());
33334
- }
33335
- constructRouteObject(view, configPath, ancestors = []) {
33336
- const component = this.resolveComponentClass(view, configPath);
33337
- if (component === undefined) {
33338
- return undefined;
33339
- }
33340
- if (!view.routing) {
33341
- this._logger.warn(`nae.json configuration is invalid. View at path '${configPath}'` +
33342
- ` must define a 'routing' attribute. Skipping this view for routing generation.`);
33343
- return undefined;
33344
- }
33345
- const route = {
33346
- path: view.routing.path,
33347
- data: {
33348
- [NAE_ROUTING_CONFIGURATION_PATH]: configPath
33349
- },
33350
- component
33351
- };
33352
- if (view?.layout?.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {
33353
- if (this._groupNavigationRouteGenerated) {
33354
- this._logger.warn(`Multiple groupNavigationOutlets are present in nae.json. Duplicate entry found at path ${configPath}`);
33355
- }
33356
- else {
33357
- this._logger.debug(`GroupNavigationOutlet found in nae.json at path '${configPath}'`);
33358
- }
33359
- const pathNoParams = route.path;
33360
- route.path = `${pathNoParams}/:${GroupNavigationConstants.GROUP_NAVIGATION_ROUTER_PARAM}`;
33361
- route.canActivate = [AuthenticationGuardService];
33362
- const parentPathSegments = ancestors.map(a => a.path);
33363
- parentPathSegments.push(pathNoParams);
33364
- this._dynamicNavigationRouteService.route = parentPathSegments.join('/');
33365
- this._groupNavigationRouteGenerated = true;
33366
- return route;
33367
- }
33368
- if (view.routing.match !== undefined && view.routing.match) {
33369
- route['pathMatch'] = 'full';
33370
- }
33371
- route['canActivate'] = [];
33372
- if (view.access === 'private'
33373
- || view.access.hasOwnProperty('role')
33374
- || view.access.hasOwnProperty('group')
33375
- || view.access.hasOwnProperty('authority')) {
33376
- route['canActivate'].push(AuthenticationGuardService);
33377
- }
33378
- if (view.access.hasOwnProperty('role')) {
33379
- route['canActivate'].push(RoleGuardService);
33380
- }
33381
- if (view.access.hasOwnProperty('authority')) {
33382
- route['canActivate'].push(AuthorityGuardService);
33383
- }
33384
- if (view.access.hasOwnProperty('group')) {
33385
- route['canActivate'].push(GroupGuardService);
33386
- }
33387
- if (!!view.children) {
33388
- route['children'] = [];
33389
- Object.entries(view.children).forEach(([configPathSegment, childView]) => {
33390
- // TODO check if routes are constructed correctly regarding empty route segments
33391
- const childRoute = this.constructRouteObject(childView, `${configPath}/${configPathSegment}`, [...ancestors, route]);
33392
- if (childRoute !== undefined) {
33393
- route['children'].push(childRoute);
33394
- }
33395
- });
33396
- }
33397
- if (view?.layout?.name === 'tabView') {
33398
- if (!view.children) {
33399
- route['children'] = [];
33400
- }
33401
- route['children'].push({
33402
- path: '**',
33403
- component
33404
- });
33405
- }
33406
- return route;
33407
- }
33408
- resolveComponentClass(view, configPath) {
33409
- let result;
33410
- if (!!view.component) {
33411
- result = this._viewService.resolveNameToClass(view.component.class);
33412
- }
33413
- else if (!!view.layout) {
33414
- result = this.resolveComponentClassFromLayout(view, configPath);
33415
- }
33416
- else {
33417
- this._logger.warn(`nae.json configuration is invalid. View at path '${configPath}'` +
33418
- ` must define either a 'layout' or a 'component' attribute. Skipping this view for routing generation.`);
33419
- return undefined;
33420
- }
33421
- if (result === undefined) {
33422
- this._logger.warn(`Some views from nae.json configuration have not been created in the project.` +
33423
- ` Run create-view schematic to rectify this. Skipping this view for routing generation.`);
33424
- return undefined;
33425
- }
33426
- return result;
33427
- }
33428
- resolveComponentClassFromLayout(view, configPath) {
33429
- if (view.layout.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {
33430
- return this._groupNavigationComponentResolverComponent;
33431
- }
33432
- const className = RoutingBuilderService.parseClassNameFromView(view, configPath);
33433
- return this._viewService.resolveNameToClass(className);
33434
- }
33435
- static parseClassNameFromView(view, configPath) {
33436
- if (!!view.layout.componentName) {
33437
- return `${classify(view.layout.componentName)}Component`;
33438
- }
33439
- else {
33440
- const classInfo = new ViewClassInfo(configPath, view.layout.name, view.layout.componentName);
33441
- return classInfo.className;
33442
- }
33443
- }
33444
- defaultRoutesRedirects() {
33445
- const result = [];
33446
- const servicesConfig = this._configService.getServicesConfiguration();
33447
- if (!!servicesConfig && !!servicesConfig.routing) {
33448
- if (!!servicesConfig.routing.defaultRedirect) {
33449
- result.push({
33450
- path: '',
33451
- redirectTo: servicesConfig.routing.defaultRedirect,
33452
- pathMatch: 'full'
33453
- });
33454
- }
33455
- if (!!servicesConfig.routing.wildcardRedirect) {
33456
- result.push({
33457
- path: '**',
33458
- redirectTo: servicesConfig.routing.wildcardRedirect
33459
- });
33460
- }
33461
- }
33462
- return result;
33463
- }
33464
- }
33465
- RoutingBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RoutingBuilderService, deps: [{ token: i2$3.Router }, { token: ConfigurationService }, { token: ViewService }, { token: LoggerService }, { token: DynamicNavigationRouteProviderService }, { token: NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
33466
- RoutingBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RoutingBuilderService, providedIn: 'root' });
33467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RoutingBuilderService, decorators: [{
33468
- type: Injectable,
33469
- args: [{
33470
- providedIn: 'root'
33471
- }]
33472
- }], ctorParameters: function () { return [{ type: i2$3.Router }, { type: ConfigurationService }, { type: ViewService }, { type: LoggerService }, { type: DynamicNavigationRouteProviderService }, { type: i0.Type, decorators: [{
33473
- type: Optional
33474
- }, {
33475
- type: Inject,
33476
- args: [NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT]
33477
- }] }]; } });
33478
-
33479
33584
  /* SERVICES */
33480
33585
 
33481
33586
  /**
@@ -33485,7 +33590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
33485
33590
  * If you want to use an unlimited number of calls use {@link UnlimitedTaskContentService} instead.
33486
33591
  */
33487
33592
  class SingleTaskContentService extends TaskContentService {
33488
- constructor(_fieldConverterService, _snackBarService, _translate, _logger) {
33593
+ constructor(_fieldConverterService, _snackBarService, _translate, _logger, _injector) {
33489
33594
  super(_fieldConverterService, _snackBarService, _translate, _logger);
33490
33595
  this._task$ = new ReplaySubject(1);
33491
33596
  }
@@ -33527,11 +33632,11 @@ class SingleTaskContentService extends TaskContentService {
33527
33632
  }
33528
33633
  }
33529
33634
  }
33530
- SingleTaskContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SingleTaskContentService, deps: [{ token: FieldConverterService }, { token: SnackBarService }, { token: i1$2.TranslateService }, { token: LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
33635
+ SingleTaskContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SingleTaskContentService, deps: [{ token: FieldConverterService }, { token: SnackBarService }, { token: i1$2.TranslateService }, { token: LoggerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
33531
33636
  SingleTaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SingleTaskContentService });
33532
33637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SingleTaskContentService, decorators: [{
33533
33638
  type: Injectable
33534
- }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }]; } });
33639
+ }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }, { type: i0.Injector }]; } });
33535
33640
 
33536
33641
  /**
33537
33642
  * Provides an implementation of the {@link TaskContentService} abstract class that allows
@@ -33540,7 +33645,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
33540
33645
  * If you want to limit the number of calls to 1 use {@link SingleTaskContentService} instead.
33541
33646
  */
33542
33647
  class UnlimitedTaskContentService extends TaskContentService {
33543
- constructor(_fieldConverterService, _snackBarService, _translate, _logger) {
33648
+ constructor(_fieldConverterService, _snackBarService, _translate, _logger, _injector) {
33544
33649
  super(_fieldConverterService, _snackBarService, _translate, _logger);
33545
33650
  this._task$ = new ReplaySubject(1);
33546
33651
  }
@@ -33574,11 +33679,11 @@ class UnlimitedTaskContentService extends TaskContentService {
33574
33679
  this._task$.complete();
33575
33680
  }
33576
33681
  }
33577
- UnlimitedTaskContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UnlimitedTaskContentService, deps: [{ token: FieldConverterService }, { token: SnackBarService }, { token: i1$2.TranslateService }, { token: LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
33682
+ UnlimitedTaskContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UnlimitedTaskContentService, deps: [{ token: FieldConverterService }, { token: SnackBarService }, { token: i1$2.TranslateService }, { token: LoggerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
33578
33683
  UnlimitedTaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UnlimitedTaskContentService });
33579
33684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UnlimitedTaskContentService, decorators: [{
33580
33685
  type: Injectable
33581
- }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }]; } });
33686
+ }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }, { type: i0.Injector }]; } });
33582
33687
 
33583
33688
  /**
33584
33689
  * Contains types of elements that are used to construct task content, but are not data fields themselves.
@@ -34777,13 +34882,24 @@ const getNetAndCreateCase = (router, route, process, caseResourceService, snackB
34777
34882
  });
34778
34883
  };
34779
34884
 
34885
+ const CASE_ID = "caseId";
34886
+ const PETRI_NET_ID = "petriNetId";
34887
+ const TRANSITION_ID = "transitionId";
34780
34888
  const publicBaseFilterFactory = (router, route, process, caseResourceService, snackBarService, translate, publicTaskLoadingService) => {
34781
- if (route.snapshot.paramMap.get('caseId') === null && route.snapshot.paramMap.get('petriNetId') !== null) {
34889
+ const caseId = route.snapshot.paramMap.get(CASE_ID);
34890
+ const petriNetId = route.snapshot.paramMap.get(PETRI_NET_ID);
34891
+ const transId = route.snapshot.paramMap.get(TRANSITION_ID);
34892
+ if (caseId === null && petriNetId !== null) {
34782
34893
  getNetAndCreateCase(router, route, process, caseResourceService, snackBarService, translate, publicTaskLoadingService);
34783
34894
  }
34784
- else if (route.snapshot.paramMap.get('caseId') !== null) {
34895
+ else if (caseId !== null && transId !== null) {
34785
34896
  return {
34786
- filter: new SimpleFilter('', FilterType.TASK, { case: { id: route.snapshot.paramMap.get('caseId') } })
34897
+ filter: new SimpleFilter('', FilterType.TASK, { case: { id: caseId }, transitionId: transId })
34898
+ };
34899
+ }
34900
+ else if (caseId !== null) {
34901
+ return {
34902
+ filter: new SimpleFilter('', FilterType.TASK, { case: { id: caseId } })
34787
34903
  };
34788
34904
  }
34789
34905
  return {
@@ -34870,6 +34986,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
34870
34986
 
34871
34987
  /* MODELS */
34872
34988
 
34989
+ const redirectAction = {
34990
+ call: (injector, frontAction) => {
34991
+ const router = injector.get(Router);
34992
+ router.navigate([frontAction.args[0]]);
34993
+ }
34994
+ };
34995
+
34996
+ const validateTaskAction = {
34997
+ call: (injector, frontAction) => {
34998
+ const taskContentService = injector.get(TaskContentService);
34999
+ taskContentService.validateTaskData(frontAction.args[0]);
35000
+ }
35001
+ };
35002
+ const reloadTaskAction = {
35003
+ call: (injector, frontAction) => {
35004
+ const taskDataService = injector.get(TaskDataService);
35005
+ taskDataService.initializeTaskDataFields(new AfterAction(), true);
35006
+ }
35007
+ };
35008
+
35009
+ class FrontActionModule {
35010
+ constructor(frontActionsRegistry) {
35011
+ frontActionsRegistry.register('redirect', redirectAction);
35012
+ frontActionsRegistry.register('validate', validateTaskAction);
35013
+ frontActionsRegistry.register('reloadTask', reloadTaskAction);
35014
+ }
35015
+ }
35016
+ FrontActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, deps: [{ token: FrontActionRegistryService }], target: i0.ɵɵFactoryTarget.NgModule });
35017
+ FrontActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, imports: [CommonModule] });
35018
+ FrontActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, imports: [[
35019
+ CommonModule
35020
+ ]] });
35021
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, decorators: [{
35022
+ type: NgModule,
35023
+ args: [{
35024
+ declarations: [],
35025
+ imports: [
35026
+ CommonModule
35027
+ ]
35028
+ }]
35029
+ }], ctorParameters: function () { return [{ type: FrontActionRegistryService }]; } });
35030
+
34873
35031
  /*
34874
35032
  * Public API Surface of netgrif-components-core
34875
35033
  */
@@ -34878,5 +35036,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
34878
35036
  * Generated bundle index. Do not edit.
34879
35037
  */
34880
35038
 
34881
- export { AbstractAddChildNodeComponent, AbstractAdvancedSearchComponent, AbstractAuthenticationOverlayComponent, AbstractBaseDataFieldComponent, AbstractBooleanDefaultFieldComponent, AbstractBooleanFieldComponent, AbstractBreadcrumbsComponent, AbstractButtonDefaultFieldComponent, AbstractButtonFieldComponent, AbstractCaseListComponent, AbstractCaseListPaginatorComponent, AbstractCasePanelComponent, AbstractCaseRefDefaultComponent, AbstractCaseViewComponent, AbstractChangePasswordComponent, AbstractCountCardComponent, AbstractCurrencyNumberFieldComponent, AbstractCustomCardComponent, AbstractDashboardBarChartTextFieldComponent, AbstractDashboardContentComponent, AbstractDashboardIframeTextFieldComponent, AbstractDashboardLineChartTextFieldComponent, AbstractDashboardPieChartTextFieldComponent, AbstractDashboardPortalTextFieldComponent, AbstractDashboardTextFieldComponent, AbstractDataFieldTemplateComponent, AbstractDateDefaultFieldComponent, AbstractDateFieldComponent, AbstractDateTimeDefaultFieldComponent, AbstractDateTimeFieldComponent, AbstractDefaultNumberFieldComponent, AbstractEditModeComponent, AbstractEmailSubmissionFormComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationListFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractFieldComponentResolverComponent, AbstractFileDefaultFieldComponent, AbstractFileFieldComponent, AbstractFileListDefaultFieldComponent, AbstractFileListFieldComponent, AbstractFilterDefaultFieldComponent, AbstractFilterFieldComponent, AbstractFilterFieldContentComponent, AbstractFilterFieldTabViewComponent, AbstractFilterFieldTabViewContentComponent, AbstractFilterSelectorComponent, AbstractFilterSelectorListItemComponent, AbstractForgottenPasswordComponent, AbstractFulltextSearchComponent, AbstractGroupNavigationComponentResolverComponent, AbstractHeaderComponent, AbstractHeaderService, AbstractHtmlTextareaFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nErrorsComponent, AbstractI18nFieldComponent, AbstractI18nTextFieldComponent, AbstractIframeCardComponent, AbstractImmediateFilterTextComponent, AbstractImmediateFilterTextContentComponent, AbstractImportNetComponent, AbstractInternalLinkComponent, AbstractLanguageSelectorComponent, AbstractLdapGroupRoleAssignmentComponent, AbstractLegalNoticeComponent, AbstractLoadFilterComponent, AbstractLoadingModeComponent, AbstractLoggerService, AbstractLoginFormComponent, AbstractLogoutShortcutComponent, AbstractMultiUserAssignComponent, AbstractMultiUserAssignItemComponent, AbstractMultiUserAssignListComponent, AbstractMultichoiceAutocompleteFieldComponentComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceListFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractNavigationDoubleDrawerComponent, AbstractNavigationDrawerComponent, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, AbstractNewCaseComponent, AbstractNumberErrorsComponent, AbstractNumberFieldComponent, AbstractOptionSelectorComponent, AbstractPanelComponent, AbstractPanelItemComponent, AbstractPasswordTextFieldComponent, AbstractProfileComponent, AbstractQuickPanelComponent, AbstractRegistrationComponent, AbstractRegistrationFormComponent, AbstractRemoveNodeComponent, AbstractResourceProvider, AbstractResourceService, AbstractRichTextareaFieldComponent, AbstractRoleAssignmentComponent, AbstractSaveFilterComponent, AbstractSearchClauseComponent, AbstractSearchComponent, AbstractSearchConfigurationInputComponent, AbstractSearchModeComponent, AbstractSearchOperandInputComponent, AbstractSearchPredicateComponent, AbstractSessionIdleComponent, AbstractSideMenuContainerComponent, AbstractSimpleTextFieldComponent, AbstractSingleTaskComponent, AbstractSingleTaskViewComponent, AbstractSortModeComponent, AbstractSortableViewComponent, AbstractTabCreationDetectorComponent, AbstractTabViewComponent, AbstractTabbedCaseViewComponent, AbstractTabbedTaskViewComponent, AbstractTaskContentComponent, AbstractTaskListComponent, AbstractTaskListPaginationComponent, AbstractTaskPanelComponent, AbstractTaskRefDashboardFieldComponent, AbstractTaskRefDashboardTileComponent, AbstractTaskRefFieldComponent, AbstractTaskRefListFieldComponent, AbstractTaskViewComponent, AbstractTextErrorsComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractToolbarComponent, AbstractTreeComponent, AbstractTreeTaskContentComponent, AbstractUserAssignComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, AbstractUserCardComponent, AbstractUserDefaultFieldComponent, AbstractUserFieldComponent, AbstractUserImpersonateComponent, AbstractUserInviteComponent, AbstractUserListDefaultFieldComponent, AbstractUserListFieldComponent, AbstractViewWithHeadersComponent, AbstractWorkflowPanelComponent, AbstractWorkflowViewComponent, AccessService, ActiveGroupService, AdvancedSearchComponentInitializationService, AfterAction, AlertDialogComponent, AlertDialogModule, AllowedNetsService, AllowedNetsServiceFactory, AnonymousAuthenticationInterceptor, AnonymousService, AssignPolicy, AssignPolicyService, AssignTaskService, AuthenticationGuardService, AuthenticationInterceptor, AuthenticationMethodService, AuthenticationModule, AuthenticationService, AuthorityGuardService, AutocompleteCategory, BOOLEAN_VALUE_LABEL_ENABLED, BaseAllowedNetsService, BasicAuthenticationService, BooleanField, BooleanFieldValidation, BooleanOperator, ButtonField, ButtonFieldValidation, CONFIRM_PASSWORD, CallChainService, CancelTaskService, CaseAuthor, CaseCreationDate, CaseCreationDateTime, CaseDataset, CaseHeaderService, CaseListFontColorService, CaseMetaField, CaseNetAttributeAutocompleteCategory, CaseProcess, CaseRefField, CaseResourceService, CaseRole, CaseSearch, CaseSimpleDataset, CaseStringId, CaseTask, CaseTitle, CaseTreeNode, CaseTreeService, CaseViewService, CaseVisualId, Categories, Category, CategoryFactory, CategoryResolverService, ChangedFieldsService, ClausePredicate, ComponentPrefixes, ComponentRegistryService, ConfigParams, ConfigurationInput, ConfigurationService, ConfirmDialogComponent, ConfirmDialogModule, ConsoleLogPublisher, ContainsPipe, CovalentModule, CurrencyModule, CustomDateAdapter, DATA_FIELD_PORTAL_DATA, DATE_FORMAT, DATE_FORMAT_STRING, DATE_TIME_FORMAT, DATE_TIME_FORMAT_STRING, DEFAULT, DEFAULT_LANGUAGE_CODE, Dashboard, DashboardCardTypes, DashboardMultiData, DashboardResourceService, DashboardSingleData, DataField, DataFieldsModule, DataFocusPolicy, DataFocusPolicyService, DataGroupAlignment, DatafieldMapKey, DateField, DateTimeField, DefaultSearchCategoriesModule, DelegateTaskService, DialogModule, DialogService, DynamicEnumerationField, DynamicNavigationRouteProviderService, EditableClausePredicate, EditableClausePredicateWithGenerators, EditableElementaryPredicate, EditablePredicate, EditablePredicateWithGenerator, ElementaryPredicate, EnumerationAutocompleteFilterProperty, EnumerationField, EnumerationFieldValidation, Equals, EqualsDate, ErrorSnackBarComponent, EventConstants, EventQueueService, EventService, FieldAlignment, FieldConverterService, FieldTypeResource, FileField, FileListField, FileListFieldValidation, FilePreviewType, FileUploadMIMEType, FileUploadModel, Filter, FilterExtractionService, FilterField, FilterRepository, FilterType, FilteredArray, FinishPolicy, FinishPolicyService, FinishTaskService, GenericSnackBarComponent, GroupGuardService, GroupNavigationComponentResolverService, GroupNavigationConstants, HeaderColumn, HeaderColumnType, HeaderMode, HeaderSearchService, HeaderType, HttpLoaderFactory, I18nField, I18nFieldValidation, ImpersonationService, ImpersonationUserListService, ImpersonationUserResourceService, ImpersonationUserSelectService, InRange, InRangeDate, IncrementingCounter, IsEmptyPipe, IsNonEmptyPipe, IsNull, LanguageIconsService, LanguageService, LdapGroupListService, LdapGroupResourceService, LessThan, LessThanDate, LessThanDateTime, LetContext, LetDirective, Like, LoadingEmitter, LoadingWithFilterEmitter, LocalStorageLogPublisher, LogEntry, LogLevel, LogPublisher, LogPublisherService, LoggerService, MENU_IDENTIFIERS, MaterialAppearance, MaterialModule, MergeOperator, MergedFilter, MockAuthenticationMethodService, MockAuthenticationService, MockEndpoint, MockProfileService, MockSignUpService, MockUserPreferenceService, MockUserResourceService, MockUserService, MoreThan, MoreThanDate, MoreThanDateTime, MultichoiceAutocompleteFilterProperty, MultichoiceField, NAE_ADMIN_IMPERSONATE_COMPONENT, NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, NAE_ASYNC_RENDERING_CONFIGURATION, NAE_AUTOSWITCH_TAB_TOKEN, NAE_BASE_FILTER, NAE_CASE_REF_CREATE_CASE, NAE_CASE_REF_SEARCH, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_MIN_PASSWORD_LENGTH, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_FILES_UPLOAD_COMPONENT, NAE_FILES_UPLOAD_DIALOG_COMPONENT, NAE_FILTERS_FILTER, NAE_FILTER_FIELD, NAE_FILTER_TEXT, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, NAE_INFORM_ABOUT_INVALID_DATA, NAE_LOAD_FILTER_COMPONENT, NAE_LOAD_FILTER_DIALOG_COMPONENT, NAE_MIN_PASSWORD_LENGTH, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE, NAE_NEW_CASE_COMPONENT, NAE_NEW_CASE_CONFIGURATION, NAE_NEW_CASE_CREATION_CONFIGURATION_DATA, NAE_NEW_CASE_DIALOG_COMPONENT, NAE_OPEN_EXISTING_TAB, NAE_OPTION_SELECTOR_COMPONENT, NAE_OPTION_SELECTOR_DIALOG_COMPONENT, NAE_PREFERRED_TASK_ENDPOINT, NAE_ROUTING_CONFIGURATION_PATH, NAE_SAVE_FILTER_COMPONENT, NAE_SAVE_FILTER_DIALOG_COMPONENT, NAE_SEARCH_CATEGORIES, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_SIDE_MENU_CONTROL, NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION, NAE_TAB_DATA, NAE_TASK_FORCE_OPEN, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, NAE_TASK_VIEW_CONFIGURATION, NAE_TREE_CASE_VIEW_CONFIGURATION, NAE_URI_NODE_CASES_PAGE_SIZE, NAE_USER_ASSIGN_COMPONENT, NAE_USER_ASSIGN_DIALOG_COMPONENT, NAE_USER_IMPERSONATE_COMPONENT, NAE_USER_IMPERSONATE_DIALOG_COMPONENT, NAE_VIEW_ID, NAE_VIEW_ID_SEGMENT, NAE_WORKFLOW_SERVICE_CONFIRM_DELETE, NAE_WORKFLOW_SERVICE_FILTER, Net, NetAttributeAutocompleteCategory, NextGroupService, NoConfigurationAutocompleteCategory, NoConfigurationCategory, NoConfigurationUserAutocompleteCategory, NotEquals, NotEqualsDate, NotEqualsDateTime, NullAuthenticationService, NullTaskOperations, NumberField, NumberFieldValidation, OLD_PASSWORD, OpenedTab, Operator, OperatorResolverService, OperatorService, OperatorTemplatePart, OperatorTemplatePartType, Operators, OrganizationListService, OverflowService, PASSWORD, PUBLISHERS, PageLoadRequestContext, PaginationParams, PaginationSort, PaperViewService, PermissionService, PermissionType, PetriNetResourceService, Predicate, PredicateWithGenerator, ProcessList, ProcessService, ProfileModule, ProfileService, ProgressType, PromptDialogComponent, PromptDialogModule, PublicCaseResourceService, PublicPetriNetResourceService, PublicProcessService, PublicTaskLoadingService, PublicTaskResourceService, PublicUrlResolverService, Query, QueuedEvent, RedirectService, ResourceProvider, ResultWithAfterActions, RoleAssignmentLdapGroupService, RoleAssignmentService, RoleGuardService, RoutingBuilderService, SETTINGS_TRANSITION_ID, SearchIndex, SearchIndexResolverService, SearchInputType, SearchMode, SearchService, SelectedCaseService, SessionIdleTimerService, SessionService, SideMenuControl, SideMenuRef, SideMenuService, SideMenuSize, SignUpModule, SignUpService, SimpleFilter, SingleTaskContentService, SnackBarComponent, SnackBarHorizontalPosition, SnackBarModule, SnackBarService, SnackBarVerticalPosition, SpinnerOverlayService, Subgrid, SubjectTaskOperations, Substring, SuccessSnackBarComponent, TabLabelStream, TabView, TabbedVirtualScrollComponent, TaskAssignee, TaskConst, TaskContentService, TaskDataService, TaskElementType, TaskEndpoint, TaskEvent, TaskEventService, TaskHandlingService, TaskHeaderService, TaskMetaField, TaskNetAttributeAutocompleteCategory, TaskProcess, TaskRefComponents, TaskRefDashboardConstants, TaskRefDashboardTileConstants, TaskRefField, TaskRequestStateService, TaskResourceService, TaskRole, TaskTask, TaskViewService, TemplateAppearance, TestCaseBaseFilterProvider, TestCaseViewAllowedNetsFactory, TestConfigurationService, TestMockDependenciesModule, TestNoAllowedNetsFactory, TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory, TestViewService, TextAreaField, TextAreaHeight, TextField, TextFieldComponent, TextFieldValidation, TextFieldView, TranslateLibModule, TreeCaseViewService, TreePetriflowIdentifiers, TreeTaskContentService, UnlimitedTaskContentService, UriContentType, UriResourceService, UriService, User, UserAutocomplete, UserComparatorService, UserField, UserFilterConstants, UserFiltersService, UserImpersonationConstants, UserInviteService, UserListField, UserListService, UserListValue, UserPreferenceService, UserResourceService, UserService, UserTransformer, UserValue, UtilityModule, ViewIdService, ViewService, WarningSnackBarComponent, WorkflowHeaderService, WorkflowMetaField, WorkflowViewService, WrappedBoolean, arrayToObservable, authenticationServiceFactory, clearTimeInformation, configureCategory, createMockCase, createMockCaseOutcome, createMockDataGroup, createMockDependencies, createMockField, createMockGetDataOutcome, createMockImmediateData, createMockNet, createMockPage, createMockPetriNetOutcome, createMockSetDataOutcome, createMockTask, createMockTaskOutcome, createSortParam, createTaskEventNotification, decodeBase64, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, destroySubscription, encodeBase64, extractFieldValueFromData, extractFilterFieldFromData, extractFilterFromData, extractFilterFromFilterField, extractIconAndTitle, extractRoles, extractSearchTypeFromData, getField, getFieldFromDataGroups, getFieldIndex, getFieldIndexFromDataGroups, getImmediateData, getNetAndCreateCase, groupNavigationViewIdSegmentFactory, hasContent, loadAllPages, mockUserAutocompleteValue, navigationItemCaseViewDefaultHeadersFactory, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, navigationItemTaskFilterFactory, navigationItemTaskViewDefaultHeadersFactory, ofVoid, processMessageResponse, publicBaseFilterFactory, publicFactoryResolver, refreshTree, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, toMoment };
35039
+ export { AbstractAddChildNodeComponent, AbstractAdvancedSearchComponent, AbstractAuthenticationOverlayComponent, AbstractBaseDataFieldComponent, AbstractBooleanDefaultFieldComponent, AbstractBooleanFieldComponent, AbstractBreadcrumbsComponent, AbstractButtonDefaultFieldComponent, AbstractButtonFieldComponent, AbstractCaseListComponent, AbstractCaseListPaginatorComponent, AbstractCasePanelComponent, AbstractCaseRefDefaultComponent, AbstractCaseViewComponent, AbstractChangePasswordComponent, AbstractCountCardComponent, AbstractCurrencyNumberFieldComponent, AbstractCustomCardComponent, AbstractDashboardBarChartTextFieldComponent, AbstractDashboardContentComponent, AbstractDashboardIframeTextFieldComponent, AbstractDashboardLineChartTextFieldComponent, AbstractDashboardPieChartTextFieldComponent, AbstractDashboardPortalTextFieldComponent, AbstractDashboardTextFieldComponent, AbstractDataFieldTemplateComponent, AbstractDateDefaultFieldComponent, AbstractDateFieldComponent, AbstractDateTimeDefaultFieldComponent, AbstractDateTimeFieldComponent, AbstractDefaultNumberFieldComponent, AbstractEditModeComponent, AbstractEmailSubmissionFormComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationListFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractFieldComponentResolverComponent, AbstractFileDefaultFieldComponent, AbstractFileFieldComponent, AbstractFileListDefaultFieldComponent, AbstractFileListFieldComponent, AbstractFilterDefaultFieldComponent, AbstractFilterFieldComponent, AbstractFilterFieldContentComponent, AbstractFilterFieldTabViewComponent, AbstractFilterFieldTabViewContentComponent, AbstractFilterSelectorComponent, AbstractFilterSelectorListItemComponent, AbstractForgottenPasswordComponent, AbstractFulltextSearchComponent, AbstractGroupNavigationComponentResolverComponent, AbstractHeaderComponent, AbstractHeaderService, AbstractHtmlTextareaFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nErrorsComponent, AbstractI18nFieldComponent, AbstractI18nTextFieldComponent, AbstractIframeCardComponent, AbstractImmediateFilterTextComponent, AbstractImmediateFilterTextContentComponent, AbstractImportNetComponent, AbstractInternalLinkComponent, AbstractLanguageSelectorComponent, AbstractLdapGroupRoleAssignmentComponent, AbstractLegalNoticeComponent, AbstractLoadFilterComponent, AbstractLoadingModeComponent, AbstractLoggerService, AbstractLoginFormComponent, AbstractLogoutShortcutComponent, AbstractMultiUserAssignComponent, AbstractMultiUserAssignItemComponent, AbstractMultiUserAssignListComponent, AbstractMultichoiceAutocompleteFieldComponentComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceListFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractNavigationDoubleDrawerComponent, AbstractNavigationDrawerComponent, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, AbstractNewCaseComponent, AbstractNumberErrorsComponent, AbstractNumberFieldComponent, AbstractOptionSelectorComponent, AbstractPanelComponent, AbstractPanelItemComponent, AbstractPasswordTextFieldComponent, AbstractProfileComponent, AbstractQuickPanelComponent, AbstractRegistrationComponent, AbstractRegistrationFormComponent, AbstractRemoveNodeComponent, AbstractResourceProvider, AbstractResourceService, AbstractRichTextareaFieldComponent, AbstractRoleAssignmentComponent, AbstractSaveFilterComponent, AbstractSearchClauseComponent, AbstractSearchComponent, AbstractSearchConfigurationInputComponent, AbstractSearchModeComponent, AbstractSearchOperandInputComponent, AbstractSearchPredicateComponent, AbstractSessionIdleComponent, AbstractSideMenuContainerComponent, AbstractSimpleTextFieldComponent, AbstractSingleTaskComponent, AbstractSingleTaskViewComponent, AbstractSortModeComponent, AbstractSortableViewComponent, AbstractTabCreationDetectorComponent, AbstractTabViewComponent, AbstractTabbedCaseViewComponent, AbstractTabbedTaskViewComponent, AbstractTaskContentComponent, AbstractTaskListComponent, AbstractTaskListPaginationComponent, AbstractTaskPanelComponent, AbstractTaskRefDashboardFieldComponent, AbstractTaskRefDashboardTileComponent, AbstractTaskRefFieldComponent, AbstractTaskRefListFieldComponent, AbstractTaskViewComponent, AbstractTextErrorsComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractToolbarComponent, AbstractTreeComponent, AbstractTreeTaskContentComponent, AbstractUserAssignComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, AbstractUserCardComponent, AbstractUserDefaultFieldComponent, AbstractUserFieldComponent, AbstractUserImpersonateComponent, AbstractUserInviteComponent, AbstractUserListDefaultFieldComponent, AbstractUserListFieldComponent, AbstractViewWithHeadersComponent, AbstractWorkflowPanelComponent, AbstractWorkflowViewComponent, AccessService, ActiveGroupService, AdvancedSearchComponentInitializationService, AfterAction, AlertDialogComponent, AlertDialogModule, AllowedNetsService, AllowedNetsServiceFactory, AnonymousAuthenticationInterceptor, AnonymousService, AssignPolicy, AssignPolicyService, AssignTaskService, AuthenticationGuardService, AuthenticationInterceptor, AuthenticationMethodService, AuthenticationModule, AuthenticationService, AuthorityGuardService, AutocompleteCategory, BOOLEAN_VALUE_LABEL_ENABLED, BaseAllowedNetsService, BasicAuthenticationService, BooleanField, BooleanFieldValidation, BooleanOperator, ButtonField, ButtonFieldValidation, CASE_ID, CONFIRM_PASSWORD, CallChainService, CancelTaskService, CaseAuthor, CaseCreationDate, CaseCreationDateTime, CaseDataset, CaseHeaderService, CaseListFontColorService, CaseMetaField, CaseNetAttributeAutocompleteCategory, CaseProcess, CaseRefField, CaseResourceService, CaseRole, CaseSearch, CaseSimpleDataset, CaseStringId, CaseTask, CaseTitle, CaseTreeNode, CaseTreeService, CaseViewService, CaseVisualId, Categories, Category, CategoryFactory, CategoryResolverService, ChangedFieldsService, ClausePredicate, ComponentPrefixes, ComponentRegistryService, ConfigParams, ConfigurationInput, ConfigurationService, ConfirmDialogComponent, ConfirmDialogModule, ConsoleLogPublisher, ContainsPipe, CovalentModule, CurrencyModule, CustomDateAdapter, DATA_FIELD_PORTAL_DATA, DATE_FORMAT, DATE_FORMAT_STRING, DATE_TIME_FORMAT, DATE_TIME_FORMAT_STRING, DEFAULT, DEFAULT_LANGUAGE_CODE, Dashboard, DashboardCardTypes, DashboardMultiData, DashboardResourceService, DashboardSingleData, DataField, DataFieldsModule, DataFocusPolicy, DataFocusPolicyService, DataGroupAlignment, DatafieldMapKey, DateField, DateTimeField, DefaultSearchCategoriesModule, DelegateTaskService, DialogModule, DialogService, DynamicEnumerationField, DynamicNavigationRouteProviderService, EditableClausePredicate, EditableClausePredicateWithGenerators, EditableElementaryPredicate, EditablePredicate, EditablePredicateWithGenerator, ElementaryPredicate, EnumerationAutocompleteFilterProperty, EnumerationField, EnumerationFieldValidation, Equals, EqualsDate, ErrorSnackBarComponent, EventConstants, EventQueueService, EventService, FieldAlignment, FieldConverterService, FieldTypeResource, FileField, FileListField, FileListFieldValidation, FilePreviewType, FileUploadMIMEType, FileUploadModel, Filter, FilterExtractionService, FilterField, FilterRepository, FilterType, FilteredArray, FinishPolicy, FinishPolicyService, FinishTaskService, FrontActionModule, FrontActionRegistryService, FrontActionService, GenericSnackBarComponent, GroupGuardService, GroupNavigationComponentResolverService, GroupNavigationConstants, HeaderColumn, HeaderColumnType, HeaderMode, HeaderSearchService, HeaderType, HttpLoaderFactory, I18nField, I18nFieldValidation, ImpersonationService, ImpersonationUserListService, ImpersonationUserResourceService, ImpersonationUserSelectService, InRange, InRangeDate, IncrementingCounter, IsEmptyPipe, IsNonEmptyPipe, IsNull, LanguageIconsService, LanguageService, LdapGroupListService, LdapGroupResourceService, LessThan, LessThanDate, LessThanDateTime, LetContext, LetDirective, Like, LoadingEmitter, LoadingWithFilterEmitter, LocalStorageLogPublisher, LogEntry, LogLevel, LogPublisher, LogPublisherService, LoggerService, MENU_IDENTIFIERS, MaterialAppearance, MaterialModule, MergeOperator, MergedFilter, MockAuthenticationMethodService, MockAuthenticationService, MockEndpoint, MockProfileService, MockSignUpService, MockUserPreferenceService, MockUserResourceService, MockUserService, MoreThan, MoreThanDate, MoreThanDateTime, MultichoiceAutocompleteFilterProperty, MultichoiceField, NAE_ADMIN_IMPERSONATE_COMPONENT, NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, NAE_ASYNC_RENDERING_CONFIGURATION, NAE_AUTOSWITCH_TAB_TOKEN, NAE_BASE_FILTER, NAE_CASE_REF_CREATE_CASE, NAE_CASE_REF_SEARCH, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_MIN_PASSWORD_LENGTH, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_FILES_UPLOAD_COMPONENT, NAE_FILES_UPLOAD_DIALOG_COMPONENT, NAE_FILTERS_FILTER, NAE_FILTER_FIELD, NAE_FILTER_TEXT, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, NAE_INFORM_ABOUT_INVALID_DATA, NAE_LOAD_FILTER_COMPONENT, NAE_LOAD_FILTER_DIALOG_COMPONENT, NAE_MIN_PASSWORD_LENGTH, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE, NAE_NEW_CASE_COMPONENT, NAE_NEW_CASE_CONFIGURATION, NAE_NEW_CASE_CREATION_CONFIGURATION_DATA, NAE_NEW_CASE_DIALOG_COMPONENT, NAE_OPEN_EXISTING_TAB, NAE_OPTION_SELECTOR_COMPONENT, NAE_OPTION_SELECTOR_DIALOG_COMPONENT, NAE_PREFERRED_TASK_ENDPOINT, NAE_ROUTING_CONFIGURATION_PATH, NAE_SAVE_FILTER_COMPONENT, NAE_SAVE_FILTER_DIALOG_COMPONENT, NAE_SEARCH_CATEGORIES, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_SIDE_MENU_CONTROL, NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION, NAE_TAB_DATA, NAE_TASK_FORCE_OPEN, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, NAE_TASK_VIEW_COMPONENT, NAE_TASK_VIEW_CONFIGURATION, NAE_TREE_CASE_VIEW_CONFIGURATION, NAE_URI_NODE_CASES_PAGE_SIZE, NAE_USER_ASSIGN_COMPONENT, NAE_USER_ASSIGN_DIALOG_COMPONENT, NAE_USER_IMPERSONATE_COMPONENT, NAE_USER_IMPERSONATE_DIALOG_COMPONENT, NAE_VIEW_ID, NAE_VIEW_ID_SEGMENT, NAE_WORKFLOW_SERVICE_CONFIRM_DELETE, NAE_WORKFLOW_SERVICE_FILTER, Net, NetAttributeAutocompleteCategory, NextGroupService, NoConfigurationAutocompleteCategory, NoConfigurationCategory, NoConfigurationUserAutocompleteCategory, NotEquals, NotEqualsDate, NotEqualsDateTime, NullAuthenticationService, NullTaskOperations, NumberField, NumberFieldValidation, OLD_PASSWORD, OpenedTab, Operator, OperatorResolverService, OperatorService, OperatorTemplatePart, OperatorTemplatePartType, Operators, OrganizationListService, OverflowService, PASSWORD, PETRI_NET_ID, PUBLISHERS, PageLoadRequestContext, PaginationParams, PaginationSort, PaperViewService, PermissionService, PermissionType, PetriNetResourceService, Predicate, PredicateWithGenerator, ProcessList, ProcessService, ProfileModule, ProfileService, ProgressType, PromptDialogComponent, PromptDialogModule, PublicCaseResourceService, PublicPetriNetResourceService, PublicProcessService, PublicTaskLoadingService, PublicTaskResourceService, PublicUrlResolverService, Query, QueuedEvent, RedirectService, ResourceProvider, ResultWithAfterActions, RoleAssignmentLdapGroupService, RoleAssignmentService, RoleGuardService, RoutingBuilderService, SETTINGS_TRANSITION_ID, SearchIndex, SearchIndexResolverService, SearchInputType, SearchMode, SearchService, SelectedCaseService, SessionIdleTimerService, SessionService, SideMenuControl, SideMenuRef, SideMenuService, SideMenuSize, SignUpModule, SignUpService, SimpleFilter, SingleTaskContentService, SnackBarComponent, SnackBarHorizontalPosition, SnackBarModule, SnackBarService, SnackBarVerticalPosition, SpinnerOverlayService, Subgrid, SubjectTaskOperations, Substring, SuccessSnackBarComponent, TRANSITION_ID, TabLabelStream, TabView, TabbedVirtualScrollComponent, TaskAssignee, TaskConst, TaskContentService, TaskDataService, TaskElementType, TaskEndpoint, TaskEvent, TaskEventService, TaskHandlingService, TaskHeaderService, TaskMetaField, TaskNetAttributeAutocompleteCategory, TaskProcess, TaskRefComponents, TaskRefDashboardConstants, TaskRefDashboardTileConstants, TaskRefField, TaskRequestStateService, TaskResourceService, TaskRole, TaskTask, TaskViewService, TemplateAppearance, TestCaseBaseFilterProvider, TestCaseViewAllowedNetsFactory, TestConfigurationService, TestMockDependenciesModule, TestNoAllowedNetsFactory, TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory, TestViewService, TextAreaField, TextAreaHeight, TextField, TextFieldComponent, TextFieldValidation, TextFieldView, TranslateLibModule, TreeCaseViewService, TreePetriflowIdentifiers, TreeTaskContentService, UnlimitedTaskContentService, UriContentType, UriResourceService, UriService, User, UserAutocomplete, UserComparatorService, UserField, UserFilterConstants, UserFiltersService, UserImpersonationConstants, UserInviteService, UserListField, UserListService, UserListValue, UserPreferenceService, UserResourceService, UserService, UserTransformer, UserValue, UtilityModule, ViewIdService, ViewService, WarningSnackBarComponent, WorkflowHeaderService, WorkflowMetaField, WorkflowViewService, WrappedBoolean, arrayToObservable, authenticationServiceFactory, clearTimeInformation, configureCategory, createMockCase, createMockCaseOutcome, createMockDataGroup, createMockDependencies, createMockField, createMockGetDataOutcome, createMockImmediateData, createMockNet, createMockPage, createMockPetriNetOutcome, createMockSetDataOutcome, createMockTask, createMockTaskOutcome, createSortParam, createTaskEventNotification, decodeBase64, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, destroySubscription, encodeBase64, extractFieldValueFromData, extractFilterFieldFromData, extractFilterFromData, extractFilterFromFilterField, extractIconAndTitle, extractRoles, extractSearchTypeFromData, getField, getFieldFromDataGroups, getFieldIndex, getFieldIndexFromDataGroups, getImmediateData, getNetAndCreateCase, groupNavigationViewIdSegmentFactory, hasContent, loadAllPages, mockUserAutocompleteValue, navigationItemCaseViewDefaultHeadersFactory, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, navigationItemTaskFilterFactory, navigationItemTaskViewDefaultHeadersFactory, ofVoid, processMessageResponse, publicBaseFilterFactory, publicFactoryResolver, redirectAction, refreshTree, reloadTaskAction, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, toMoment, validateTaskAction };
34882
35040
  //# sourceMappingURL=netgrif-components-core.mjs.map