@netgrif/components-core 6.2.3 → 6.3.0-beta.2

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 (123) hide show
  1. package/esm2020/assets/i18n/de.json +17 -0
  2. package/esm2020/assets/i18n/en.json +17 -0
  3. package/esm2020/assets/i18n/sk.json +17 -0
  4. package/esm2020/lib/authentication/models/user.transformer.mjs +2 -2
  5. package/esm2020/lib/authentication/public-api.mjs +3 -1
  6. package/esm2020/lib/authorization/permission/permission.service.mjs +2 -2
  7. package/esm2020/lib/dashboard/cards/model/custom-dashboard-model/custom-card.mjs +1 -1
  8. package/esm2020/lib/dashboard/cards/model/custom-dashboard-model/custom-iframe-card.mjs +2 -0
  9. package/esm2020/lib/dashboard/cards/model/dashboard-card-types.mjs +2 -1
  10. package/esm2020/lib/dashboard/cards/model/dashboard-card.mjs +1 -1
  11. package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.mjs +60 -0
  12. package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.mjs +53 -0
  13. package/esm2020/lib/data-fields/filter-field/abstract-filter-field.component.mjs +4 -1
  14. package/esm2020/lib/data-fields/public-api.mjs +17 -1
  15. package/esm2020/lib/data-fields/task-ref-field/abstract-task-ref-field.component.mjs +133 -0
  16. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-components.mjs +8 -0
  17. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-dashboard-constants.mjs +10 -0
  18. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-dashboard-tile-constants.mjs +13 -0
  19. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-dashboard-tile.mjs +2 -0
  20. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-field.mjs +19 -1
  21. package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-tile/abstract-task-ref-dashboard-tile.component.mjs +140 -0
  22. package/esm2020/lib/data-fields/text-field/abstract-dashboard-text-field.component.mjs +42 -0
  23. package/esm2020/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.mjs +33 -0
  24. package/esm2020/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.mjs +27 -0
  25. package/esm2020/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.mjs +33 -0
  26. package/esm2020/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.mjs +31 -0
  27. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.mjs +27 -0
  28. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.mjs +35 -0
  29. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-view-constants.mjs +10 -0
  30. package/esm2020/lib/data-fields/text-field/models/text-field.mjs +23 -1
  31. package/esm2020/lib/filter/filter.repository.mjs +7 -1
  32. package/esm2020/lib/filter/user-filters.service.mjs +3 -1
  33. package/esm2020/lib/impersonation/models/user-impersonate-config-metadata.mjs +2 -0
  34. package/esm2020/lib/impersonation/models/user-impersonation-constants.mjs +11 -0
  35. package/esm2020/lib/impersonation/public-api.mjs +9 -0
  36. package/esm2020/lib/impersonation/services/impersonation-user-list.service.mjs +19 -0
  37. package/esm2020/lib/impersonation/services/impersonation-user-resource.service.mjs +25 -0
  38. package/esm2020/lib/impersonation/services/impersonation-user-select.service.mjs +85 -0
  39. package/esm2020/lib/impersonation/services/impersonation.service.mjs +90 -0
  40. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +19 -6
  41. package/esm2020/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.mjs +2 -2
  42. package/esm2020/lib/navigation/quick-panel/components/abstract-quick-panel.component.mjs +1 -1
  43. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +25 -8
  44. package/esm2020/lib/resources/engine-endpoint/public/public-task-resource.service.mjs +3 -3
  45. package/esm2020/lib/resources/interface/data-groups.mjs +1 -1
  46. package/esm2020/lib/resources/interface/user-resource.mjs +1 -1
  47. package/esm2020/lib/side-menu/content-components/injection-tokens.mjs +3 -1
  48. package/esm2020/lib/side-menu/content-components/public-api.mjs +3 -1
  49. package/esm2020/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.mjs +37 -0
  50. package/esm2020/lib/side-menu/content-components/user-impersonate/model/user-impersonate-injection-data.mjs +2 -0
  51. package/esm2020/lib/side-menu/models/side-menu-size.mjs +2 -1
  52. package/esm2020/lib/task-content/model/preprocessed-data-groups.mjs +2 -0
  53. package/esm2020/lib/task-content/task-content/abstract-task-content.component.mjs +149 -4
  54. package/esm2020/lib/user/models/user.mjs +15 -2
  55. package/esm2020/lib/user/services/user-comparator.service.mjs +4 -3
  56. package/esm2020/lib/user/services/user.service.mjs +17 -12
  57. package/esm2020/lib/utility/public-api.mjs +2 -1
  58. package/esm2020/lib/utility/tests/mocks/mock-user.service.mjs +38 -0
  59. package/esm2020/lib/utility/tests/test-config.mjs +6 -1
  60. package/esm2020/lib/view/public-api.mjs +2 -1
  61. package/esm2020/lib/view/task-view/models/injection-token-task-force-open.mjs +3 -0
  62. package/esm2020/public-api.mjs +2 -1
  63. package/fesm2015/netgrif-components-core.mjs +4363 -3202
  64. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  65. package/fesm2020/netgrif-components-core.mjs +4353 -3206
  66. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  67. package/lib/authentication/public-api.d.ts +2 -0
  68. package/lib/dashboard/cards/model/custom-dashboard-model/custom-card.d.ts +8 -7
  69. package/lib/dashboard/cards/model/custom-dashboard-model/custom-iframe-card.d.ts +4 -0
  70. package/lib/dashboard/cards/model/dashboard-card-types.d.ts +1 -0
  71. package/lib/dashboard/cards/model/dashboard-card.d.ts +1 -1
  72. package/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.d.ts +17 -0
  73. package/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.d.ts +17 -0
  74. package/lib/data-fields/filter-field/abstract-filter-field.component.d.ts +1 -0
  75. package/lib/data-fields/public-api.d.ts +16 -0
  76. package/lib/data-fields/task-ref-field/abstract-task-ref-field.component.d.ts +20 -0
  77. package/lib/data-fields/task-ref-field/model/task-ref-components.d.ts +6 -0
  78. package/lib/data-fields/task-ref-field/model/task-ref-dashboard-constants.d.ts +8 -0
  79. package/lib/data-fields/task-ref-field/model/task-ref-dashboard-tile-constants.d.ts +11 -0
  80. package/lib/data-fields/task-ref-field/model/task-ref-dashboard-tile.d.ts +9 -0
  81. package/lib/data-fields/task-ref-field/model/task-ref-field.d.ts +10 -0
  82. package/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-tile/abstract-task-ref-dashboard-tile.component.d.ts +36 -0
  83. package/lib/data-fields/text-field/abstract-dashboard-text-field.component.d.ts +23 -0
  84. package/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.d.ts +10 -0
  85. package/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.d.ts +11 -0
  86. package/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.d.ts +10 -0
  87. package/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.d.ts +10 -0
  88. package/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.d.ts +10 -0
  89. package/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.d.ts +14 -0
  90. package/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-view-constants.d.ts +8 -0
  91. package/lib/data-fields/text-field/models/text-field.d.ts +20 -0
  92. package/lib/filter/filter.repository.d.ts +4 -0
  93. package/lib/impersonation/models/user-impersonate-config-metadata.d.ts +3 -0
  94. package/lib/impersonation/models/user-impersonation-constants.d.ts +9 -0
  95. package/lib/impersonation/public-api.d.ts +6 -0
  96. package/lib/impersonation/services/impersonation-user-list.service.d.ts +12 -0
  97. package/lib/impersonation/services/impersonation-user-resource.service.d.ts +17 -0
  98. package/lib/impersonation/services/impersonation-user-select.service.d.ts +25 -0
  99. package/lib/impersonation/services/impersonation.service.d.ts +37 -0
  100. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +9 -2
  101. package/lib/navigation/quick-panel/components/abstract-quick-panel.component.d.ts +1 -1
  102. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +8 -3
  103. package/lib/resources/engine-endpoint/public/public-task-resource.service.d.ts +2 -1
  104. package/lib/resources/interface/data-groups.d.ts +10 -5
  105. package/lib/resources/interface/user-resource.d.ts +1 -0
  106. package/lib/side-menu/content-components/injection-tokens.d.ts +2 -0
  107. package/lib/side-menu/content-components/public-api.d.ts +2 -0
  108. package/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.d.ts +14 -0
  109. package/lib/side-menu/content-components/user-impersonate/model/user-impersonate-injection-data.d.ts +8 -0
  110. package/lib/side-menu/models/side-menu-size.d.ts +2 -1
  111. package/lib/task-content/model/preprocessed-data-groups.d.ts +5 -0
  112. package/lib/task-content/task-content/abstract-task-content.component.d.ts +42 -1
  113. package/lib/user/models/user.d.ts +10 -1
  114. package/lib/user/services/user-comparator.service.d.ts +1 -1
  115. package/lib/utility/public-api.d.ts +1 -0
  116. package/lib/utility/tests/mocks/mock-user.service.d.ts +16 -0
  117. package/lib/view/public-api.d.ts +1 -0
  118. package/lib/view/task-view/models/injection-token-task-force-open.d.ts +2 -0
  119. package/package.json +1 -1
  120. package/public-api.d.ts +1 -0
  121. package/src/assets/i18n/de.json +17 -0
  122. package/src/assets/i18n/en.json +17 -0
  123. package/src/assets/i18n/sk.json +17 -0
@@ -28,6 +28,7 @@ import { PermissionService } from '../../authorization/permission/permission.ser
28
28
  import { ChangedFieldsService } from '../../changed-fields/services/changed-fields.service';
29
29
  import { TaskPanelContext } from './models/task-panel-context';
30
30
  import { OverflowService } from '../../header/services/overflow.service';
31
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
31
32
  import { FinishPolicyService } from '../../task/services/finish-policy.service';
32
33
  import * as i0 from "@angular/core";
33
34
  export declare abstract class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataComponent implements OnInit, AfterViewInit, OnDestroy {
@@ -51,12 +52,14 @@ export declare abstract class AbstractTaskPanelComponent extends AbstractPanelWi
51
52
  protected _currencyPipe: CurrencyPipe;
52
53
  protected _changedFieldsService: ChangedFieldsService;
53
54
  protected _permissionService: PermissionService;
55
+ protected _taskForceOpen: boolean;
54
56
  /**
55
57
  * @ignore
56
58
  * Set by an @Input() on a setter function, that also resolves featured fields.
57
59
  */
58
60
  protected _taskPanelData: TaskPanelData;
59
61
  protected _forceLoadDataOnOpen: boolean;
62
+ taskListVirtualScroll: CdkVirtualScrollViewport;
60
63
  panelContentComponent: Type<any>;
61
64
  selectedHeaders$: Observable<Array<HeaderColumn>>;
62
65
  first: boolean;
@@ -81,7 +84,7 @@ export declare abstract class AbstractTaskPanelComponent extends AbstractPanelWi
81
84
  protected _subTaskData: Subscription;
82
85
  protected _subPanelUpdate: Subscription;
83
86
  protected _taskDisableButtonFunctions: DisableButtonFuntions;
84
- protected constructor(_taskContentService: TaskContentService, _log: LoggerService, _taskViewService: TaskViewService, _paperView: PaperViewService, _taskEventService: TaskEventService, _assignTaskService: AssignTaskService, _delegateTaskService: DelegateTaskService, _cancelTaskService: CancelTaskService, _finishTaskService: FinishTaskService, _taskState: TaskRequestStateService, _taskDataService: TaskDataService, _assignPolicyService: AssignPolicyService, _finishPolicyService: FinishPolicyService, _callChain: CallChainService, _taskOperations: SubjectTaskOperations, _disableFunctions: DisableButtonFuntions, _translate: TranslateService, _currencyPipe: CurrencyPipe, _changedFieldsService: ChangedFieldsService, _permissionService: PermissionService, overflowService: OverflowService);
87
+ protected constructor(_taskContentService: TaskContentService, _log: LoggerService, _taskViewService: TaskViewService, _paperView: PaperViewService, _taskEventService: TaskEventService, _assignTaskService: AssignTaskService, _delegateTaskService: DelegateTaskService, _cancelTaskService: CancelTaskService, _finishTaskService: FinishTaskService, _taskState: TaskRequestStateService, _taskDataService: TaskDataService, _assignPolicyService: AssignPolicyService, _finishPolicyService: FinishPolicyService, _callChain: CallChainService, _taskOperations: SubjectTaskOperations, _disableFunctions: DisableButtonFuntions, _translate: TranslateService, _currencyPipe: CurrencyPipe, _changedFieldsService: ChangedFieldsService, _permissionService: PermissionService, overflowService: OverflowService, _taskForceOpen: boolean);
85
88
  ngOnInit(): void;
86
89
  ngAfterViewInit(): void;
87
90
  protected abstract createContentPortal(): void;
@@ -112,6 +115,8 @@ export declare abstract class AbstractTaskPanelComponent extends AbstractPanelWi
112
115
  protected getFeaturedMetaValue(selectedHeader: HeaderColumn): FeaturedValue;
113
116
  protected getFeaturedImmediateValue(selectedHeader: HeaderColumn): FeaturedValue;
114
117
  ngOnDestroy(): void;
115
- static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTaskPanelComponent, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null, null, null, null, { optional: true; }]>;
116
- static ɵcmp: i0.ɵɵComponentDeclaration<AbstractTaskPanelComponent, "ncc-abstract-legal-notice", never, { "panelContentComponent": "panelContentComponent"; "selectedHeaders$": "selectedHeaders$"; "first": "first"; "last": "last"; "responsiveBody": "responsiveBody"; "preventCollapse": "preventCollapse"; "hidePanelHeader": "hidePanelHeader"; "actionButtonTemplates": "actionButtonTemplates"; "actionRowJustifyContent": "actionRowJustifyContent"; "forceLoadDataOnOpen": "forceLoadDataOnOpen"; "textEllipsis": "textEllipsis"; "taskPanelData": "taskPanelData"; }, { "taskEvent": "taskEvent"; "panelRefOutput": "panelRefOutput"; }, never, never>;
118
+ isForceOpen(): boolean;
119
+ getContentMinHeight(): string;
120
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTaskPanelComponent, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null, null, null, null, { optional: true; }, { optional: true; }]>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractTaskPanelComponent, "ncc-abstract-legal-notice", never, { "taskListVirtualScroll": "taskListVirtualScroll"; "panelContentComponent": "panelContentComponent"; "selectedHeaders$": "selectedHeaders$"; "first": "first"; "last": "last"; "responsiveBody": "responsiveBody"; "preventCollapse": "preventCollapse"; "hidePanelHeader": "hidePanelHeader"; "actionButtonTemplates": "actionButtonTemplates"; "actionRowJustifyContent": "actionRowJustifyContent"; "forceLoadDataOnOpen": "forceLoadDataOnOpen"; "textEllipsis": "textEllipsis"; "taskPanelData": "taskPanelData"; }, { "taskEvent": "taskEvent"; "panelRefOutput": "panelRefOutput"; }, never, never>;
117
122
  }
@@ -9,6 +9,7 @@ import { Page } from '../../interface/page';
9
9
  import { TaskSetDataRequestBody } from '../../interface/task-set-data-request-body';
10
10
  import { TaskReference } from '../../interface/task-reference';
11
11
  import { Task } from '../../interface/task';
12
+ import { HttpParams } from '@angular/common/http';
12
13
  import { EventOutcomeMessageResource, MessageResource } from '../../interface/message-resource';
13
14
  import * as i0 from "@angular/core";
14
15
  export declare class PublicTaskResourceService extends TaskResourceService {
@@ -75,7 +76,7 @@ export declare class PublicTaskResourceService extends TaskResourceService {
75
76
  * Delete file from the task
76
77
  * DELETE
77
78
  */
78
- deleteFile(taskId: string, fieldId: string, name?: string): Observable<MessageResource>;
79
+ deleteFile(taskId: string, fieldId: string, name?: string, param?: HttpParams): Observable<MessageResource>;
79
80
  /**
80
81
  * Download task file preview for field value
81
82
  * GET
@@ -3,27 +3,32 @@ import { DataGroupLayout } from './data-group-layout';
3
3
  /**
4
4
  * Object from Backend
5
5
  */
6
- export interface DataGroup {
6
+ export interface DataGroup extends ParentDataGroupInformation {
7
7
  /**
8
8
  * Array [DataField]{@link DataField}
9
9
  */
10
10
  fields: Array<DataField<any>>;
11
11
  /**
12
- * Name datagroup
12
+ * Name of the data group
13
13
  */
14
- title: string;
14
+ title?: string;
15
15
  /**
16
- * Desing alignment
16
+ * Design alignment
17
17
  * ***Example:*** start
18
18
  */
19
19
  alignment: DataGroupAlignment;
20
20
  /**
21
- * Desing stretch
21
+ * Design stretch
22
22
  *
23
23
  * ***Example:*** true
24
24
  */
25
25
  stretch: boolean;
26
26
  layout?: DataGroupLayout;
27
+ }
28
+ /**
29
+ * An object containing the information about the parent of a data group
30
+ */
31
+ export interface ParentDataGroupInformation {
27
32
  /**
28
33
  * String id of parent task, only set if dataGroup is loaded by {@link TaskRefField}
29
34
  */
@@ -12,5 +12,6 @@ export interface UserResource extends UserResourceSmall {
12
12
  authorities: Array<Authority>;
13
13
  nextGroups: Array<string>;
14
14
  processRoles: Array<ProcessRole>;
15
+ impersonated?: UserResource;
15
16
  _links?: any;
16
17
  }
@@ -6,3 +6,5 @@ export declare const NAE_NEW_CASE_COMPONENT: InjectionToken<ComponentType<unknow
6
6
  export declare const NAE_OPTION_SELECTOR_COMPONENT: InjectionToken<ComponentType<unknown>>;
7
7
  export declare const NAE_SAVE_FILTER_COMPONENT: InjectionToken<ComponentType<unknown>>;
8
8
  export declare const NAE_LOAD_FILTER_COMPONENT: InjectionToken<ComponentType<unknown>>;
9
+ export declare const NAE_USER_IMPERSONATE_COMPONENT: InjectionToken<ComponentType<unknown>>;
10
+ export declare const NAE_ADMIN_IMPERSONATE_COMPONENT: InjectionToken<ComponentType<unknown>>;
@@ -8,6 +8,7 @@ export * from './filter-selector/filter-selector-list-item/abstract-filter-selec
8
8
  export * from './option-selector/abstract-option-selector.component';
9
9
  export * from './save-filter/abstract-save-filter.component';
10
10
  export * from './load-filter/abstract-load-filter.component';
11
+ export * from './user-impersonate/abstract-user-impersonate.component';
11
12
  export * from './filter-selector/model/filter-selector-injection-data';
12
13
  export * from './option-selector/model/option-selector-injection-data';
13
14
  export * from './user-assign/model/user-list-injected-data';
@@ -15,3 +16,4 @@ export * from './save-filter/model/save-filter-injection-data';
15
16
  export * from './load-filter/model/load-filter-injection-data';
16
17
  export * from './injection-tokens';
17
18
  export * from './new-case/model/new-case-injection-data';
19
+ export * from './user-impersonate/model/user-impersonate-injection-data';
@@ -0,0 +1,14 @@
1
+ import { SideMenuControl } from '../../models/side-menu-control';
2
+ import { CaseViewService } from '../../../view/case-view/service/case-view-service';
3
+ import { Case } from '../../../resources/interface/case';
4
+ import { AbstractCaseViewComponent } from '../../../view/case-view/abstract-case-view';
5
+ import { UserImpersonateInjectionData } from './model/user-impersonate-injection-data';
6
+ import * as i0 from "@angular/core";
7
+ export declare abstract class AbstractUserImpersonateComponent extends AbstractCaseViewComponent {
8
+ protected _sideMenuControl: SideMenuControl;
9
+ protected _injectedData: UserImpersonateInjectionData;
10
+ protected constructor(_sideMenuControl: SideMenuControl, caseViewService: CaseViewService);
11
+ handleCaseClick(clickedCase: Case): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractUserImpersonateComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractUserImpersonateComponent, "ncc-abstract-user-impersonate", never, {}, {}, never, never>;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { SideMenuInjectionData } from '../../../models/side-menu-injection-data';
2
+ import { Filter } from '../../../../filter/models/filter';
3
+ export interface UserImpersonateInjectionData extends SideMenuInjectionData {
4
+ /**
5
+ * A case filter of the filter cases
6
+ */
7
+ filter: Filter;
8
+ }
@@ -1,5 +1,6 @@
1
1
  export declare enum SideMenuSize {
2
2
  SMALL = "side-menu-width-small",
3
3
  MEDIUM = "side-menu-width-medium",
4
- LARGE = "side-menu-width-large"
4
+ LARGE = "side-menu-width-large",
5
+ XL = "side-menu-width-xl"
5
6
  }
@@ -0,0 +1,5 @@
1
+ import { DataGroup } from '../../resources/interface/data-groups';
2
+ export interface PreprocessedDataGroups {
3
+ dataGroups: Array<DataGroup>;
4
+ containsDashboardTaskRef: boolean;
5
+ }
@@ -14,9 +14,11 @@ import { FieldTypeResource } from '../model/field-type-resource';
14
14
  import { LoadingEmitter } from '../../utility/loading-emitter';
15
15
  import { BehaviorSubject, Observable, Subscription } from 'rxjs';
16
16
  import { AsyncRenderingConfiguration } from '../model/async-rendering-configuration';
17
+ import { TaskRefField } from '../../data-fields/task-ref-field/model/task-ref-field';
17
18
  import { SplitDataGroup } from '../model/split-data-group';
18
19
  import { Subgrid } from '../model/subgrid';
19
20
  import { IncrementingCounter } from '../../utility/incrementing-counter';
21
+ import { PreprocessedDataGroups } from '../model/preprocessed-data-groups';
20
22
  import * as i0 from "@angular/core";
21
23
  export declare abstract class AbstractTaskContentComponent implements OnDestroy {
22
24
  protected _fieldConverter: FieldConverterService;
@@ -121,10 +123,32 @@ export declare abstract class AbstractTaskContentComponent implements OnDestroy
121
123
  /**
122
124
  * Clones the content of the data groups to prevent unintentional memory accesses to source data.
123
125
  * Rearranges the data groups to accommodate taskrefs. Filters out hidden and forbidden fields.
126
+ * Populates dashboard task ref fields with dashboard tile data.
124
127
  * @param dataGroups
125
- * @returns the preprocesses data groups
128
+ * @returns the preprocessed data groups
126
129
  */
127
130
  protected preprocessDataGroups(dataGroups: Array<DataGroup>): Array<DataGroup>;
131
+ /**
132
+ * Clones the content of the data groups to prevent unintentional memory accesses to source data.
133
+ * Rearranges the data groups to accommodate taskrefs.
134
+ * Determines if the data groups contain a dashboard task ref field.
135
+ * @param dataGroups
136
+ * @returns the preprocessed data groups with metadata
137
+ */
138
+ protected rearrangeDataGroups(dataGroups: Array<DataGroup>): PreprocessedDataGroups;
139
+ /**
140
+ * Creates a duplicate of the provided data group array.
141
+ *
142
+ * Only the data groups are cloned, the fields are only copied as references.
143
+ * @param dataGroups the data groups that should be cloned
144
+ * @returns the duplicated data groups
145
+ */
146
+ protected cloneDataGroups(dataGroups: Array<DataGroup>): Array<DataGroup>;
147
+ /**
148
+ * Passes over all the fields in the provided data groups and if they are visible, initializes their local layout attribute.
149
+ * @param dataGroups the containers of the fields that should have their local layout initialized
150
+ */
151
+ protected initializeLocalFieldLayout(dataGroups: Array<DataGroup>): void;
128
152
  /**
129
153
  * Creates a duplicate of the provided data group array and filters away any fields and data groups that are marked as hidden.
130
154
  * Because of the duplication the filtering doesn't affect the original instances and they remain unchanged.
@@ -141,6 +165,23 @@ export declare abstract class AbstractTaskContentComponent implements OnDestroy
141
165
  * @protected
142
166
  */
143
167
  protected splitDataGroupOnTaskRef(dataGroup: DataGroup): SplitDataGroup;
168
+ /**
169
+ * Creates a new data group that contains only the passed task ref.
170
+ * The information about nesting and parent task/case are preserved from the passed original data group.
171
+ * @param originalDataGroup source of the information about parent task/case
172
+ * @param taskRef the task ref that will be added to the new data group
173
+ * @protected
174
+ */
175
+ protected createDashboardTaskRefDataGroup(originalDataGroup: DataGroup, taskRef: TaskRefField): DataGroup;
176
+ /**
177
+ * Identifies data groups that represent dashboard tiles,
178
+ * removes them from the data group array and passes them onto the task ref field instance.
179
+ * @param preprocessedDataGroups
180
+ * @param rawDataGroups
181
+ * @returns an array of data group objects that does not contain dashboard tiles referenced by the dashboard task ref
182
+ * @protected
183
+ */
184
+ protected preprocessDashboardTaskRef(preprocessedDataGroups: Array<DataGroup>, rawDataGroups: Array<DataGroup>): Array<DataGroup>;
144
185
  /**
145
186
  * Computes the layout data for a single data group with grid layout. The resulting layout is saved into the input objects.
146
187
  * @param dataGroup the data group that should be laid out into a grid
@@ -12,7 +12,8 @@ export declare class User implements IUser {
12
12
  roles: Array<ProcessRole>;
13
13
  groups?: Array<string>;
14
14
  nextGroups?: Array<string>;
15
- constructor(id: string, email: string, firstName: string, lastName: string, authorities: Array<string>, roles: Array<ProcessRole>, groups?: Array<string>, nextGroups?: Array<string>);
15
+ impersonated?: User;
16
+ constructor(id: string, email: string, firstName: string, lastName: string, authorities: Array<string>, roles: Array<ProcessRole>, groups?: Array<string>, nextGroups?: Array<string>, impersonated?: User);
16
17
  get fullName(): string;
17
18
  /**
18
19
  * Synonym for `firstName`.
@@ -26,4 +27,12 @@ export declare class User implements IUser {
26
27
  * @returns `true` if the User object represents an empty user, `false` otherwise.
27
28
  */
28
29
  isEmpty(): boolean;
30
+ /**
31
+ * @returns self if no impersonated user is present, or impersonated user otherwise
32
+ */
33
+ getSelfOrImpersonated(): User;
34
+ /**
35
+ * @returns true if user is impersonating another user
36
+ */
37
+ isImpersonating(): boolean;
29
38
  }
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class UserComparatorService {
5
5
  private _userService;
6
6
  constructor(_userService: UserService);
7
- compareUsers(user: IUser): boolean;
7
+ compareUsers(user: IUser, acceptImpersonator?: boolean): boolean;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<UserComparatorService, never>;
9
9
  static ɵprov: i0.ɵɵInjectableDeclaration<UserComparatorService>;
10
10
  }
@@ -23,6 +23,7 @@ export * from './navigation-item-task-search-categories-factory';
23
23
  export * from './tests/mocks/mock-authentication.service';
24
24
  export * from './tests/mocks/mock-user-preference.service';
25
25
  export * from './tests/mocks/mock-user-resource.service';
26
+ export * from './tests/mocks/mock-user.service';
26
27
  export * from './tests/mocks/mock-authentication-method-service';
27
28
  export * from './tests/mocks/mock-sign-up.service';
28
29
  export * from './tests/mocks/mock-user-autocomplete-value';
@@ -0,0 +1,16 @@
1
+ import { Observable, ReplaySubject } from 'rxjs';
2
+ import { User } from '../../../user/models/user';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MockUserService {
5
+ protected _userChange$: ReplaySubject<User>;
6
+ protected _user: User;
7
+ constructor();
8
+ get user$(): Observable<User>;
9
+ get user(): User;
10
+ set user(user: User);
11
+ hasRoleById(roleStringId: string): boolean;
12
+ hasRoleByName(roleName: string, netIdentifier: string): boolean;
13
+ hasAuthority(): boolean;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<MockUserService, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<MockUserService>;
16
+ }
@@ -25,6 +25,7 @@ export * from './task-view/models/injection-token-task-endpoint';
25
25
  export * from './task-view/models/task-view-configuration-injection-token';
26
26
  export * from './workflow-view/models/injection-token-workflow-service';
27
27
  export * from './tree-case-view/tree-component/model/tree-configuration-injection-token';
28
+ export * from './task-view/models/injection-token-task-force-open';
28
29
  export * from './case-view/service/case-view-service';
29
30
  export * from './task-view/service/task-view.service';
30
31
  export * from './workflow-view/workflow-view.service';
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const NAE_TASK_FORCE_OPEN: InjectionToken<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netgrif/components-core",
3
- "version": "6.2.3",
3
+ "version": "6.3.0-beta.2",
4
4
  "description": "Netgrif Application engine frontend core Angular library",
5
5
  "homepage": "https://components.netgrif.com",
6
6
  "license": "SEE LICENSE IN LICENSE",
package/public-api.d.ts CHANGED
@@ -37,3 +37,4 @@ export * from './lib/allowed-nets/public-api';
37
37
  export * from './lib/event-queue/public-api';
38
38
  export * from './lib/changed-fields/public-api';
39
39
  export * from './lib/event/public-api';
40
+ export * from './lib/impersonation/public-api';
@@ -109,6 +109,12 @@
109
109
  "option-selector": {
110
110
  "select": "Auswählen",
111
111
  "choose-one-option": "Wählen Sie eine Option aus"
112
+ },
113
+ "impersonation": {
114
+ "title": "Benutzer vertreten",
115
+ "submit": "Vertreten",
116
+ "cease": "Vertretung abbrechen",
117
+ "impersonating": "in Vertretung als"
112
118
  }
113
119
  },
114
120
  "search": {
@@ -458,5 +464,16 @@
458
464
  },
459
465
  "dynamicNavigation": {
460
466
  "couldNotResolveView": "Ein Fehler ist aufgetreten während des Ansichtauflösungsprocess. Der Ansicht kann nicht angezeigt werden"
467
+ },
468
+ "impersonation": {
469
+ "user": {
470
+ "successfullyRepresented": "Benutzer wird jetzt vertreten",
471
+ "currentlyAlreadyRepresented": "Für den Benutzer existiert bereits eine Vertretung",
472
+ "currentlyLogged": "Benutzer ist bereits angemeldet"
473
+ },
474
+ "action": {
475
+ "failed": "Aktion ist fehlgeschlagen",
476
+ "deactivated": "Vertretung wurde erfolgreich deaktiviert"
477
+ }
461
478
  }
462
479
  }
@@ -109,6 +109,12 @@
109
109
  "option-selector": {
110
110
  "select": "Select",
111
111
  "choose-one-option": "Choose one of the provided options"
112
+ },
113
+ "impersonation": {
114
+ "title": "Impersonate user",
115
+ "submit": "Impersonate",
116
+ "cease": "Cancel impersonation",
117
+ "impersonating": "impersonating"
112
118
  }
113
119
  },
114
120
  "search": {
@@ -459,5 +465,16 @@
459
465
  },
460
466
  "dynamicNavigation": {
461
467
  "couldNotResolveView": "An error has occurred during the view resolution process. The view could not be displayed"
468
+ },
469
+ "impersonation": {
470
+ "user": {
471
+ "successfullyRepresented": "User successfully represented",
472
+ "currentlyAlreadyRepresented": "User is already being represented by someone else",
473
+ "currentlyLogged": "User is currently logged in"
474
+ },
475
+ "action": {
476
+ "failed": "Action failed",
477
+ "deactivated": "Representation was successfully deactivated"
478
+ }
462
479
  }
463
480
  }
@@ -109,6 +109,12 @@
109
109
  "option-selector": {
110
110
  "select": "Zvoliť",
111
111
  "choose-one-option": "Vyberte jednu z možností"
112
+ },
113
+ "impersonation": {
114
+ "title": "Zastúpenie používateľa",
115
+ "submit": "Zastúpiť",
116
+ "cease": "Zrušiť zastúpenie",
117
+ "impersonating": "v zastúpení"
112
118
  }
113
119
  },
114
120
  "search": {
@@ -458,5 +464,16 @@
458
464
  },
459
465
  "dynamicNavigation": {
460
466
  "couldNotResolveView": "Počas načítania zobrazenia sa vyskytla chyba. Zobrazenie nie je možné zobraziť"
467
+ },
468
+ "impersonation": {
469
+ "user": {
470
+ "successfullyRepresented": "Používateľ bol úspešne zastúpený",
471
+ "currentlyAlreadyRepresented": "Používateľ je momentálne zastupovaný",
472
+ "currentlyLogged": "Používateľ je momentálne prihlásený"
473
+ },
474
+ "action": {
475
+ "failed": "Akciu sa nepodarilo vykonať",
476
+ "deactivated": "Zastupovanie bolo úspešne deaktivované"
477
+ }
461
478
  }
462
479
  }