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

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 (100) hide show
  1. package/esm2020/assets/i18n/de.json +9 -0
  2. package/esm2020/assets/i18n/en.json +9 -0
  3. package/esm2020/assets/i18n/sk.json +9 -0
  4. package/esm2020/lib/actions/front-action.module.mjs +28 -0
  5. package/esm2020/lib/actions/model/front-action-definition.mjs +2 -0
  6. package/esm2020/lib/actions/model/router-action-definitions.mjs +8 -0
  7. package/esm2020/lib/actions/model/task-action-definitions.mjs +16 -0
  8. package/esm2020/lib/actions/public-api.mjs +6 -0
  9. package/esm2020/lib/actions/services/front-action.service.mjs +27 -0
  10. package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +6 -2
  11. package/esm2020/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.mjs +2 -1
  12. package/esm2020/lib/data-fields/data-fields.module.mjs +1 -1
  13. package/esm2020/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.mjs +67 -0
  14. package/esm2020/lib/data-fields/enumeration-field/models/enumeration-field.mjs +9 -1
  15. package/esm2020/lib/data-fields/models/changed-fields.mjs +1 -1
  16. package/esm2020/lib/data-fields/multichoice-field/models/multichoice-field.mjs +9 -1
  17. package/esm2020/lib/data-fields/multichoice-field/multichoice-caseref-field/abstract-multichoice-caseref-field.component.mjs +67 -0
  18. package/esm2020/lib/data-fields/public-api.mjs +3 -1
  19. package/esm2020/lib/event/model/event-constants.mjs +5 -1
  20. package/esm2020/lib/event/services/event.service.mjs +23 -1
  21. package/esm2020/lib/filter/user-filters.service.mjs +1 -1
  22. package/esm2020/lib/header/abstract-header.component.mjs +8 -2
  23. package/esm2020/lib/header/header-modes/abstract-header-mode.component.mjs +10 -2
  24. package/esm2020/lib/navigation/model/group-navigation-constants.mjs +5 -1
  25. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +96 -37
  26. package/esm2020/lib/navigation/service/uri.service.mjs +22 -1
  27. package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +2 -2
  28. package/esm2020/lib/panel/case-panel/abstract-case-panel.component.mjs +9 -2
  29. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +5 -2
  30. package/esm2020/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.mjs +5 -3
  31. package/esm2020/lib/panel/task-panel-single/abstract-single-task.component.mjs +11 -5
  32. package/esm2020/lib/public/factories/public-search-factory.mjs +15 -4
  33. package/esm2020/lib/registry/front-action-registry.service.mjs +34 -0
  34. package/esm2020/lib/registry/public-api.mjs +2 -1
  35. package/esm2020/lib/resources/interface/event-outcome.mjs +1 -1
  36. package/esm2020/lib/search/fulltext-search-component/abstract-fulltext-search.component.mjs +14 -4
  37. package/esm2020/lib/search/search-component/abstract-search.component.mjs +5 -3
  38. package/esm2020/lib/side-menu/content-components/injection-tokens.mjs +2 -1
  39. package/esm2020/lib/side-menu/content-components/public-api.mjs +2 -1
  40. package/esm2020/lib/side-menu/content-components/task-view/model/task-view-injection-data.mjs +2 -0
  41. package/esm2020/lib/task/services/task-data.service.mjs +11 -9
  42. package/esm2020/lib/task-content/services/single-task-content.service.mjs +4 -4
  43. package/esm2020/lib/task-content/services/task-content.service.mjs +22 -22
  44. package/esm2020/lib/task-content/services/unlimited-task-content.service.mjs +4 -4
  45. package/esm2020/lib/utility/navigation-item-default-headers-factory.mjs +12 -7
  46. package/esm2020/lib/view/abstract/netgrif-paginator-intl.mjs +36 -0
  47. package/esm2020/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +8 -4
  48. package/esm2020/lib/view/public-api.mjs +2 -1
  49. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +18 -34
  50. package/esm2020/public-api.mjs +2 -1
  51. package/fesm2015/netgrif-components-core.mjs +1041 -589
  52. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  53. package/fesm2020/netgrif-components-core.mjs +1027 -583
  54. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  55. package/lib/actions/front-action.module.d.ts +9 -0
  56. package/lib/actions/model/front-action-definition.d.ts +5 -0
  57. package/lib/actions/model/router-action-definitions.d.ts +2 -0
  58. package/lib/actions/model/task-action-definitions.d.ts +3 -0
  59. package/lib/actions/public-api.d.ts +5 -0
  60. package/lib/actions/services/front-action.service.d.ts +15 -0
  61. package/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.d.ts +2 -0
  62. package/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.d.ts +16 -0
  63. package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +4 -1
  64. package/lib/data-fields/models/changed-fields.d.ts +7 -6
  65. package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +4 -0
  66. package/lib/data-fields/multichoice-field/multichoice-caseref-field/abstract-multichoice-caseref-field.component.d.ts +16 -0
  67. package/lib/data-fields/public-api.d.ts +2 -0
  68. package/lib/event/model/event-constants.d.ts +5 -1
  69. package/lib/event/services/event.service.d.ts +3 -0
  70. package/lib/header/abstract-header.component.d.ts +4 -1
  71. package/lib/header/header-modes/abstract-header-mode.component.d.ts +6 -1
  72. package/lib/navigation/model/group-navigation-constants.d.ts +5 -1
  73. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +9 -1
  74. package/lib/navigation/service/uri.service.d.ts +6 -0
  75. package/lib/panel/case-panel/abstract-case-panel.component.d.ts +5 -1
  76. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +2 -1
  77. package/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.d.ts +2 -1
  78. package/lib/panel/task-panel-single/abstract-single-task.component.d.ts +5 -3
  79. package/lib/public/factories/public-search-factory.d.ts +3 -0
  80. package/lib/registry/front-action-registry.service.d.ts +13 -0
  81. package/lib/registry/public-api.d.ts +1 -0
  82. package/lib/resources/interface/event-outcome.d.ts +5 -0
  83. package/lib/search/fulltext-search-component/abstract-fulltext-search.component.d.ts +2 -1
  84. package/lib/search/search-component/abstract-search.component.d.ts +2 -1
  85. package/lib/side-menu/content-components/injection-tokens.d.ts +1 -0
  86. package/lib/side-menu/content-components/public-api.d.ts +1 -0
  87. package/lib/side-menu/content-components/task-view/model/task-view-injection-data.d.ts +4 -0
  88. package/lib/task/services/task-data.service.d.ts +4 -2
  89. package/lib/task-content/services/single-task-content.service.d.ts +2 -2
  90. package/lib/task-content/services/task-content.service.d.ts +7 -16
  91. package/lib/task-content/services/unlimited-task-content.service.d.ts +2 -2
  92. package/lib/view/abstract/netgrif-paginator-intl.d.ts +19 -0
  93. package/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.d.ts +3 -1
  94. package/lib/view/public-api.d.ts +1 -0
  95. package/lib/view/task-view/abstract-single-task-view.component.d.ts +6 -5
  96. package/package.json +1 -1
  97. package/public-api.d.ts +1 -0
  98. package/src/assets/i18n/de.json +9 -0
  99. package/src/assets/i18n/en.json +9 -0
  100. package/src/assets/i18n/sk.json +9 -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';
@@ -1232,6 +1232,15 @@ var session$2 = {
1232
1232
  exitButton: "Logout",
1233
1233
  refreshButton: "Stay Connected"
1234
1234
  };
1235
+ var paginator$2 = {
1236
+ firstPage: "First page",
1237
+ itemsPage: "Items per page:",
1238
+ lastPage: "Last page",
1239
+ nextPage: "Next page",
1240
+ previousPage: "Previous page",
1241
+ pageOne: "Page 1 of 1",
1242
+ pageAmount: "Page {{page}} of {{amountPages}}"
1243
+ };
1235
1244
  var en = {
1236
1245
  toolbar: toolbar$2,
1237
1246
  tasks: tasks$2,
@@ -1317,7 +1326,8 @@ var en = {
1317
1326
  publicView: publicView$2,
1318
1327
  dynamicNavigation: dynamicNavigation$2,
1319
1328
  impersonation: impersonation$2,
1320
- session: session$2
1329
+ session: session$2,
1330
+ paginator: paginator$2
1321
1331
  };
1322
1332
 
1323
1333
  var toolbar$1 = {
@@ -1753,6 +1763,15 @@ var session$1 = {
1753
1763
  exitButton: "Odhlásiť sa",
1754
1764
  refreshButton: "Zostaň pripojený"
1755
1765
  };
1766
+ var paginator$1 = {
1767
+ firstPage: "Prvá strana",
1768
+ itemsPage: "Položky na stranu:",
1769
+ lastPage: "Posledná strana",
1770
+ nextPage: "Ďalšia strana",
1771
+ previousPage: "Predchádzajúca strana",
1772
+ pageOne: "Strana 1 z 1",
1773
+ pageAmount: "Strana {{page}} z {{amountPages}}"
1774
+ };
1756
1775
  var sk = {
1757
1776
  toolbar: toolbar$1,
1758
1777
  tasks: tasks$1,
@@ -1838,7 +1857,8 @@ var sk = {
1838
1857
  publicView: publicView$1,
1839
1858
  dynamicNavigation: dynamicNavigation$1,
1840
1859
  impersonation: impersonation$1,
1841
- session: session$1
1860
+ session: session$1,
1861
+ paginator: paginator$1
1842
1862
  };
1843
1863
 
1844
1864
  var toolbar = {
@@ -2274,6 +2294,15 @@ var session = {
2274
2294
  exitButton: "Abmelden",
2275
2295
  refreshButton: "Angemeldet bleiben"
2276
2296
  };
2297
+ var paginator = {
2298
+ firstPage: "Vorderseite",
2299
+ itemsPage: "Elemente pro Seite:",
2300
+ lastPage: "Letzte Seite",
2301
+ nextPage: "Nächste Seite",
2302
+ previousPage: "Vorherige Seite",
2303
+ pageOne: "Seite 1 von 1",
2304
+ pageAmount: "Seite {{page}} von {{amountPages}}"
2305
+ };
2277
2306
  var de = {
2278
2307
  toolbar: toolbar,
2279
2308
  tasks: tasks,
@@ -2359,7 +2388,8 @@ var de = {
2359
2388
  publicView: publicView,
2360
2389
  dynamicNavigation: dynamicNavigation,
2361
2390
  impersonation: impersonation,
2362
- session: session
2391
+ session: session,
2392
+ paginator: paginator
2363
2393
  };
2364
2394
 
2365
2395
  /**
@@ -5480,6 +5510,7 @@ class EnumerationField extends DataField {
5480
5510
  this._choices = _choices;
5481
5511
  this._fieldType = _fieldType;
5482
5512
  this.REQUEST_DEBOUNCE_TIME = 600;
5513
+ this._updatedChoices = new Subject();
5483
5514
  }
5484
5515
  set choices(choices) {
5485
5516
  this._choices = choices;
@@ -5499,6 +5530,12 @@ class EnumerationField extends DataField {
5499
5530
  getTypedComponentType() {
5500
5531
  return ComponentPrefixes.ENUMERATION + this.getComponentType();
5501
5532
  }
5533
+ get updatedChoices() {
5534
+ return this._updatedChoices.asObservable();
5535
+ }
5536
+ updateChoice() {
5537
+ this._updatedChoices.next();
5538
+ }
5502
5539
  resolveFormControlValidators() {
5503
5540
  const result = [];
5504
5541
  if (this.behavior.required) {
@@ -5666,6 +5703,384 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5666
5703
  args: ['oneStep']
5667
5704
  }] } });
5668
5705
 
5706
+ /**
5707
+ * Provides the base filter of a {@link SearchService}
5708
+ */
5709
+ const NAE_BASE_FILTER = new InjectionToken('NaeBaseFilter');
5710
+
5711
+ /**
5712
+ * Abstraction of backend search requests that defines a limited set of operations on them.
5713
+ */
5714
+ class Filter {
5715
+ /**
5716
+ * If no name is provided the filter will be identified by it's ID when necessary.
5717
+ * @param _id identifier of the filter
5718
+ * @param _type type of resources that the filter can query
5719
+ * @param _title human readable filter name
5720
+ */
5721
+ constructor(_id, _type, _title = '') {
5722
+ this._id = _id;
5723
+ this._type = _type;
5724
+ this._title = _title;
5725
+ }
5726
+ /**
5727
+ * Unique filter identifier
5728
+ */
5729
+ get id() {
5730
+ return this._id;
5731
+ }
5732
+ set id(id) {
5733
+ this._id = id;
5734
+ }
5735
+ /**
5736
+ * Determines the type of resource this Filter can filter.
5737
+ */
5738
+ get type() {
5739
+ return this._type;
5740
+ }
5741
+ /**
5742
+ * Human readable filter title.
5743
+ *
5744
+ * Defaults to empty string.
5745
+ */
5746
+ get title() {
5747
+ return this._title;
5748
+ }
5749
+ /**
5750
+ * Returns the necessary request params for the filter. Default implementation returns an empty object.
5751
+ * The params are added on top of the request when sending it to the backend by the respective service methods.
5752
+ * @returns an empty object `{}`
5753
+ */
5754
+ getRequestParams() {
5755
+ return {};
5756
+ }
5757
+ /**
5758
+ * Creates a deep copy of a simple object.
5759
+ * @param obj object that should be copied
5760
+ * @returns a deep copy of the argument
5761
+ */
5762
+ deepCopy(obj) {
5763
+ return JSON.parse(JSON.stringify(obj));
5764
+ }
5765
+ }
5766
+
5767
+ /**
5768
+ * Determines whether the combination of Filters is an union (AND) or an intersection (OR).
5769
+ *
5770
+ * See {@link MergedFilter} for more information.
5771
+ */
5772
+ var MergeOperator;
5773
+ (function (MergeOperator) {
5774
+ MergeOperator["AND"] = "AND";
5775
+ MergeOperator["OR"] = "OR";
5776
+ })(MergeOperator || (MergeOperator = {}));
5777
+
5778
+ /**
5779
+ * Determines the type of resource the Filter can search for.
5780
+ *
5781
+ * See {@link Filter} for more information.
5782
+ */
5783
+ var FilterType;
5784
+ (function (FilterType) {
5785
+ FilterType["TASK"] = "Task";
5786
+ FilterType["CASE"] = "Case";
5787
+ })(FilterType || (FilterType = {}));
5788
+
5789
+ /**
5790
+ * Represents an union or an intersection of {@link SimpleFilter}s and allows limited manipulation with it.
5791
+ */
5792
+ class MergedFilter extends Filter {
5793
+ /**
5794
+ * @param id identifier of the filter
5795
+ * @param type type of resources that the filter can query
5796
+ * @param filterBodies `Array` of search requests matching this filter's type
5797
+ * @param _operator boolean operator that is used to combine the filters
5798
+ * @param title human readable filter name
5799
+ */
5800
+ constructor(id, type, filterBodies, _operator, title) {
5801
+ super(id, type, title);
5802
+ this._operator = _operator;
5803
+ this._filters = [];
5804
+ filterBodies.forEach(body => {
5805
+ this._filters.push(this.deepCopy(body));
5806
+ });
5807
+ }
5808
+ /**
5809
+ * Creates a filter with the provided body and the provided type
5810
+ * @param filterBody the body of the new filter
5811
+ * @param operator the merge operator that is used to combine the filters
5812
+ * @param type the type of the new filter. Type must match the type of the body.
5813
+ * @returns a filter with the given body, operator and type. `id` of the new filter is set to an empty string.
5814
+ */
5815
+ static fromQuery(filterBody, operator, type) {
5816
+ return new MergedFilter('', type, filterBody, operator);
5817
+ }
5818
+ /**
5819
+ * Creates a case filter with the provided body
5820
+ * @param filterBody the body of the new filter
5821
+ * @param operator the merge operator that is used to combine the filters
5822
+ * @returns a case filter with the given body and operator. `id` of the new filter is set to an empty string.
5823
+ */
5824
+ static fromCaseQuery(filterBody, operator) {
5825
+ return MergedFilter.fromQuery(filterBody, operator, FilterType.CASE);
5826
+ }
5827
+ /**
5828
+ * Creates a task filter with the provided body
5829
+ * @param filterBody the body of the new filter
5830
+ * @param operator the merge operator that is used to combine the filters
5831
+ * @returns a task filter with the given body and operator. `id` of the new filter is set to an empty string.
5832
+ */
5833
+ static fromTaskQuery(filterBody, operator) {
5834
+ return MergedFilter.fromQuery(filterBody, operator, FilterType.TASK);
5835
+ }
5836
+ set operator(operator) {
5837
+ this._operator = operator;
5838
+ }
5839
+ get operator() {
5840
+ return this._operator;
5841
+ }
5842
+ /**
5843
+ * See [Filter.clone()]{@link Filter#clone}
5844
+ */
5845
+ clone() {
5846
+ return new MergedFilter(this.id, this.type, this._filters, this._operator, this.title);
5847
+ }
5848
+ /**
5849
+ * Filters that are merged must share the same type and the same merge operator.
5850
+ *
5851
+ * See [Filter.merge()]{@link Filter#merge} for information about parameters.
5852
+ */
5853
+ merge(filter, operator) {
5854
+ if (filter.type !== this.type) {
5855
+ throw new Error('Can\'t merge filters with different types');
5856
+ }
5857
+ if (this._operator !== operator || (filter instanceof MergedFilter && filter._operator !== this._operator)) {
5858
+ throw new Error('Can\'t merge filters with different merge operators');
5859
+ }
5860
+ const id = `${this.id}${operator === MergeOperator.AND ? '&' : '|'}${filter.id}`;
5861
+ const combinedFilters = [];
5862
+ combinedFilters.push(...this._filters);
5863
+ const otherFilters = filter.getRequestBody();
5864
+ if (Array.isArray(otherFilters)) {
5865
+ combinedFilters.push(...otherFilters);
5866
+ }
5867
+ else {
5868
+ combinedFilters.push(otherFilters);
5869
+ }
5870
+ return new MergedFilter(id, this.type, combinedFilters, this._operator);
5871
+ }
5872
+ /**
5873
+ * See [Filter.getRequestBody()]{@link Filter#getRequestBody}
5874
+ */
5875
+ getRequestBody() {
5876
+ return this.deepCopy(this._filters);
5877
+ }
5878
+ /**
5879
+ * See [Filter.bodyContainsQuery()]{@link Filter#bodyContainsQuery}
5880
+ */
5881
+ bodyContainsQuery() {
5882
+ return this._filters.some(f => f.query !== undefined && f.query !== null);
5883
+ }
5884
+ /**
5885
+ * Returns the necessary request params for the filter.
5886
+ * @returns params with `operation` set to either `AND` or `OR` based on this object's `_operator` property.
5887
+ *
5888
+ * See {@link MergedFilterParams} for more information.
5889
+ */
5890
+ getRequestParams() {
5891
+ return {
5892
+ operation: this._operator
5893
+ };
5894
+ }
5895
+ }
5896
+
5897
+ /**
5898
+ * Holds backend search request data and allows limited manipulation with it.
5899
+ */
5900
+ class SimpleFilter extends Filter {
5901
+ /**
5902
+ * @param id identifier of the filter
5903
+ * @param type type of resources that the filter can query
5904
+ * @param filterBody search request matching this filter's `type`
5905
+ * @param title human readable filter name
5906
+ */
5907
+ constructor(id, type, filterBody, title) {
5908
+ super(id, type, title);
5909
+ this._filter = this.deepCopy(filterBody);
5910
+ }
5911
+ /**
5912
+ * Create an empty filter of provided type
5913
+ * @param type type of resources that the filter can query
5914
+ * @returns a filter with empty body of the provided type. `id` of the new filter is set to an empty string.
5915
+ */
5916
+ static empty(type) {
5917
+ return new SimpleFilter('', type, {});
5918
+ }
5919
+ /**
5920
+ * Equivalent to calling `SimpleFilter.empty(FilterType.CASE)`.
5921
+ * @returns a filter with empty body that can be used to search cases
5922
+ */
5923
+ static emptyCaseFilter() {
5924
+ return SimpleFilter.empty(FilterType.CASE);
5925
+ }
5926
+ /**
5927
+ * Equivalent to calling `SimpleFilter.empty(FilterType.TASK)`.
5928
+ * @returns a filter with empty body that can be used to search tasks
5929
+ */
5930
+ static emptyTaskFilter() {
5931
+ return SimpleFilter.empty(FilterType.TASK);
5932
+ }
5933
+ /**
5934
+ * Creates a filter with the provided body and the provided type
5935
+ * @param filterBody the body of the new filter
5936
+ * @param type the type of the new filter. Type must match the type of the body.
5937
+ * @returns a filter with the given body and type. `id` of the new filter is set to an empty string.
5938
+ */
5939
+ static fromQuery(filterBody, type) {
5940
+ return new SimpleFilter('', type, filterBody);
5941
+ }
5942
+ /**
5943
+ * Creates a case filter with the provided body
5944
+ * @param filterBody the body of the new filter
5945
+ * @returns a case filter with the given body. `id` of the new filter is set to an empty string.
5946
+ */
5947
+ static fromCaseQuery(filterBody) {
5948
+ return SimpleFilter.fromQuery(filterBody, FilterType.CASE);
5949
+ }
5950
+ /**
5951
+ * Creates a task filter with the provided body
5952
+ * @param filterBody the body of the new filter
5953
+ * @returns a task filter with the given body. `id` of the new filter is set to an empty string.
5954
+ */
5955
+ static fromTaskQuery(filterBody) {
5956
+ return SimpleFilter.fromQuery(filterBody, FilterType.TASK);
5957
+ }
5958
+ /**
5959
+ * See [Filter.clone()]{@link Filter#clone}
5960
+ */
5961
+ clone() {
5962
+ return new SimpleFilter(this.id, this.type, this._filter, this.title);
5963
+ }
5964
+ /**
5965
+ * See [Filter.merge()]{@link Filter#merge}
5966
+ */
5967
+ merge(filter, operator) {
5968
+ const temp = new MergedFilter(this.id, this.type, [this._filter], operator, this.title);
5969
+ return temp.merge(filter, operator);
5970
+ }
5971
+ /**
5972
+ * See [Filter.bodyContainsQuery()]{@link Filter#bodyContainsQuery}
5973
+ */
5974
+ bodyContainsQuery() {
5975
+ return this._filter.query !== undefined && this._filter.query !== null;
5976
+ }
5977
+ /**
5978
+ * See [Filter.getRequestBody()]{@link Filter#getRequestBody}
5979
+ */
5980
+ getRequestBody() {
5981
+ return this.deepCopy(this._filter);
5982
+ }
5983
+ }
5984
+
5985
+ const NAE_VIEW_ID = new InjectionToken('NaeViewId');
5986
+ const NAE_VIEW_ID_SEGMENT = new InjectionToken('NaeViewIdSegment');
5987
+
5988
+ class ViewIdService {
5989
+ constructor(parentInjector, idSegment) {
5990
+ this._viewId = '';
5991
+ if (parentInjector !== null) {
5992
+ const parentIdService = parentInjector.get(ViewIdService, null);
5993
+ if (parentIdService !== null) {
5994
+ this._viewId = parentIdService.viewId + ViewIdService.VIEW_ID_SEGMENT_SEPARATOR;
5995
+ }
5996
+ }
5997
+ this._viewId += idSegment;
5998
+ }
5999
+ get viewId() {
6000
+ return this._viewId;
6001
+ }
6002
+ }
6003
+ ViewIdService.VIEW_ID_SEGMENT_SEPARATOR = '-';
6004
+ ViewIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewIdService, deps: [{ token: i0.Injector, optional: true, skipSelf: true }, { token: NAE_VIEW_ID_SEGMENT }], target: i0.ɵɵFactoryTarget.Injectable });
6005
+ ViewIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewIdService });
6006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewIdService, decorators: [{
6007
+ type: Injectable
6008
+ }], ctorParameters: function () {
6009
+ return [{ type: i0.Injector, decorators: [{
6010
+ type: Optional
6011
+ }, {
6012
+ type: SkipSelf
6013
+ }] }, { type: undefined, decorators: [{
6014
+ type: Inject,
6015
+ args: [NAE_VIEW_ID_SEGMENT]
6016
+ }] }];
6017
+ } });
6018
+
6019
+ const NAE_DEFAULT_HEADERS = new InjectionToken('NaeDefaultHeaders');
6020
+
6021
+ const NAE_CASE_REF_CREATE_CASE = new InjectionToken('NaeCaseRefCreateCase');
6022
+ const NAE_CASE_REF_SEARCH = new InjectionToken('NaeCaseRefSearch');
6023
+ const NAE_CASE_REF_DATAFIELD = new InjectionToken('NaeCaseRefDatafield');
6024
+
6025
+ class AbstractEnumerationCaseRefComponent extends AbstractBaseDataFieldComponent {
6026
+ constructor(injector, caseViewType, dataFieldPortalData) {
6027
+ super(dataFieldPortalData);
6028
+ this.injector = injector;
6029
+ this.caseViewType = caseViewType;
6030
+ }
6031
+ ngAfterViewInit() {
6032
+ this.createFilter();
6033
+ this.dataField.updatedChoices.subscribe(() => {
6034
+ this.createFilter();
6035
+ });
6036
+ }
6037
+ createFilter() {
6038
+ var _a, _b, _c, _d, _e, _f;
6039
+ let portalInjector;
6040
+ const filterValue = this.dataField.choices.length > 0 ? this.dataField.choices.map(value => value.key) : '';
6041
+ portalInjector = Injector.create({
6042
+ providers: [
6043
+ {
6044
+ provide: NAE_DEFAULT_HEADERS, useValue: (_b = (_a = this.dataField.component) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.headers.split(',')
6045
+ },
6046
+ {
6047
+ provide: NAE_CASE_REF_CREATE_CASE, useValue: ((_d = (_c = this.dataField.component) === null || _c === void 0 ? void 0 : _c.properties) === null || _d === void 0 ? void 0 : _d.createCase) === 'true'
6048
+ },
6049
+ {
6050
+ provide: NAE_CASE_REF_SEARCH, useValue: ((_f = (_e = this.dataField.component) === null || _e === void 0 ? void 0 : _e.properties) === null || _f === void 0 ? void 0 : _f.search) === 'true'
6051
+ },
6052
+ {
6053
+ provide: NAE_BASE_FILTER,
6054
+ useValue: { filter: SimpleFilter.fromCaseQuery({ stringId: filterValue }) }
6055
+ },
6056
+ {
6057
+ provide: NAE_VIEW_ID_SEGMENT,
6058
+ useValue: this.dataField.parentCaseId + '_' + this.dataField.parentTaskId + '_' + this.dataField.stringId
6059
+ },
6060
+ { provide: ViewIdService, useClass: ViewIdService }
6061
+ ],
6062
+ parent: this.injector
6063
+ });
6064
+ this.componentPortal = new ComponentPortal(this.caseViewType, null, portalInjector);
6065
+ }
6066
+ }
6067
+ AbstractEnumerationCaseRefComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractEnumerationCaseRefComponent, deps: [{ token: i0.Injector }, { token: i0.Type }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
6068
+ AbstractEnumerationCaseRefComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractEnumerationCaseRefComponent, selector: "ncc-abstract-case-ref-default", usesInheritance: true, ngImport: i0, template: '', isInline: true });
6069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractEnumerationCaseRefComponent, decorators: [{
6070
+ type: Component,
6071
+ args: [{
6072
+ selector: 'ncc-abstract-case-ref-default',
6073
+ template: ''
6074
+ }]
6075
+ }], ctorParameters: function () {
6076
+ return [{ type: i0.Injector }, { type: i0.Type }, { type: undefined, decorators: [{
6077
+ type: Optional
6078
+ }, {
6079
+ type: Inject,
6080
+ args: [DATA_FIELD_PORTAL_DATA]
6081
+ }] }];
6082
+ } });
6083
+
5669
6084
  /**
5670
6085
  * @deprecated
5671
6086
  * */
@@ -5813,17 +6228,6 @@ const PREVIEW_BUTTON = 'preview_button';
5813
6228
  const FILE_FIELD_HEIGHT = 75;
5814
6229
  const FILE_FIELD_PADDING = 16;
5815
6230
 
5816
- /**
5817
- * Determines the type of resource the Filter can search for.
5818
- *
5819
- * See {@link Filter} for more information.
5820
- */
5821
- var FilterType;
5822
- (function (FilterType) {
5823
- FilterType["TASK"] = "Task";
5824
- FilterType["CASE"] = "Case";
5825
- })(FilterType || (FilterType = {}));
5826
-
5827
6231
  var TextFieldView;
5828
6232
  (function (TextFieldView) {
5829
6233
  TextFieldView["DEFAULT"] = "default";
@@ -6058,6 +6462,7 @@ class MultichoiceField extends DataField {
6058
6462
  super(stringId, title, values, behavior, placeholder, description, layout, validations, component, parentTaskId);
6059
6463
  this._choices = _choices;
6060
6464
  this._fieldType = _fieldType;
6465
+ this._updatedChoices = new Subject();
6061
6466
  }
6062
6467
  set choices(choices) {
6063
6468
  this._choices = choices;
@@ -6068,6 +6473,12 @@ class MultichoiceField extends DataField {
6068
6473
  get fieldType() {
6069
6474
  return this._fieldType;
6070
6475
  }
6476
+ get updatedChoices() {
6477
+ return this._updatedChoices.asObservable();
6478
+ }
6479
+ updateChoice() {
6480
+ this._updatedChoices.next();
6481
+ }
6071
6482
  getUpdateOnStrategy() {
6072
6483
  return UpdateStrategy.CHANGE;
6073
6484
  }
@@ -7155,6 +7566,10 @@ var EventConstants;
7155
7566
  * Changed fields parameter of {@link SetDataEventOutcome}
7156
7567
  */
7157
7568
  EventConstants["CHANGED_FIELDS"] = "changedFields";
7569
+ /**
7570
+ * Front actions parameter of {@link EventOutcome}
7571
+ */
7572
+ EventConstants["FRONT_ACTIONS"] = "frontActions";
7158
7573
  })(EventConstants || (EventConstants = {}));
7159
7574
 
7160
7575
  class EventService {
@@ -7202,6 +7617,28 @@ class EventService {
7202
7617
  });
7203
7618
  return changedFieldsMap;
7204
7619
  }
7620
+ parseFrontActionsFromOutcomeTree(outcome) {
7621
+ const frontActions = [];
7622
+ if (!!outcome.outcomes && outcome.outcomes.length > 0) {
7623
+ return this.parseFrontActionsFromOutcomeTreeRecursive(outcome.outcomes, frontActions);
7624
+ }
7625
+ else
7626
+ return frontActions;
7627
+ }
7628
+ parseFrontActionsFromOutcomeTreeRecursive(outcomes, frontActions) {
7629
+ outcomes.forEach(childOutcome => {
7630
+ if (EventConstants.FRONT_ACTIONS in childOutcome) {
7631
+ const childFrontActions = childOutcome.frontActions;
7632
+ if (!!childFrontActions) {
7633
+ frontActions.push(...childFrontActions);
7634
+ }
7635
+ }
7636
+ if (!!childOutcome.outcomes && childOutcome.outcomes.length > 0) {
7637
+ this.parseFrontActionsFromOutcomeTreeRecursive(childOutcome.outcomes, frontActions);
7638
+ }
7639
+ });
7640
+ return frontActions;
7641
+ }
7205
7642
  }
7206
7643
  EventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7207
7644
  EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EventService, providedIn: 'root' });
@@ -8146,6 +8583,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8146
8583
  }] }];
8147
8584
  } });
8148
8585
 
8586
+ class AbstractMultichoiceCaseRefComponent extends AbstractBaseDataFieldComponent {
8587
+ constructor(injector, caseViewType, dataFieldPortalData) {
8588
+ super(dataFieldPortalData);
8589
+ this.injector = injector;
8590
+ this.caseViewType = caseViewType;
8591
+ }
8592
+ ngAfterViewInit() {
8593
+ this.createFilter();
8594
+ this.dataField.updatedChoices.subscribe(() => {
8595
+ this.createFilter();
8596
+ });
8597
+ }
8598
+ createFilter() {
8599
+ var _a, _b, _c, _d, _e, _f;
8600
+ let portalInjector;
8601
+ const filterValue = this.dataField.choices.length > 0 ? this.dataField.choices.map(value => value.key) : '';
8602
+ portalInjector = Injector.create({
8603
+ providers: [
8604
+ {
8605
+ provide: NAE_DEFAULT_HEADERS, useValue: (_b = (_a = this.dataField.component) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.headers.split(',')
8606
+ },
8607
+ {
8608
+ provide: NAE_CASE_REF_CREATE_CASE, useValue: ((_d = (_c = this.dataField.component) === null || _c === void 0 ? void 0 : _c.properties) === null || _d === void 0 ? void 0 : _d.createCase) === 'true'
8609
+ },
8610
+ {
8611
+ provide: NAE_CASE_REF_SEARCH, useValue: ((_f = (_e = this.dataField.component) === null || _e === void 0 ? void 0 : _e.properties) === null || _f === void 0 ? void 0 : _f.search) === 'true'
8612
+ },
8613
+ {
8614
+ provide: NAE_BASE_FILTER,
8615
+ useValue: { filter: SimpleFilter.fromCaseQuery({ stringId: filterValue }) }
8616
+ },
8617
+ {
8618
+ provide: NAE_VIEW_ID_SEGMENT,
8619
+ useValue: this.dataField.parentCaseId + '_' + this.dataField.parentTaskId + '_' + this.dataField.stringId
8620
+ },
8621
+ { provide: ViewIdService, useClass: ViewIdService }
8622
+ ],
8623
+ parent: this.injector
8624
+ });
8625
+ this.componentPortal = new ComponentPortal(this.caseViewType, null, portalInjector);
8626
+ }
8627
+ }
8628
+ AbstractMultichoiceCaseRefComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractMultichoiceCaseRefComponent, deps: [{ token: i0.Injector }, { token: i0.Type }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
8629
+ AbstractMultichoiceCaseRefComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractMultichoiceCaseRefComponent, selector: "ncc-abstract-case-ref-default", usesInheritance: true, ngImport: i0, template: '', isInline: true });
8630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractMultichoiceCaseRefComponent, decorators: [{
8631
+ type: Component,
8632
+ args: [{
8633
+ selector: 'ncc-abstract-case-ref-default',
8634
+ template: ''
8635
+ }]
8636
+ }], ctorParameters: function () {
8637
+ return [{ type: i0.Injector }, { type: i0.Type }, { type: undefined, decorators: [{
8638
+ type: Optional
8639
+ }, {
8640
+ type: Inject,
8641
+ args: [DATA_FIELD_PORTAL_DATA]
8642
+ }] }];
8643
+ } });
8644
+
8149
8645
  class AbstractMultichoiceSelectFieldComponent extends AbstractBaseDataFieldComponent {
8150
8646
  constructor(dataFieldPortalData) {
8151
8647
  super(dataFieldPortalData);
@@ -9055,269 +9551,6 @@ var BooleanOperator;
9055
9551
  BooleanOperator["OR"] = "OR";
9056
9552
  })(BooleanOperator || (BooleanOperator = {}));
9057
9553
 
9058
- /**
9059
- * Abstraction of backend search requests that defines a limited set of operations on them.
9060
- */
9061
- class Filter {
9062
- /**
9063
- * If no name is provided the filter will be identified by it's ID when necessary.
9064
- * @param _id identifier of the filter
9065
- * @param _type type of resources that the filter can query
9066
- * @param _title human readable filter name
9067
- */
9068
- constructor(_id, _type, _title = '') {
9069
- this._id = _id;
9070
- this._type = _type;
9071
- this._title = _title;
9072
- }
9073
- /**
9074
- * Unique filter identifier
9075
- */
9076
- get id() {
9077
- return this._id;
9078
- }
9079
- set id(id) {
9080
- this._id = id;
9081
- }
9082
- /**
9083
- * Determines the type of resource this Filter can filter.
9084
- */
9085
- get type() {
9086
- return this._type;
9087
- }
9088
- /**
9089
- * Human readable filter title.
9090
- *
9091
- * Defaults to empty string.
9092
- */
9093
- get title() {
9094
- return this._title;
9095
- }
9096
- /**
9097
- * Returns the necessary request params for the filter. Default implementation returns an empty object.
9098
- * The params are added on top of the request when sending it to the backend by the respective service methods.
9099
- * @returns an empty object `{}`
9100
- */
9101
- getRequestParams() {
9102
- return {};
9103
- }
9104
- /**
9105
- * Creates a deep copy of a simple object.
9106
- * @param obj object that should be copied
9107
- * @returns a deep copy of the argument
9108
- */
9109
- deepCopy(obj) {
9110
- return JSON.parse(JSON.stringify(obj));
9111
- }
9112
- }
9113
-
9114
- /**
9115
- * Determines whether the combination of Filters is an union (AND) or an intersection (OR).
9116
- *
9117
- * See {@link MergedFilter} for more information.
9118
- */
9119
- var MergeOperator;
9120
- (function (MergeOperator) {
9121
- MergeOperator["AND"] = "AND";
9122
- MergeOperator["OR"] = "OR";
9123
- })(MergeOperator || (MergeOperator = {}));
9124
-
9125
- /**
9126
- * Represents an union or an intersection of {@link SimpleFilter}s and allows limited manipulation with it.
9127
- */
9128
- class MergedFilter extends Filter {
9129
- /**
9130
- * @param id identifier of the filter
9131
- * @param type type of resources that the filter can query
9132
- * @param filterBodies `Array` of search requests matching this filter's type
9133
- * @param _operator boolean operator that is used to combine the filters
9134
- * @param title human readable filter name
9135
- */
9136
- constructor(id, type, filterBodies, _operator, title) {
9137
- super(id, type, title);
9138
- this._operator = _operator;
9139
- this._filters = [];
9140
- filterBodies.forEach(body => {
9141
- this._filters.push(this.deepCopy(body));
9142
- });
9143
- }
9144
- /**
9145
- * Creates a filter with the provided body and the provided type
9146
- * @param filterBody the body of the new filter
9147
- * @param operator the merge operator that is used to combine the filters
9148
- * @param type the type of the new filter. Type must match the type of the body.
9149
- * @returns a filter with the given body, operator and type. `id` of the new filter is set to an empty string.
9150
- */
9151
- static fromQuery(filterBody, operator, type) {
9152
- return new MergedFilter('', type, filterBody, operator);
9153
- }
9154
- /**
9155
- * Creates a case filter with the provided body
9156
- * @param filterBody the body of the new filter
9157
- * @param operator the merge operator that is used to combine the filters
9158
- * @returns a case filter with the given body and operator. `id` of the new filter is set to an empty string.
9159
- */
9160
- static fromCaseQuery(filterBody, operator) {
9161
- return MergedFilter.fromQuery(filterBody, operator, FilterType.CASE);
9162
- }
9163
- /**
9164
- * Creates a task filter with the provided body
9165
- * @param filterBody the body of the new filter
9166
- * @param operator the merge operator that is used to combine the filters
9167
- * @returns a task filter with the given body and operator. `id` of the new filter is set to an empty string.
9168
- */
9169
- static fromTaskQuery(filterBody, operator) {
9170
- return MergedFilter.fromQuery(filterBody, operator, FilterType.TASK);
9171
- }
9172
- set operator(operator) {
9173
- this._operator = operator;
9174
- }
9175
- get operator() {
9176
- return this._operator;
9177
- }
9178
- /**
9179
- * See [Filter.clone()]{@link Filter#clone}
9180
- */
9181
- clone() {
9182
- return new MergedFilter(this.id, this.type, this._filters, this._operator, this.title);
9183
- }
9184
- /**
9185
- * Filters that are merged must share the same type and the same merge operator.
9186
- *
9187
- * See [Filter.merge()]{@link Filter#merge} for information about parameters.
9188
- */
9189
- merge(filter, operator) {
9190
- if (filter.type !== this.type) {
9191
- throw new Error('Can\'t merge filters with different types');
9192
- }
9193
- if (this._operator !== operator || (filter instanceof MergedFilter && filter._operator !== this._operator)) {
9194
- throw new Error('Can\'t merge filters with different merge operators');
9195
- }
9196
- const id = `${this.id}${operator === MergeOperator.AND ? '&' : '|'}${filter.id}`;
9197
- const combinedFilters = [];
9198
- combinedFilters.push(...this._filters);
9199
- const otherFilters = filter.getRequestBody();
9200
- if (Array.isArray(otherFilters)) {
9201
- combinedFilters.push(...otherFilters);
9202
- }
9203
- else {
9204
- combinedFilters.push(otherFilters);
9205
- }
9206
- return new MergedFilter(id, this.type, combinedFilters, this._operator);
9207
- }
9208
- /**
9209
- * See [Filter.getRequestBody()]{@link Filter#getRequestBody}
9210
- */
9211
- getRequestBody() {
9212
- return this.deepCopy(this._filters);
9213
- }
9214
- /**
9215
- * See [Filter.bodyContainsQuery()]{@link Filter#bodyContainsQuery}
9216
- */
9217
- bodyContainsQuery() {
9218
- return this._filters.some(f => f.query !== undefined && f.query !== null);
9219
- }
9220
- /**
9221
- * Returns the necessary request params for the filter.
9222
- * @returns params with `operation` set to either `AND` or `OR` based on this object's `_operator` property.
9223
- *
9224
- * See {@link MergedFilterParams} for more information.
9225
- */
9226
- getRequestParams() {
9227
- return {
9228
- operation: this._operator
9229
- };
9230
- }
9231
- }
9232
-
9233
- /**
9234
- * Holds backend search request data and allows limited manipulation with it.
9235
- */
9236
- class SimpleFilter extends Filter {
9237
- /**
9238
- * @param id identifier of the filter
9239
- * @param type type of resources that the filter can query
9240
- * @param filterBody search request matching this filter's `type`
9241
- * @param title human readable filter name
9242
- */
9243
- constructor(id, type, filterBody, title) {
9244
- super(id, type, title);
9245
- this._filter = this.deepCopy(filterBody);
9246
- }
9247
- /**
9248
- * Create an empty filter of provided type
9249
- * @param type type of resources that the filter can query
9250
- * @returns a filter with empty body of the provided type. `id` of the new filter is set to an empty string.
9251
- */
9252
- static empty(type) {
9253
- return new SimpleFilter('', type, {});
9254
- }
9255
- /**
9256
- * Equivalent to calling `SimpleFilter.empty(FilterType.CASE)`.
9257
- * @returns a filter with empty body that can be used to search cases
9258
- */
9259
- static emptyCaseFilter() {
9260
- return SimpleFilter.empty(FilterType.CASE);
9261
- }
9262
- /**
9263
- * Equivalent to calling `SimpleFilter.empty(FilterType.TASK)`.
9264
- * @returns a filter with empty body that can be used to search tasks
9265
- */
9266
- static emptyTaskFilter() {
9267
- return SimpleFilter.empty(FilterType.TASK);
9268
- }
9269
- /**
9270
- * Creates a filter with the provided body and the provided type
9271
- * @param filterBody the body of the new filter
9272
- * @param type the type of the new filter. Type must match the type of the body.
9273
- * @returns a filter with the given body and type. `id` of the new filter is set to an empty string.
9274
- */
9275
- static fromQuery(filterBody, type) {
9276
- return new SimpleFilter('', type, filterBody);
9277
- }
9278
- /**
9279
- * Creates a case filter with the provided body
9280
- * @param filterBody the body of the new filter
9281
- * @returns a case filter with the given body. `id` of the new filter is set to an empty string.
9282
- */
9283
- static fromCaseQuery(filterBody) {
9284
- return SimpleFilter.fromQuery(filterBody, FilterType.CASE);
9285
- }
9286
- /**
9287
- * Creates a task filter with the provided body
9288
- * @param filterBody the body of the new filter
9289
- * @returns a task filter with the given body. `id` of the new filter is set to an empty string.
9290
- */
9291
- static fromTaskQuery(filterBody) {
9292
- return SimpleFilter.fromQuery(filterBody, FilterType.TASK);
9293
- }
9294
- /**
9295
- * See [Filter.clone()]{@link Filter#clone}
9296
- */
9297
- clone() {
9298
- return new SimpleFilter(this.id, this.type, this._filter, this.title);
9299
- }
9300
- /**
9301
- * See [Filter.merge()]{@link Filter#merge}
9302
- */
9303
- merge(filter, operator) {
9304
- const temp = new MergedFilter(this.id, this.type, [this._filter], operator, this.title);
9305
- return temp.merge(filter, operator);
9306
- }
9307
- /**
9308
- * See [Filter.bodyContainsQuery()]{@link Filter#bodyContainsQuery}
9309
- */
9310
- bodyContainsQuery() {
9311
- return this._filter.query !== undefined && this._filter.query !== null;
9312
- }
9313
- /**
9314
- * See [Filter.getRequestBody()]{@link Filter#getRequestBody}
9315
- */
9316
- getRequestBody() {
9317
- return this.deepCopy(this._filter);
9318
- }
9319
- }
9320
-
9321
9554
  /**
9322
9555
  * Abstraction of queries, so that their implementation can be replaced as needed.
9323
9556
  */
@@ -9826,11 +10059,6 @@ class EditableClausePredicateWithGenerators extends EditableClausePredicate {
9826
10059
  }
9827
10060
  }
9828
10061
 
9829
- /**
9830
- * Provides the base filter of a {@link SearchService}
9831
- */
9832
- const NAE_BASE_FILTER = new InjectionToken('NaeBaseFilter');
9833
-
9834
10062
  /**
9835
10063
  * Represents the available {@link Operator} classes in a serializable form.
9836
10064
  */
@@ -14066,40 +14294,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14066
14294
  }]
14067
14295
  }], ctorParameters: function () { return [{ type: ComponentRegistryService }, { type: FilterField }, { type: i0.Type }, { type: i0.Type }]; } });
14068
14296
 
14069
- const NAE_VIEW_ID = new InjectionToken('NaeViewId');
14070
- const NAE_VIEW_ID_SEGMENT = new InjectionToken('NaeViewIdSegment');
14071
-
14072
- class ViewIdService {
14073
- constructor(parentInjector, idSegment) {
14074
- this._viewId = '';
14075
- if (parentInjector !== null) {
14076
- const parentIdService = parentInjector.get(ViewIdService, null);
14077
- if (parentIdService !== null) {
14078
- this._viewId = parentIdService.viewId + ViewIdService.VIEW_ID_SEGMENT_SEPARATOR;
14079
- }
14080
- }
14081
- this._viewId += idSegment;
14082
- }
14083
- get viewId() {
14084
- return this._viewId;
14085
- }
14086
- }
14087
- ViewIdService.VIEW_ID_SEGMENT_SEPARATOR = '-';
14088
- ViewIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewIdService, deps: [{ token: i0.Injector, optional: true, skipSelf: true }, { token: NAE_VIEW_ID_SEGMENT }], target: i0.ɵɵFactoryTarget.Injectable });
14089
- ViewIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewIdService });
14090
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ViewIdService, decorators: [{
14091
- type: Injectable
14092
- }], ctorParameters: function () {
14093
- return [{ type: i0.Injector, decorators: [{
14094
- type: Optional
14095
- }, {
14096
- type: SkipSelf
14097
- }] }, { type: undefined, decorators: [{
14098
- type: Inject,
14099
- args: [NAE_VIEW_ID_SEGMENT]
14100
- }] }];
14101
- } });
14102
-
14103
14297
  class AbstractFilterFieldTabViewContentComponent extends AbstractFilterFieldContentComponent {
14104
14298
  constructor(registry, injector, filterField, searchService) {
14105
14299
  super(filterField, searchService);
@@ -15063,12 +15257,12 @@ class TaskContentService {
15063
15257
  * A snackbar will also be displayed to the user, informing them of the fact that the fields are invalid.
15064
15258
  * @returns whether the task is valid or not
15065
15259
  */
15066
- validateTaskData() {
15260
+ validateTaskData(taskId) {
15067
15261
  if (!this._task || !this._task.dataGroups) {
15068
15262
  return false;
15069
15263
  }
15070
- const valid = !this._task.dataGroups.some(group => group.fields.some(field => !field.valid && !field.disabled));
15071
- const validDisabled = !this._task.dataGroups.some(group => group.fields.some(field => !field.validRequired && field.disabled));
15264
+ const valid = !this._task.dataGroups.filter(group => !!group.parentTaskId && !!taskId ? group.parentTaskId === taskId : true).some(group => group.fields.some(field => !field.valid && !field.disabled));
15265
+ const validDisabled = !this._task.dataGroups.filter(group => !!group.parentTaskId && !!taskId ? group.parentTaskId === taskId : true).some(group => group.fields.some(field => !field.validRequired && field.disabled));
15072
15266
  if (!valid) {
15073
15267
  this._snackBarService.openErrorSnackBar(this._translate.instant('tasks.snackbar.invalidData'));
15074
15268
  this._task.dataGroups.forEach(group => group.fields.forEach(field => field.touch = true));
@@ -15158,7 +15352,6 @@ class TaskContentService {
15158
15352
  }
15159
15353
  });
15160
15354
  this.$shouldCreate.next(this._task.dataGroups);
15161
- this.performFrontendAction(frontendActions);
15162
15355
  }
15163
15356
  updateField(chFields, field, frontendActions) {
15164
15357
  if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF) {
@@ -15202,6 +15395,7 @@ class TaskContentService {
15202
15395
  });
15203
15396
  }
15204
15397
  field.choices = newChoices;
15398
+ field.updateChoice();
15205
15399
  break;
15206
15400
  case 'options':
15207
15401
  const newOptions = [];
@@ -15209,6 +15403,7 @@ class TaskContentService {
15209
15403
  newOptions.push({ key: optionKey, value: updatedField.options[optionKey] });
15210
15404
  });
15211
15405
  field.choices = newOptions;
15406
+ field.updateChoice();
15212
15407
  break;
15213
15408
  case 'validations':
15214
15409
  field.replaceValidations(updatedField.validations.map(it => it));
@@ -15229,7 +15424,7 @@ class TaskContentService {
15229
15424
  switch (key) {
15230
15425
  case 'behavior':
15231
15426
  const taskId = this.getReferencedTaskId(field.stringId);
15232
- const taskRef = Object.values(this.taskFieldsIndex[this._task.stringId].fields).find(f => f instanceof TaskRefField && f.value.includes(taskId));
15427
+ const taskRef = this.findTaskRefId(taskId, this.taskFieldsIndex[this._task.stringId].fields);
15233
15428
  const transitionId = this.taskFieldsIndex[taskId].transitionId;
15234
15429
  if (!!transitionId && transitionId !== '' && updatedField.behavior[transitionId])
15235
15430
  field.behavior = taskRef.behavior.editable ? updatedField.behavior[transitionId] : taskRef.behavior;
@@ -15240,20 +15435,6 @@ class TaskContentService {
15240
15435
  field.update();
15241
15436
  });
15242
15437
  }
15243
- /**
15244
- * Performs the specific frontend action.
15245
- *
15246
- * A prototype implementation of frontend actions.
15247
- *
15248
- * The specifics are subject to change. It is very likely that this method will be moved to a different service.
15249
- *
15250
- * @param frontendAction the action that should be performed.
15251
- */
15252
- performFrontendAction(frontendAction) {
15253
- if (frontendAction && frontendAction.type === TaskContentService.VALIDATE_FRONTEND_ACTION) {
15254
- timer().subscribe(() => this.validateTaskData());
15255
- }
15256
- }
15257
15438
  isFieldInTask(taskId, changedField) {
15258
15439
  return !!taskId
15259
15440
  && !!this.taskFieldsIndex[taskId]
@@ -15273,9 +15454,22 @@ class TaskContentService {
15273
15454
  }
15274
15455
  return undefined;
15275
15456
  }
15457
+ findTaskRefId(taskId, fields) {
15458
+ let taskRefId = Object.values(fields).find(f => f instanceof TaskRefField && f.value.includes(taskId));
15459
+ if (!taskRefId) {
15460
+ const referencedTaskIds = Object.values(fields).filter(f => f instanceof TaskRefField).map(tr => tr.value);
15461
+ referencedTaskIds.forEach(id => {
15462
+ taskRefId = this.findTaskRefId(taskId, this.taskFieldsIndex[id].fields);
15463
+ if (!!taskRefId) {
15464
+ return taskRefId;
15465
+ }
15466
+ });
15467
+ }
15468
+ return taskRefId;
15469
+ }
15276
15470
  }
15277
15471
  TaskContentService.FRONTEND_ACTIONS_KEY = '_frontend_actions';
15278
- TaskContentService.VALIDATE_FRONTEND_ACTION = 'validate';
15472
+ TaskContentService.ACTION = 'action';
15279
15473
  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 });
15280
15474
  TaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskContentService });
15281
15475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskContentService, decorators: [{
@@ -15676,12 +15870,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15676
15870
  type: Injectable
15677
15871
  }], ctorParameters: function () { return []; } });
15678
15872
 
15873
+ class FrontActionRegistryService {
15874
+ constructor() {
15875
+ this._registry = new Map();
15876
+ }
15877
+ get registry() {
15878
+ return this._registry;
15879
+ }
15880
+ set registry(value) {
15881
+ this._registry = value;
15882
+ }
15883
+ register(key, fn) {
15884
+ this._registry.set(key, fn);
15885
+ }
15886
+ contains(key) {
15887
+ return this._registry.has(key);
15888
+ }
15889
+ get(key) {
15890
+ if (this._registry.has(key)) {
15891
+ return this._registry.get(key);
15892
+ }
15893
+ return undefined;
15894
+ }
15895
+ }
15896
+ FrontActionRegistryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15897
+ FrontActionRegistryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionRegistryService, providedIn: 'root' });
15898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionRegistryService, decorators: [{
15899
+ type: Injectable,
15900
+ args: [{
15901
+ providedIn: 'root'
15902
+ }]
15903
+ }], ctorParameters: function () { return []; } });
15904
+
15905
+ class FrontActionService {
15906
+ constructor(_injector, _frontActionRegistry, _log) {
15907
+ this._injector = _injector;
15908
+ this._frontActionRegistry = _frontActionRegistry;
15909
+ this._log = _log;
15910
+ }
15911
+ run(frontAction) {
15912
+ const fn = this._frontActionRegistry.get(frontAction.id);
15913
+ if (!fn) {
15914
+ this._log.error("Frontend action is not defined for ID [" + frontAction.id + "]");
15915
+ }
15916
+ fn.call(this._injector, frontAction);
15917
+ }
15918
+ runAll(frontAction) {
15919
+ frontAction.forEach(a => this.run(a));
15920
+ }
15921
+ }
15922
+ 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 });
15923
+ FrontActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionService });
15924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionService, decorators: [{
15925
+ type: Injectable
15926
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: FrontActionRegistryService }, { type: LoggerService }]; } });
15927
+
15679
15928
  /**
15680
15929
  * Handles the loading and updating of data fields and behaviour of
15681
15930
  * a single Task object managed by a {@link TaskContentService} instance.
15682
15931
  */
15683
15932
  class TaskDataService extends TaskHandlingService {
15684
- constructor(_taskState, _translate, _log, _snackBar, _taskResourceService, _fieldConverterService, _taskEvent, _taskOperations, _selectedCaseService, _taskContentService, _afterActionFactory, _eventQueue, _userComparator, _eventService, _changedFieldsService) {
15933
+ constructor(_taskState, _translate, _log, _snackBar, _taskResourceService, _fieldConverterService, _taskEvent, _taskOperations, _selectedCaseService, _taskContentService, _afterActionFactory, _eventQueue, _userComparator, _eventService, _changedFieldsService, _frontActionService) {
15685
15934
  super(_taskContentService, _selectedCaseService);
15686
15935
  this._taskState = _taskState;
15687
15936
  this._translate = _translate;
@@ -15696,13 +15945,10 @@ class TaskDataService extends TaskHandlingService {
15696
15945
  this._userComparator = _userComparator;
15697
15946
  this._eventService = _eventService;
15698
15947
  this._changedFieldsService = _changedFieldsService;
15948
+ this._frontActionService = _frontActionService;
15699
15949
  this._updateSuccess$ = new Subject();
15700
15950
  this._dataReloadSubscription = this._taskContentService.taskDataReloadRequest$.subscribe(queuedFrontendAction => {
15701
- this.initializeTaskDataFields(this._afterActionFactory.create(success => {
15702
- if (success && queuedFrontendAction) {
15703
- this._taskContentService.performFrontendAction(queuedFrontendAction);
15704
- }
15705
- }), true);
15951
+ this.initializeTaskDataFields(new AfterAction(), true);
15706
15952
  });
15707
15953
  }
15708
15954
  ngOnDestroy() {
@@ -16077,9 +16323,13 @@ class TaskDataService extends TaskHandlingService {
16077
16323
  processSuccessfulSetDataRequest(setTaskId, response, afterAction, nextEvent, body) {
16078
16324
  const outcome = response.outcome;
16079
16325
  const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcome);
16326
+ const frontActions = this._eventService.parseFrontActionsFromOutcomeTree(outcome);
16080
16327
  if (Object.keys(changedFieldsMap).length > 0) {
16081
16328
  this._changedFieldsService.emitChangedFields(changedFieldsMap);
16082
16329
  }
16330
+ if (!!frontActions && frontActions.length > 0) {
16331
+ this._frontActionService.runAll(frontActions);
16332
+ }
16083
16333
  this.clearWaitingForResponseFlag(body);
16084
16334
  this._snackBar.openSuccessSnackBar(!!outcome.message ? outcome.message : this._translate.instant('tasks.snackbar.dataSaved'));
16085
16335
  this.updateStateInfo(afterAction, true, setTaskId);
@@ -16197,7 +16447,7 @@ class TaskDataService extends TaskHandlingService {
16197
16447
  });
16198
16448
  }
16199
16449
  }
16200
- 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 });
16450
+ 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 });
16201
16451
  TaskDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskDataService });
16202
16452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskDataService, decorators: [{
16203
16453
  type: Injectable
@@ -16207,7 +16457,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16207
16457
  args: [NAE_TASK_OPERATIONS]
16208
16458
  }] }, { type: SelectedCaseService, decorators: [{
16209
16459
  type: Optional
16210
- }] }, { type: TaskContentService }, { type: CallChainService }, { type: EventQueueService }, { type: UserComparatorService }, { type: EventService }, { type: ChangedFieldsService }];
16460
+ }] }, { type: TaskContentService }, { type: CallChainService }, { type: EventQueueService }, { type: UserComparatorService }, { type: EventService }, { type: ChangedFieldsService }, { type: FrontActionService }];
16211
16461
  } });
16212
16462
 
16213
16463
  class AbstractTaskRefDashboardTileComponent {
@@ -16509,11 +16759,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16509
16759
  }] }];
16510
16760
  } });
16511
16761
 
16512
- const NAE_DEFAULT_HEADERS = new InjectionToken('NaeDefaultHeaders');
16513
-
16514
- const NAE_CASE_REF_CREATE_CASE = new InjectionToken('NaeCaseRefCreateCase');
16515
- const NAE_CASE_REF_SEARCH = new InjectionToken('NaeCaseRefSearch');
16516
-
16517
16762
  class AbstractCaseRefDefaultComponent extends AbstractBaseDataFieldComponent {
16518
16763
  constructor(injector, caseViewType, dataFieldPortalData) {
16519
16764
  super(dataFieldPortalData);
@@ -16549,6 +16794,10 @@ class AbstractCaseRefDefaultComponent extends AbstractBaseDataFieldComponent {
16549
16794
  provide: NAE_VIEW_ID_SEGMENT,
16550
16795
  useValue: this.dataField.parentCaseId + '_' + this.dataField.parentTaskId + '_' + this.dataField.stringId
16551
16796
  },
16797
+ {
16798
+ provide: NAE_CASE_REF_DATAFIELD,
16799
+ useValue: this.dataField
16800
+ },
16552
16801
  { provide: ViewIdService, useClass: ViewIdService }
16553
16802
  ],
16554
16803
  parent: this.injector
@@ -18515,6 +18764,10 @@ class AbstractCasePanelComponent extends AbstractPanelWithImmediateDataComponent
18515
18764
  this.showCasePanelIcon = true;
18516
18765
  this.showDeleteMenu = false;
18517
18766
  this.textEllipsis = false;
18767
+ this._approvalFormControl = new FormControl();
18768
+ }
18769
+ get approvalFormControl() {
18770
+ return this._approvalFormControl;
18518
18771
  }
18519
18772
  show(event) {
18520
18773
  event.stopPropagation();
@@ -18569,7 +18822,7 @@ class AbstractCasePanelComponent extends AbstractPanelWithImmediateDataComponent
18569
18822
  }
18570
18823
  }
18571
18824
  AbstractCasePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractCasePanelComponent, deps: [{ token: CaseResourceService }, { token: CaseViewService }, { token: SnackBarService }, { token: i1$2.TranslateService }, { token: LoggerService }, { token: UserService }, { token: i5.CurrencyPipe }, { token: PermissionService }, { token: OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
18572
- AbstractCasePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractCasePanelComponent, selector: "ncc-abstract-case-panel", inputs: { case_: "case_", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", first: "first", last: "last", showCasePanelIcon: "showCasePanelIcon", showDeleteMenu: "showDeleteMenu", textEllipsis: "textEllipsis" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
18825
+ AbstractCasePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractCasePanelComponent, selector: "ncc-abstract-case-panel", inputs: { case_: "case_", approval: "approval", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", first: "first", last: "last", showCasePanelIcon: "showCasePanelIcon", showDeleteMenu: "showDeleteMenu", textEllipsis: "textEllipsis" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
18573
18826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractCasePanelComponent, decorators: [{
18574
18827
  type: Component,
18575
18828
  args: [{
@@ -18582,6 +18835,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18582
18835
  }] }];
18583
18836
  }, propDecorators: { case_: [{
18584
18837
  type: Input
18838
+ }], approval: [{
18839
+ type: Input
18585
18840
  }], selectedHeaders$: [{
18586
18841
  type: Input
18587
18842
  }], responsiveBody: [{
@@ -19088,6 +19343,7 @@ const NAE_SAVE_FILTER_COMPONENT = new InjectionToken('NaeSaveFilterComponent');
19088
19343
  const NAE_LOAD_FILTER_COMPONENT = new InjectionToken('NaeLoadFilterComponent');
19089
19344
  const NAE_USER_IMPERSONATE_COMPONENT = new InjectionToken('NaeUserImpersonateComponent');
19090
19345
  const NAE_ADMIN_IMPERSONATE_COMPONENT = new InjectionToken('NaeAdminImpersonateComponent');
19346
+ const NAE_TASK_VIEW_COMPONENT = new InjectionToken('NaeTaskViewComponent');
19091
19347
 
19092
19348
  const NAE_SIDE_MENU_CONTROL = new InjectionToken('NaeSideMenuControl');
19093
19349
 
@@ -20043,6 +20299,7 @@ class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataComponent
20043
20299
  this.responsiveBody = true;
20044
20300
  this.preventCollapse = false;
20045
20301
  this.hidePanelHeader = false;
20302
+ this.hideActionRow = false;
20046
20303
  this.showMoreMenu = true;
20047
20304
  this.thisContext = {
20048
20305
  canAssign: () => this.canAssign(),
@@ -20312,7 +20569,7 @@ class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataComponent
20312
20569
  }
20313
20570
  }
20314
20571
  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 });
20315
- 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 });
20572
+ 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 });
20316
20573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskPanelComponent, decorators: [{
20317
20574
  type: Component,
20318
20575
  args: [{
@@ -20349,6 +20606,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20349
20606
  type: Input
20350
20607
  }], hidePanelHeader: [{
20351
20608
  type: Input
20609
+ }], hideActionRow: [{
20610
+ type: Input
20352
20611
  }], actionButtonTemplates: [{
20353
20612
  type: Input
20354
20613
  }], actionRowJustifyContent: [{
@@ -20570,7 +20829,7 @@ class AbstractTaskListPaginationComponent extends AbstractDefaultTaskListCompone
20570
20829
  }
20571
20830
  }
20572
20831
  AbstractTaskListPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskListPaginationComponent, deps: [{ token: TaskViewService }, { token: LoggerService }, { token: NAE_TAB_DATA, optional: true }, { token: i2$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
20573
- AbstractTaskListPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractTaskListPaginationComponent, selector: "ncc-abstract-task-list-pagination-component", inputs: { tasks$: "tasks$" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
20832
+ AbstractTaskListPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractTaskListPaginationComponent, selector: "ncc-abstract-task-list-pagination-component", inputs: { disabled: "disabled", tasks$: "tasks$" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
20574
20833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractTaskListPaginationComponent, decorators: [{
20575
20834
  type: Component,
20576
20835
  args: [{
@@ -20584,7 +20843,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
20584
20843
  type: Inject,
20585
20844
  args: [NAE_TAB_DATA]
20586
20845
  }] }, { type: i2$3.ActivatedRoute }];
20587
- }, propDecorators: { tasks$: [{
20846
+ }, propDecorators: { disabled: [{
20847
+ type: Input
20848
+ }], tasks$: [{
20588
20849
  type: Input
20589
20850
  }] } });
20590
20851
 
@@ -21038,12 +21299,13 @@ class AbstractSingleTaskComponent {
21038
21299
  this.textEllipsis = false;
21039
21300
  this.preventCollapse = true;
21040
21301
  this.hidePanelHeader = true;
21302
+ this.hideActionRow = true;
21303
+ this.showPageHeader = true;
21304
+ this.showPageFooter = true;
21041
21305
  this.taskEvent = new EventEmitter();
21042
- this._unsubscribe$ = new Subject();
21043
21306
  }
21044
21307
  ngOnDestroy() {
21045
21308
  this.taskEvent.complete();
21046
- this._unsubscribe$.complete();
21047
21309
  }
21048
21310
  setPanelRef(panelRef) {
21049
21311
  this._taskPanelRef = panelRef;
@@ -21060,7 +21322,7 @@ class AbstractSingleTaskComponent {
21060
21322
  }
21061
21323
  }
21062
21324
  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 });
21063
- 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 });
21325
+ 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 });
21064
21326
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskComponent, decorators: [{
21065
21327
  type: Component,
21066
21328
  args: [{
@@ -21090,12 +21352,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21090
21352
  type: Input
21091
21353
  }], hidePanelHeader: [{
21092
21354
  type: Input
21355
+ }], hideActionRow: [{
21356
+ type: Input
21093
21357
  }], noTaskSection: [{
21094
21358
  type: Input
21095
21359
  }], pageHeader: [{
21096
21360
  type: Input
21097
21361
  }], pageFooter: [{
21098
21362
  type: Input
21363
+ }], showPageHeader: [{
21364
+ type: Input
21365
+ }], showPageFooter: [{
21366
+ type: Input
21099
21367
  }], headerTitle: [{
21100
21368
  type: Input
21101
21369
  }], footerText: [{
@@ -22048,6 +22316,150 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22048
22316
  */
22049
22317
  const NAE_URI_NODE_CASES_PAGE_SIZE = new InjectionToken('NaeUriNodeCasesPageSize');
22050
22318
 
22319
+ var GroupNavigationConstants;
22320
+ (function (GroupNavigationConstants) {
22321
+ /**
22322
+ * Name of the component that indicates the position of the group specific navigation elements.
22323
+ */
22324
+ GroupNavigationConstants["GROUP_NAVIGATION_OUTLET"] = "groupNavigation";
22325
+ /**
22326
+ * Name of the router param that is used to provide information about the selected filter to the group navigation view component
22327
+ */
22328
+ GroupNavigationConstants["GROUP_NAVIGATION_ROUTER_PARAM"] = "filterCaseId";
22329
+ /**
22330
+ * Field id, that contains the tab name of the navigation item.
22331
+ */
22332
+ GroupNavigationConstants["NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX"] = "tab_name";
22333
+ /**
22334
+ * Boolean field id, that determines if the navigation defines a tab icon.
22335
+ */
22336
+ GroupNavigationConstants["NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX"] = "use_tab_icon";
22337
+ /**
22338
+ * Text field id, that contains the id of the used material icon.
22339
+ */
22340
+ GroupNavigationConstants["NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX"] = "tab_icon";
22341
+ /**
22342
+ * TaskRef field, that contains taskId of filter task
22343
+ * */
22344
+ GroupNavigationConstants["ITEM_FIELD_ID_FILTER_TASKREF"] = "current_filter_preview";
22345
+ /**
22346
+ * Text field id, that contains title of create case button
22347
+ * */
22348
+ GroupNavigationConstants["ITEM_FIELD_ID_CREATE_CASE_BUTTON_TITLE"] = "create_case_button_title";
22349
+ /**
22350
+ * Text field id, that contains icon name of create case button
22351
+ * */
22352
+ GroupNavigationConstants["ITEM_FIELD_ID_CREATE_CASE_BUTTON_ICON"] = "create_case_button_icon";
22353
+ /**
22354
+ * EnumerationMap field, that contains selected search type for case view
22355
+ * */
22356
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_VIEW_SEARCH_TYPE"] = "case_view_search_type";
22357
+ /**
22358
+ * EnumerationMap field, that contains selected search type for task view
22359
+ * */
22360
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE"] = "task_view_search_type";
22361
+ /**
22362
+ * Boolean field, that is true if user wants to merge base filter and custom filter
22363
+ * */
22364
+ GroupNavigationConstants["ITEM_FIELD_ID_MERGE_FILTERS"] = "merge_filters";
22365
+ /**
22366
+ * TaskRef field, that contains taskId of custom filter for task view
22367
+ * */
22368
+ GroupNavigationConstants["ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF"] = "current_additional_filter_preview";
22369
+ /**
22370
+ * Boolean field, that is true if the user wants to see more menu for case item in case view
22371
+ * */
22372
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_SHOW_MORE_MENU"] = "case_show_more_menu";
22373
+ /**
22374
+ * Boolean field, that is true if no input for title in case creation is shown
22375
+ * */
22376
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_TITLE_IN_CREATION"] = "case_require_title_in_creation";
22377
+ /**
22378
+ * Text field, that contains banned processes in case creation as a value
22379
+ * */
22380
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_BANNED_PROCESS_CREATION"] = "case_banned_nets_in_creation";
22381
+ /**
22382
+ * Boolean field, that is true if the user wants to see more menu for task item in task view
22383
+ * */
22384
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_SHOW_MORE_MENU"] = "task_show_more_menu";
22385
+ /**
22386
+ * MultichoiceMap field, that contains selected header modes for case view as a value
22387
+ * */
22388
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_HEADERS_MODE"] = "case_headers_mode";
22389
+ /**
22390
+ * Boolean field, that is true if table mode can be applied in case view
22391
+ * */
22392
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE"] = "case_allow_header_table_mode";
22393
+ /**
22394
+ * EnumerationMap field, that contains selected default header mode for case view as a value
22395
+ * */
22396
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE"] = "case_headers_default_mode";
22397
+ /**
22398
+ * Boolean field, that is true to make mode menu in case view visible
22399
+ * */
22400
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_HEADERS_CHANGEABLE"] = "case_is_header_mode_changeable";
22401
+ /**
22402
+ * MultichoiceMap field, that contains selected header modes for task view as a value
22403
+ * */
22404
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_HEADERS_MODE"] = "task_headers_mode";
22405
+ /**
22406
+ * Boolean field, that is true if table mode can be applied in task view
22407
+ * */
22408
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE"] = "task_allow_header_table_mode";
22409
+ /**
22410
+ * EnumerationMap field, that contains selected default header mode for task view as a value
22411
+ * */
22412
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE"] = "task_headers_default_mode";
22413
+ /**
22414
+ * Boolean field, that is true to make mode menu in task view visible
22415
+ * */
22416
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE"] = "task_is_header_mode_changeable";
22417
+ /**
22418
+ * Boolean field, that is true to use default headers configuration for case view
22419
+ * */
22420
+ GroupNavigationConstants["ITEM_FIELD_ID_USE_CASE_DEFAULT_HEADERS"] = "use_case_default_headers";
22421
+ /**
22422
+ * Text field, that contains default header metadata separated by comma for case view as a value
22423
+ * */
22424
+ GroupNavigationConstants["ITEM_FIELD_ID_CASE_DEFAULT_HEADERS"] = "case_default_headers";
22425
+ /**
22426
+ * Boolean field, that is true to use default headers configuration for task view
22427
+ * */
22428
+ GroupNavigationConstants["ITEM_FIELD_ID_USE_TASK_DEFAULT_HEADERS"] = "use_task_default_headers";
22429
+ /**
22430
+ * Text field, that contains default header metadata separated by comma for task view as a value
22431
+ * */
22432
+ GroupNavigationConstants["ITEM_FIELD_ID_TASK_DEFAULT_HEADERS"] = "task_default_headers";
22433
+ /**
22434
+ * MultichoiceMap field, that contains allowed roles as value
22435
+ * */
22436
+ GroupNavigationConstants["ITEM_FIELD_ID_ALLOWED_ROLES"] = "allowed_roles";
22437
+ /**
22438
+ * MultichoiceMap field, that contains banned roles as value
22439
+ * */
22440
+ GroupNavigationConstants["ITEM_FIELD_ID_BANNED_ROLES"] = "banned_roles";
22441
+ /**
22442
+ * Text field, that contains icon identifier
22443
+ * */
22444
+ GroupNavigationConstants["ITEM_FIELD_ID_MENU_ICON"] = "menu_icon";
22445
+ /**
22446
+ * I18n field, that contains labels of menu item
22447
+ * */
22448
+ GroupNavigationConstants["ITEM_FIELD_ID_MENU_NAME"] = "menu_name";
22449
+ /**
22450
+ * Text field, that contains URI
22451
+ * */
22452
+ GroupNavigationConstants["ITEM_FIELD_ID_NODE_PATH"] = "nodePath";
22453
+ /**
22454
+ * Boolean field, that is true if item contains child items
22455
+ * */
22456
+ GroupNavigationConstants["ITEM_FIELD_ID_HAS_CHILDREN"] = "hasChildren";
22457
+ /**
22458
+ * CaseField containing stringIds of child instances of process preference_item
22459
+ * */
22460
+ GroupNavigationConstants["ITEM_FIELD_ID_CHILD_ITEM_IDS"] = "childItemIds";
22461
+ })(GroupNavigationConstants || (GroupNavigationConstants = {}));
22462
+
22051
22463
  /**
22052
22464
  * Service for accessing backend resource to resolve URI objects
22053
22465
  * */
@@ -22373,6 +22785,26 @@ class UriService {
22373
22785
  .set(PaginationParams.PAGE_NUMBER, pageNumber);
22374
22786
  return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams);
22375
22787
  }
22788
+ /**
22789
+ * Get menu item case by nodePath field value
22790
+ * @param node a node, that is represented by the wanted case
22791
+ * @return page containing 1 case
22792
+ */
22793
+ getItemCaseByNodePath(node) {
22794
+ if (!node) {
22795
+ node = this.activeNode;
22796
+ }
22797
+ const searchBody = {
22798
+ data: {
22799
+ [GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH]: node.uriPath
22800
+ },
22801
+ process: { identifier: "preference_item" }
22802
+ };
22803
+ let httpParams = new HttpParams()
22804
+ .set(PaginationParams.PAGE_SIZE, 1)
22805
+ .set(PaginationParams.PAGE_NUMBER, 0);
22806
+ return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams);
22807
+ }
22376
22808
  /**
22377
22809
  * Get siblings node of the provided node
22378
22810
  * @param node siblings node
@@ -25273,6 +25705,9 @@ class AbstractHeaderComponent {
25273
25705
  this._initResponsiveHeaders = responsive;
25274
25706
  }
25275
25707
  }
25708
+ get approvalFormControl() {
25709
+ return this._approvalFormControl;
25710
+ }
25276
25711
  changeHeadersMode(mode, saveLastMode = true) {
25277
25712
  if (this.headerService) {
25278
25713
  this.headerService.changeMode(mode, saveLastMode);
@@ -25358,6 +25793,7 @@ class AbstractHeaderComponent {
25358
25793
  Validators.required,
25359
25794
  Validators.min(180)
25360
25795
  ]);
25796
+ this._approvalFormControl = new FormControl(false);
25361
25797
  if (exist) {
25362
25798
  this.initializeValueChanges();
25363
25799
  }
@@ -25386,7 +25822,7 @@ class AbstractHeaderComponent {
25386
25822
  }
25387
25823
  }
25388
25824
  AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1$2.TranslateService }, { token: OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
25389
- AbstractHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractHeaderComponent, selector: "ncc-abstract-header", inputs: { type: "type", hideHeaderMenu: "hideHeaderMenu", showEditButton: "showEditButton", showSortButton: "showSortButton", showSearchButton: "showSearchButton", showTableSection: "showTableSection", maxHeaderColumns: "maxHeaderColumns", responsiveHeaders: "responsiveHeaders" }, ngImport: i0, template: '', isInline: true });
25825
+ AbstractHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractHeaderComponent, selector: "ncc-abstract-header", inputs: { type: "type", hideHeaderMenu: "hideHeaderMenu", showEditButton: "showEditButton", showSortButton: "showSortButton", showSearchButton: "showSearchButton", showTableSection: "showTableSection", approval: "approval", maxHeaderColumns: "maxHeaderColumns", responsiveHeaders: "responsiveHeaders" }, ngImport: i0, template: '', isInline: true });
25390
25826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, decorators: [{
25391
25827
  type: Component,
25392
25828
  args: [{
@@ -25409,6 +25845,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25409
25845
  type: Input
25410
25846
  }], showTableSection: [{
25411
25847
  type: Input
25848
+ }], approval: [{
25849
+ type: Input
25412
25850
  }], maxHeaderColumns: [{
25413
25851
  type: Input
25414
25852
  }], responsiveHeaders: [{
@@ -25423,7 +25861,7 @@ class AbstractHeaderModeComponent {
25423
25861
  }
25424
25862
  }
25425
25863
  AbstractHeaderModeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderModeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25426
- AbstractHeaderModeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractHeaderModeComponent, selector: "ncc-abstract-header-mode", inputs: { overflowWidth: "overflowWidth" }, ngImport: i0, template: '', isInline: true });
25864
+ AbstractHeaderModeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractHeaderModeComponent, selector: "ncc-abstract-header-mode", inputs: { overflowWidth: "overflowWidth", approval: "approval", indeterminate: "indeterminate", approvalFormControl: "approvalFormControl", typeApproval: "typeApproval" }, ngImport: i0, template: '', isInline: true });
25427
25865
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderModeComponent, decorators: [{
25428
25866
  type: Component,
25429
25867
  args: [{
@@ -25432,6 +25870,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25432
25870
  }]
25433
25871
  }], ctorParameters: function () { return []; }, propDecorators: { overflowWidth: [{
25434
25872
  type: Input
25873
+ }], approval: [{
25874
+ type: Input
25875
+ }], indeterminate: [{
25876
+ type: Input
25877
+ }], approvalFormControl: [{
25878
+ type: Input
25879
+ }], typeApproval: [{
25880
+ type: Input
25435
25881
  }] } });
25436
25882
 
25437
25883
  class AbstractSortModeComponent extends AbstractHeaderModeComponent {
@@ -26994,146 +27440,6 @@ class ViewClassInfo extends ImportToAdd {
26994
27440
  }
26995
27441
  }
26996
27442
 
26997
- var GroupNavigationConstants;
26998
- (function (GroupNavigationConstants) {
26999
- /**
27000
- * Name of the component that indicates the position of the group specific navigation elements.
27001
- */
27002
- GroupNavigationConstants["GROUP_NAVIGATION_OUTLET"] = "groupNavigation";
27003
- /**
27004
- * Name of the router param that is used to provide information about the selected filter to the group navigation view component
27005
- */
27006
- GroupNavigationConstants["GROUP_NAVIGATION_ROUTER_PARAM"] = "filterCaseId";
27007
- /**
27008
- * Field id, that contains the tab name of the navigation item.
27009
- */
27010
- GroupNavigationConstants["NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX"] = "tab_name";
27011
- /**
27012
- * Boolean field id, that determines if the navigation defines a tab icon.
27013
- */
27014
- GroupNavigationConstants["NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX"] = "use_tab_icon";
27015
- /**
27016
- * Text field id, that contains the id of the used material icon.
27017
- */
27018
- GroupNavigationConstants["NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX"] = "tab_icon";
27019
- /**
27020
- * TaskRef field, that contains taskId of filter task
27021
- * */
27022
- GroupNavigationConstants["ITEM_FIELD_ID_FILTER_TASKREF"] = "current_filter_preview";
27023
- /**
27024
- * Text field id, that contains title of create case button
27025
- * */
27026
- GroupNavigationConstants["ITEM_FIELD_ID_CREATE_CASE_BUTTON_TITLE"] = "create_case_button_title";
27027
- /**
27028
- * Text field id, that contains icon name of create case button
27029
- * */
27030
- GroupNavigationConstants["ITEM_FIELD_ID_CREATE_CASE_BUTTON_ICON"] = "create_case_button_icon";
27031
- /**
27032
- * EnumerationMap field, that contains selected search type for case view
27033
- * */
27034
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_VIEW_SEARCH_TYPE"] = "case_view_search_type";
27035
- /**
27036
- * EnumerationMap field, that contains selected search type for task view
27037
- * */
27038
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE"] = "task_view_search_type";
27039
- /**
27040
- * Boolean field, that is true if user wants to merge base filter and custom filter
27041
- * */
27042
- GroupNavigationConstants["ITEM_FIELD_ID_MERGE_FILTERS"] = "merge_filters";
27043
- /**
27044
- * TaskRef field, that contains taskId of custom filter for task view
27045
- * */
27046
- GroupNavigationConstants["ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF"] = "current_additional_filter_preview";
27047
- /**
27048
- * Boolean field, that is true if the user wants to see more menu for case item in case view
27049
- * */
27050
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_SHOW_MORE_MENU"] = "case_show_more_menu";
27051
- /**
27052
- * Boolean field, that is true if no input for title in case creation is shown
27053
- * */
27054
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_TITLE_IN_CREATION"] = "case_require_title_in_creation";
27055
- /**
27056
- * Text field, that contains banned processes in case creation as a value
27057
- * */
27058
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_BANNED_PROCESS_CREATION"] = "case_banned_nets_in_creation";
27059
- /**
27060
- * Boolean field, that is true if the user wants to see more menu for task item in task view
27061
- * */
27062
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_SHOW_MORE_MENU"] = "task_show_more_menu";
27063
- /**
27064
- * MultichoiceMap field, that contains selected header modes for case view as a value
27065
- * */
27066
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_HEADERS_MODE"] = "case_headers_mode";
27067
- /**
27068
- * Boolean field, that is true if table mode can be applied in case view
27069
- * */
27070
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE"] = "case_allow_header_table_mode";
27071
- /**
27072
- * EnumerationMap field, that contains selected default header mode for case view as a value
27073
- * */
27074
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE"] = "case_headers_default_mode";
27075
- /**
27076
- * Boolean field, that is true to make mode menu in case view visible
27077
- * */
27078
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_HEADERS_CHANGEABLE"] = "case_is_header_mode_changeable";
27079
- /**
27080
- * MultichoiceMap field, that contains selected header modes for task view as a value
27081
- * */
27082
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_HEADERS_MODE"] = "task_headers_mode";
27083
- /**
27084
- * Boolean field, that is true if table mode can be applied in task view
27085
- * */
27086
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE"] = "task_allow_header_table_mode";
27087
- /**
27088
- * EnumerationMap field, that contains selected default header mode for task view as a value
27089
- * */
27090
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE"] = "task_headers_default_mode";
27091
- /**
27092
- * Boolean field, that is true to make mode menu in task view visible
27093
- * */
27094
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE"] = "task_is_header_mode_changeable";
27095
- /**
27096
- * Boolean field, that is true to use default headers configuration for case view
27097
- * */
27098
- GroupNavigationConstants["ITEM_FIELD_ID_USE_CASE_DEFAULT_HEADERS"] = "use_case_default_headers";
27099
- /**
27100
- * Text field, that contains default header metadata separated by comma for case view as a value
27101
- * */
27102
- GroupNavigationConstants["ITEM_FIELD_ID_CASE_DEFAULT_HEADERS"] = "case_default_headers";
27103
- /**
27104
- * Boolean field, that is true to use default headers configuration for task view
27105
- * */
27106
- GroupNavigationConstants["ITEM_FIELD_ID_USE_TASK_DEFAULT_HEADERS"] = "use_task_default_headers";
27107
- /**
27108
- * Text field, that contains default header metadata separated by comma for task view as a value
27109
- * */
27110
- GroupNavigationConstants["ITEM_FIELD_ID_TASK_DEFAULT_HEADERS"] = "task_default_headers";
27111
- /**
27112
- * MultichoiceMap field, that contains allowed roles as value
27113
- * */
27114
- GroupNavigationConstants["ITEM_FIELD_ID_ALLOWED_ROLES"] = "allowed_roles";
27115
- /**
27116
- * MultichoiceMap field, that contains banned roles as value
27117
- * */
27118
- GroupNavigationConstants["ITEM_FIELD_ID_BANNED_ROLES"] = "banned_roles";
27119
- /**
27120
- * Text field, that contains icon identifier
27121
- * */
27122
- GroupNavigationConstants["ITEM_FIELD_ID_MENU_ICON"] = "menu_icon";
27123
- /**
27124
- * I18n field, that contains labels of menu item
27125
- * */
27126
- GroupNavigationConstants["ITEM_FIELD_ID_MENU_NAME"] = "menu_name";
27127
- /**
27128
- * Text field, that contains URI
27129
- * */
27130
- GroupNavigationConstants["ITEM_FIELD_ID_NODE_PATH"] = "nodePath";
27131
- /**
27132
- * Boolean field, that is true if item contains child items
27133
- * */
27134
- GroupNavigationConstants["ITEM_FIELD_ID_HAS_CHILDREN"] = "hasChildren";
27135
- })(GroupNavigationConstants || (GroupNavigationConstants = {}));
27136
-
27137
27443
  /**
27138
27444
  * Holds component for dynamic routing resolution of group navigation component resolver component by the {@link RoutingBuilderService}.
27139
27445
  */
@@ -27496,7 +27802,7 @@ var MenuOrder;
27496
27802
  MenuOrder[MenuOrder["Descending"] = 1] = "Descending";
27497
27803
  })(MenuOrder || (MenuOrder = {}));
27498
27804
  class AbstractNavigationDoubleDrawerComponent {
27499
- constructor(_router, _activatedRoute, _breakpoint, _languageService, _translateService, _userService, _accessService, _log, _config, _uriService, _impersonationUserSelect, _impersonation, _dynamicRoutingService) {
27805
+ constructor(_router, _activatedRoute, _breakpoint, _languageService, _translateService, _userService, _accessService, _log, _config, _uriService, _caseResourceService, _impersonationUserSelect, _impersonation, _dynamicRoutingService) {
27500
27806
  this._router = _router;
27501
27807
  this._activatedRoute = _activatedRoute;
27502
27808
  this._breakpoint = _breakpoint;
@@ -27507,6 +27813,7 @@ class AbstractNavigationDoubleDrawerComponent {
27507
27813
  this._log = _log;
27508
27814
  this._config = _config;
27509
27815
  this._uriService = _uriService;
27816
+ this._caseResourceService = _caseResourceService;
27510
27817
  this._impersonationUserSelect = _impersonationUserSelect;
27511
27818
  this._impersonation = _impersonation;
27512
27819
  this._dynamicRoutingService = _dynamicRoutingService;
@@ -27542,6 +27849,7 @@ class AbstractNavigationDoubleDrawerComponent {
27542
27849
  this.nodeLoading$ = new LoadingEmitter();
27543
27850
  this.itemsOrder = MenuOrder.Ascending;
27544
27851
  this.hiddenCustomItems = [];
27852
+ this.moreItems = new Array();
27545
27853
  this._childCustomViews = {};
27546
27854
  }
27547
27855
  ngOnInit() {
@@ -27553,10 +27861,6 @@ class AbstractNavigationDoubleDrawerComponent {
27553
27861
  this.resolveLayout(true);
27554
27862
  }
27555
27863
  });
27556
- if (!this._currentNode) {
27557
- this.leftLoading$.on();
27558
- this.rightLoading$.on();
27559
- }
27560
27864
  this._currentNodeSubscription = this._uriService.activeNode$.subscribe(node => {
27561
27865
  this.currentNode = node;
27562
27866
  });
@@ -27573,8 +27877,9 @@ class AbstractNavigationDoubleDrawerComponent {
27573
27877
  return this._currentNode;
27574
27878
  }
27575
27879
  set currentNode(node) {
27576
- if (node === this._currentNode)
27880
+ if (node === this._currentNode || this.leftLoading$.isActive || this.rightLoading$.isActive) {
27577
27881
  return;
27882
+ }
27578
27883
  this._currentNode = node;
27579
27884
  if (!node)
27580
27885
  return;
@@ -27593,19 +27898,19 @@ class AbstractNavigationDoubleDrawerComponent {
27593
27898
  });
27594
27899
  }
27595
27900
  }
27596
- if (this.leftLoading$.isActive || this.rightLoading$.isActive) {
27597
- this.leftLoading$.off();
27598
- this.rightLoading$.off();
27599
- }
27901
+ this.resolveMenuItems(node);
27902
+ }
27903
+ resolveMenuItems(node) {
27600
27904
  if (this._uriService.isRoot(node)) {
27601
27905
  this.leftItems = [];
27602
27906
  this.loadRightSide();
27603
- return;
27604
27907
  }
27605
- if (!this.leftItems.find(item => { var _a; return ((_a = item.resource.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)) === null || _a === void 0 ? void 0 : _a.value) === node.uriPath; })) {
27606
- this.loadLeftSide();
27908
+ else {
27909
+ if (!this.leftItems.find(item => { var _a, _b; return ((_b = (_a = item.resource) === null || _a === void 0 ? void 0 : _a.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)) === null || _b === void 0 ? void 0 : _b.value) === node.uriPath; })) {
27910
+ this.loadLeftSide();
27911
+ }
27912
+ this.loadRightSide();
27607
27913
  }
27608
- this.loadRightSide();
27609
27914
  }
27610
27915
  ngOnDestroy() {
27611
27916
  var _a, _b;
@@ -27687,7 +27992,10 @@ class AbstractNavigationDoubleDrawerComponent {
27687
27992
  * set to root node.
27688
27993
  * */
27689
27994
  onHomeClick() {
27690
- this.currentNode = this._uriService.root;
27995
+ if (this.leftLoading$.isActive || this.rightLoading$.isActive) {
27996
+ return;
27997
+ }
27998
+ this._uriService.activeNode = this._uriService.root;
27691
27999
  }
27692
28000
  /**
27693
28001
  * On back click, the parent is set to parent of left nodes, that will solve
@@ -27696,29 +28004,32 @@ class AbstractNavigationDoubleDrawerComponent {
27696
28004
  * Current level is set to a lower number in order to set the left side menu.
27697
28005
  * */
27698
28006
  onBackClick() {
27699
- if (this._uriService.isRoot(this._currentNode))
28007
+ if (this.leftLoading$.isActive || this.rightLoading$.isActive || this._uriService.isRoot(this._currentNode)) {
27700
28008
  return;
27701
- this.currentNode = this._currentNode.parent;
28009
+ }
28010
+ this._uriService.activeNode = this._currentNode.parent;
27702
28011
  }
27703
28012
  onItemClick(item) {
27704
28013
  var _a;
27705
- this._uriService.activeNode = this._currentNode;
27706
- if (this.hasItemChildren(item)) {
28014
+ if (this.hasItemChildren(item) && !this.leftLoading$.isActive && !this.rightLoading$.isActive) {
27707
28015
  const path = (_a = item.resource.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)) === null || _a === void 0 ? void 0 : _a.value;
27708
28016
  this._uriService.getNodeByPath(path).subscribe(node => {
27709
- this.currentNode = node;
28017
+ this._uriService.activeNode = node;
27710
28018
  }, error => {
27711
28019
  this._log.error(error);
27712
28020
  });
27713
28021
  }
28022
+ else {
28023
+ this._uriService.activeNode = this._currentNode;
28024
+ }
27714
28025
  }
27715
28026
  hasItemChildren(item) {
27716
- var _a;
27717
- return (_a = item.resource.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_HAS_CHILDREN)) === null || _a === void 0 ? void 0 : _a.value;
28027
+ var _a, _b;
28028
+ return (_b = (_a = item.resource) === null || _a === void 0 ? void 0 : _a.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_HAS_CHILDREN)) === null || _b === void 0 ? void 0 : _b.value;
27718
28029
  }
27719
28030
  isItemAndNodeEqual(item, node) {
27720
- var _a;
27721
- return ((_a = item.resource.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)) === null || _a === void 0 ? void 0 : _a.value) === node.uriPath;
28031
+ var _a, _b;
28032
+ return ((_b = (_a = item.resource) === null || _a === void 0 ? void 0 : _a.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)) === null || _b === void 0 ? void 0 : _b.value) === node.uriPath;
27722
28033
  }
27723
28034
  loadLeftSide() {
27724
28035
  if (this._uriService.isRoot(this._currentNode)) {
@@ -27726,31 +28037,55 @@ class AbstractNavigationDoubleDrawerComponent {
27726
28037
  return;
27727
28038
  }
27728
28039
  this.leftLoading$.on();
27729
- this._uriService.getCasesOfNode(this.currentNode.parent, MENU_IDENTIFIERS, 0, 1).subscribe(page => {
28040
+ this._uriService.getItemCaseByNodePath(this.currentNode.parent).subscribe(page => {
27730
28041
  var _a;
27731
- ((_a = page === null || page === void 0 ? void 0 : page.pagination) === null || _a === void 0 ? void 0 : _a.totalElements) === 0 ? of([]) : this._uriService.getCasesOfNode(this.currentNode.parent, MENU_IDENTIFIERS, 0, page.pagination.totalElements).pipe(map(p => p.content)).subscribe(result => {
27732
- this.leftItems = result.filter(folder => { var _a; return ((_a = folder.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_HAS_CHILDREN)) === null || _a === void 0 ? void 0 : _a.value) === true; }).map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);
27733
- this.leftItems.sort((a, b) => { var _a, _b; return (_a = a === null || a === void 0 ? void 0 : a.navigation) === null || _a === void 0 ? void 0 : _a.title.localeCompare((_b = b === null || b === void 0 ? void 0 : b.navigation) === null || _b === void 0 ? void 0 : _b.title); });
28042
+ let childCases$;
28043
+ let targetItem;
28044
+ let orderedChildCaseIds;
28045
+ if (((_a = page === null || page === void 0 ? void 0 : page.pagination) === null || _a === void 0 ? void 0 : _a.totalElements) === 0) {
28046
+ childCases$ = of([]);
28047
+ }
28048
+ else {
28049
+ targetItem = page.content[0];
28050
+ orderedChildCaseIds = this.extractChildCaseIds(targetItem);
28051
+ childCases$ = this.getItemCasesByIdsInOnePage(orderedChildCaseIds).pipe(map(p => p.content));
28052
+ }
28053
+ childCases$.subscribe(result => {
28054
+ result = result.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);
28055
+ this.leftItems = result.sort((a, b) => orderedChildCaseIds.indexOf(a.resource.stringId) - orderedChildCaseIds.indexOf(b.resource.stringId));
28056
+ this.resolveCustomViewsInLeftSide();
27734
28057
  this.leftLoading$.off();
27735
28058
  }, error => {
27736
28059
  this._log.error(error);
27737
28060
  this.leftItems = [];
28061
+ this.resolveCustomViewsInLeftSide();
27738
28062
  this.leftLoading$.off();
27739
28063
  });
27740
28064
  }, error => {
27741
28065
  this._log.error(error);
27742
28066
  this.leftItems = [];
28067
+ this.resolveCustomViewsInLeftSide();
27743
28068
  this.leftLoading$.off();
27744
28069
  });
27745
28070
  }
27746
28071
  loadRightSide() {
27747
28072
  this.rightLoading$.on();
27748
28073
  this.moreItems = [];
27749
- this._uriService.getCasesOfNode(this.currentNode, MENU_IDENTIFIERS, 0, 1).subscribe(page => {
27750
- var _a, _b;
27751
- this._log.debug('Number of items for uri ' + this._currentNode.uriPath + ': ' + ((_a = page === null || page === void 0 ? void 0 : page.pagination) === null || _a === void 0 ? void 0 : _a.totalElements));
27752
- (((_b = page === null || page === void 0 ? void 0 : page.pagination) === null || _b === void 0 ? void 0 : _b.totalElements) === 0 ? of([]) : this._uriService.getCasesOfNode(this._currentNode, MENU_IDENTIFIERS, 0, page.pagination.totalElements).pipe(map(p => p.content))).subscribe(result => {
27753
- result = result.sort((a, b) => a === null || a === void 0 ? void 0 : a.title.localeCompare(b === null || b === void 0 ? void 0 : b.title));
28074
+ this._uriService.getItemCaseByNodePath(this.currentNode).subscribe(page => {
28075
+ var _a;
28076
+ let childCases$;
28077
+ let targetItem;
28078
+ let orderedChildCaseIds;
28079
+ if (((_a = page === null || page === void 0 ? void 0 : page.pagination) === null || _a === void 0 ? void 0 : _a.totalElements) === 0) {
28080
+ childCases$ = of([]);
28081
+ }
28082
+ else {
28083
+ targetItem = page.content[0];
28084
+ orderedChildCaseIds = this.extractChildCaseIds(targetItem);
28085
+ childCases$ = this.getItemCasesByIdsInOnePage(orderedChildCaseIds).pipe(map(p => p.content));
28086
+ }
28087
+ childCases$.subscribe(result => {
28088
+ result = result.sort((a, b) => orderedChildCaseIds.indexOf(a.stringId) - orderedChildCaseIds.indexOf(b.stringId));
27754
28089
  if (result.length > RIGHT_SIDE_INIT_PAGE_SIZE) {
27755
28090
  const rawRightItems = result.splice(0, RIGHT_SIDE_INIT_PAGE_SIZE);
27756
28091
  this.rightItems = rawRightItems.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);
@@ -27776,6 +28111,23 @@ class AbstractNavigationDoubleDrawerComponent {
27776
28111
  this.rightLoading$.off();
27777
28112
  });
27778
28113
  }
28114
+ extractChildCaseIds(item) {
28115
+ var _a;
28116
+ return (_a = item.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_CHILD_ITEM_IDS)) === null || _a === void 0 ? void 0 : _a.value;
28117
+ }
28118
+ getItemCasesByIdsInOnePage(caseIds) {
28119
+ return this.getItemCasesByIds(caseIds, 0, caseIds.length);
28120
+ }
28121
+ getItemCasesByIds(caseIds, pageNumber, pageSize) {
28122
+ const searchBody = {
28123
+ stringId: caseIds,
28124
+ process: MENU_IDENTIFIERS.map(id => ({ identifier: id }))
28125
+ };
28126
+ let httpParams = new HttpParams()
28127
+ .set(PaginationParams.PAGE_SIZE, pageSize)
28128
+ .set(PaginationParams.PAGE_NUMBER, pageNumber);
28129
+ return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams);
28130
+ }
27779
28131
  loadMoreItems() {
27780
28132
  if (this.moreItems.length > RIGHT_SIDE_NEW_PAGE_SIZE) {
27781
28133
  this.rightItems.push(...this.moreItems.splice(0, RIGHT_SIDE_NEW_PAGE_SIZE));
@@ -27796,15 +28148,22 @@ class AbstractNavigationDoubleDrawerComponent {
27796
28148
  }
27797
28149
  this.rightItems = this.rightItems.sort((a, b) => { var _a, _b; return multiplier * ((_a = a === null || a === void 0 ? void 0 : a.navigation) === null || _a === void 0 ? void 0 : _a.title.localeCompare((_b = b === null || b === void 0 ? void 0 : b.navigation) === null || _b === void 0 ? void 0 : _b.title)); });
27798
28150
  this.leftItems = this.leftItems.sort((a, b) => { var _a, _b; return multiplier * ((_a = a === null || a === void 0 ? void 0 : a.navigation) === null || _a === void 0 ? void 0 : _a.title.localeCompare((_b = b === null || b === void 0 ? void 0 : b.navigation) === null || _b === void 0 ? void 0 : _b.title)); });
27799
- this.moreItems = this.moreItems.sort((a, b) => { var _a, _b; return multiplier * ((_a = a === null || a === void 0 ? void 0 : a.navigation) === null || _a === void 0 ? void 0 : _a.title.localeCompare((_b = b === null || b === void 0 ? void 0 : b.navigation) === null || _b === void 0 ? void 0 : _b.title)); });
27800
28151
  }
27801
28152
  resolveCustomViewsInRightSide() {
27802
28153
  if (!!this._childCustomViews[this._currentNode.uriPath]) {
27803
28154
  this.rightItems.push(...Object.values(this._childCustomViews[this._currentNode.uriPath]));
27804
28155
  }
27805
28156
  }
28157
+ resolveCustomViewsInLeftSide() {
28158
+ if (!!this._childCustomViews[this._currentNode.parent.uriPath]) {
28159
+ this.leftItems.push(...Object.values(this._childCustomViews[this._currentNode.parent.uriPath]));
28160
+ }
28161
+ }
27806
28162
  resolveItemCaseToNavigationItem(itemCase) {
27807
28163
  var _a, _b;
28164
+ if (this.representsRootNode(itemCase)) {
28165
+ return;
28166
+ }
27808
28167
  const item = {
27809
28168
  access: {},
27810
28169
  navigation: {
@@ -27827,6 +28186,9 @@ class AbstractNavigationDoubleDrawerComponent {
27827
28186
  return;
27828
28187
  return item;
27829
28188
  }
28189
+ representsRootNode(item) {
28190
+ return item.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH).value === "/";
28191
+ }
27830
28192
  getTranslation(value) {
27831
28193
  const locale = this._translateService.currentLang.split('-')[0];
27832
28194
  return locale in value.translations ? value.translations[locale] : value.defaultValue;
@@ -27907,7 +28269,7 @@ class AbstractNavigationDoubleDrawerComponent {
27907
28269
  }
27908
28270
  }
27909
28271
  }
27910
- 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 });
28272
+ 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: CaseResourceService }, { token: ImpersonationUserSelectService }, { token: ImpersonationService }, { token: DynamicNavigationRouteProviderService }], target: i0.ɵɵFactoryTarget.Component });
27911
28273
  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 });
27912
28274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractNavigationDoubleDrawerComponent, decorators: [{
27913
28275
  type: Component,
@@ -27915,7 +28277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
27915
28277
  selector: 'ncc-abstract-navigation-double-drawer',
27916
28278
  template: '',
27917
28279
  }]
27918
- }], ctorParameters: function () { return [{ type: i2$3.Router }, { type: i2$3.ActivatedRoute }, { type: i1$7.BreakpointObserver }, { type: LanguageService }, { type: i1$2.TranslateService }, { type: UserService }, { type: AccessService }, { type: LoggerService }, { type: ConfigurationService }, { type: UriService }, { type: ImpersonationUserSelectService }, { type: ImpersonationService }, { type: DynamicNavigationRouteProviderService }]; }, propDecorators: { portalLeftMenu: [{
28280
+ }], ctorParameters: function () { return [{ type: i2$3.Router }, { type: i2$3.ActivatedRoute }, { type: i1$7.BreakpointObserver }, { type: LanguageService }, { type: i1$2.TranslateService }, { type: UserService }, { type: AccessService }, { type: LoggerService }, { type: ConfigurationService }, { type: UriService }, { type: CaseResourceService }, { type: ImpersonationUserSelectService }, { type: ImpersonationService }, { type: DynamicNavigationRouteProviderService }]; }, propDecorators: { portalLeftMenu: [{
27919
28281
  type: Input
27920
28282
  }], portalRightMenu: [{
27921
28283
  type: Input
@@ -28482,7 +28844,7 @@ class FilterExtractionService {
28482
28844
  return filterSegment;
28483
28845
  }
28484
28846
  const rootViewFilter = this.extractViewFilter(rootViewIdField);
28485
- if (rootViewFilter !== undefined) {
28847
+ if (rootViewFilter !== undefined && rootViewFilter.type === filterSegment.type) {
28486
28848
  return filterSegment.merge(rootViewFilter, MergeOperator.AND);
28487
28849
  }
28488
28850
  return filterSegment;
@@ -28674,6 +29036,37 @@ class CaseTreeNode {
28674
29036
  }
28675
29037
  }
28676
29038
 
29039
+ class NetgrifPaginatorIntl {
29040
+ constructor(_translate, _languageService) {
29041
+ this._translate = _translate;
29042
+ this._languageService = _languageService;
29043
+ this.changes = new Subject();
29044
+ this.initTranslations();
29045
+ this._languageService.getLangChange$().subscribe(lang => {
29046
+ this.initTranslations();
29047
+ });
29048
+ }
29049
+ initTranslations() {
29050
+ this.firstPageLabel = this._translate.instant('paginator.firstPage');
29051
+ this.itemsPerPageLabel = this._translate.instant('paginator.itemsPage');
29052
+ this.lastPageLabel = this._translate.instant('paginator.lastPage');
29053
+ this.nextPageLabel = this._translate.instant('paginator.nextPage');
29054
+ this.previousPageLabel = this._translate.instant('paginator.previousPage');
29055
+ }
29056
+ getRangeLabel(page, pageSize, length) {
29057
+ if (length === 0) {
29058
+ return this._translate.instant('paginator.pageOne');
29059
+ }
29060
+ const amountPages = Math.ceil(length / pageSize);
29061
+ return this._translate.instant('paginator.pageAmount', { page: page + 1, amountPages });
29062
+ }
29063
+ }
29064
+ NetgrifPaginatorIntl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NetgrifPaginatorIntl, deps: [{ token: i1$2.TranslateService }, { token: LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
29065
+ NetgrifPaginatorIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NetgrifPaginatorIntl });
29066
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NetgrifPaginatorIntl, decorators: [{
29067
+ type: Injectable
29068
+ }], ctorParameters: function () { return [{ type: i1$2.TranslateService }, { type: LanguageService }]; } });
29069
+
28677
29070
  const NAE_AUTOSWITCH_TAB_TOKEN = new InjectionToken('NaeAutoswitchTabToken');
28678
29071
 
28679
29072
  const NAE_OPEN_EXISTING_TAB = new InjectionToken('NaeOpenExistingTab');
@@ -30136,7 +30529,7 @@ class AbstractCaseListPaginatorComponent extends AbstractDefaultCaseListComponen
30136
30529
  }
30137
30530
  }
30138
30531
  AbstractCaseListPaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractCaseListPaginatorComponent, deps: [{ token: CaseViewService }, { token: LoggerService }, { token: NAE_TAB_DATA, optional: true }, { token: i2$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
30139
- AbstractCaseListPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractCaseListPaginatorComponent, selector: "ncc-abstract-case-list-paginator", usesInheritance: true, ngImport: i0, template: '', isInline: true });
30532
+ AbstractCaseListPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractCaseListPaginatorComponent, selector: "ncc-abstract-case-list-paginator", inputs: { approval: "approval", disabled: "disabled" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
30140
30533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractCaseListPaginatorComponent, decorators: [{
30141
30534
  type: Component,
30142
30535
  args: [{
@@ -30150,7 +30543,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
30150
30543
  type: Inject,
30151
30544
  args: [NAE_TAB_DATA]
30152
30545
  }] }, { type: i2$3.ActivatedRoute }];
30153
- } });
30546
+ }, propDecorators: { approval: [{
30547
+ type: Input
30548
+ }], disabled: [{
30549
+ type: Input
30550
+ }] } });
30154
30551
 
30155
30552
  class AbstractTreeComponent {
30156
30553
  constructor(_treeService) {
@@ -30411,31 +30808,18 @@ class TaskConst {
30411
30808
  }
30412
30809
  TaskConst.TRANSITION_ID = 'transitionId';
30413
30810
  class AbstractSingleTaskViewComponent extends AbstractViewWithHeadersComponent {
30414
- constructor(taskViewService, activatedRoute, async) {
30811
+ constructor(taskViewService, activatedRoute, baseFilter) {
30415
30812
  super(taskViewService, activatedRoute);
30416
30813
  this.taskViewService = taskViewService;
30814
+ this.baseFilter = baseFilter;
30417
30815
  this.initiallyExpanded = true;
30418
30816
  this.preventCollapse = true;
30419
30817
  this.noTaskPresent = new EventEmitter();
30420
- this.taskPanelData = new ReplaySubject(1);
30421
- this.subRoute = this._activatedRoute.paramMap.subscribe(paramMap => {
30422
- var _a;
30423
- if (!!((_a = paramMap === null || paramMap === void 0 ? void 0 : paramMap['params']) === null || _a === void 0 ? void 0 : _a[TaskConst.TRANSITION_ID])) {
30424
- this.transitionId = paramMap['params'][TaskConst.TRANSITION_ID];
30425
- this.subPanelData = this.taskViewService.tasks$.subscribe(tasks => {
30426
- if (!!tasks && tasks.length > 0) {
30427
- this.taskPanelData.next(this.resolveTransitionTask(tasks));
30428
- }
30429
- else {
30430
- const isLoading = async.transform(this.loading$);
30431
- if (!isLoading) {
30432
- this.taskPanelData.next(undefined);
30433
- this.noTaskPresent.next();
30434
- }
30435
- }
30436
- });
30818
+ this.taskPanelData = this.taskViewService.tasks$.pipe(map(tasks => tasks.find(panelData => this.isTaskMatchingFilter(panelData, baseFilter.filter.getRequestBody())))).pipe(tap(panelData => {
30819
+ if (!!panelData) {
30820
+ panelData.initiallyExpanded = true;
30437
30821
  }
30438
- });
30822
+ }));
30439
30823
  this.loading$ = this.taskViewService.loading$;
30440
30824
  }
30441
30825
  ngOnDestroy() {
@@ -30446,22 +30830,15 @@ class AbstractSingleTaskViewComponent extends AbstractViewWithHeadersComponent {
30446
30830
  if (!!this.subPanelData) {
30447
30831
  this.subPanelData.unsubscribe();
30448
30832
  }
30449
- if (!!this.taskPanelData) {
30450
- this.taskPanelData.complete();
30451
- }
30452
30833
  }
30453
30834
  get task$() {
30454
- return this.taskPanelData.asObservable();
30835
+ return this.taskPanelData;
30455
30836
  }
30456
- resolveTransitionTask(tasks) {
30457
- const transitionTask = tasks.find(t => t.task.transitionId === this.transitionId);
30458
- if (!!transitionTask) {
30459
- transitionTask.initiallyExpanded = transitionTask.task.finishDate === undefined;
30460
- }
30461
- return transitionTask;
30837
+ isTaskMatchingFilter(panelData, taskSearchRequestBody) {
30838
+ return panelData.task.stringId === taskSearchRequestBody.stringId || panelData.task.transitionId === taskSearchRequestBody.transitionId;
30462
30839
  }
30463
30840
  }
30464
- 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 });
30841
+ 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 });
30465
30842
  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 });
30466
30843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSingleTaskViewComponent, decorators: [{
30467
30844
  type: Component,
@@ -30469,7 +30846,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
30469
30846
  selector: 'ncc-abstract-single-task-view',
30470
30847
  template: ''
30471
30848
  }]
30472
- }], ctorParameters: function () { return [{ type: TaskViewService }, { type: i2$3.ActivatedRoute }, { type: i5.AsyncPipe }]; }, propDecorators: { initiallyExpanded: [{
30849
+ }], ctorParameters: function () {
30850
+ return [{ type: TaskViewService }, { type: i2$3.ActivatedRoute }, { type: undefined, decorators: [{
30851
+ type: Inject,
30852
+ args: [NAE_BASE_FILTER]
30853
+ }] }];
30854
+ }, propDecorators: { initiallyExpanded: [{
30473
30855
  type: Input
30474
30856
  }], preventCollapse: [{
30475
30857
  type: Input
@@ -31098,7 +31480,7 @@ class AbstractSearchComponent {
31098
31480
  }
31099
31481
  }
31100
31482
  AbstractSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSearchComponent, deps: [{ token: SearchService }, { token: LoggerService }, { token: DialogService }, { token: i1$2.TranslateService }, { token: UserFiltersService }, { token: AllowedNetsService }, { token: ViewIdService }, { token: NAE_SEARCH_CATEGORIES }, { token: NAE_SEARCH_COMPONENT_CONFIGURATION, optional: true }, { token: NAE_FILTERS_FILTER, optional: true }, { token: NAE_NAVIGATION_ITEM_TASK_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
31101
- AbstractSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractSearchComponent, selector: "ncc-abstract-search", inputs: { additionalFilterData: "additionalFilterData", showSearchIcon: "showSearchIcon", showAdvancedSearchHelp: "showAdvancedSearchHelp", showSaveFilterButton: "showSaveFilterButton", showLoadFilterButton: "showLoadFilterButton", initialSearchMode: "initialSearchMode", showSearchToggleButton: "showSearchToggleButton" }, outputs: { filterLoaded: "filterLoaded", filterSaved: "filterSaved" }, ngImport: i0, template: '', isInline: true });
31483
+ AbstractSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractSearchComponent, selector: "ncc-abstract-search", inputs: { disabled: "disabled", additionalFilterData: "additionalFilterData", showSearchIcon: "showSearchIcon", showAdvancedSearchHelp: "showAdvancedSearchHelp", showSaveFilterButton: "showSaveFilterButton", showLoadFilterButton: "showLoadFilterButton", initialSearchMode: "initialSearchMode", showSearchToggleButton: "showSearchToggleButton" }, outputs: { filterLoaded: "filterLoaded", filterSaved: "filterSaved" }, ngImport: i0, template: '', isInline: true });
31102
31484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractSearchComponent, decorators: [{
31103
31485
  type: Component,
31104
31486
  args: [{
@@ -31125,7 +31507,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
31125
31507
  type: Inject,
31126
31508
  args: [NAE_NAVIGATION_ITEM_TASK_DATA]
31127
31509
  }] }];
31128
- }, propDecorators: { additionalFilterData: [{
31510
+ }, propDecorators: { disabled: [{
31511
+ type: Input
31512
+ }], additionalFilterData: [{
31129
31513
  type: Input
31130
31514
  }], filterLoaded: [{
31131
31515
  type: Output
@@ -31158,16 +31542,26 @@ class AbstractFulltextSearchComponent {
31158
31542
  }
31159
31543
  });
31160
31544
  }
31545
+ set disabled(value) {
31546
+ if (value) {
31547
+ this.fullTextFormControl.disable();
31548
+ }
31549
+ else {
31550
+ this.fullTextFormControl.enable();
31551
+ }
31552
+ }
31161
31553
  }
31162
31554
  AbstractFulltextSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFulltextSearchComponent, deps: [{ token: SearchService }], target: i0.ɵɵFactoryTarget.Component });
31163
- AbstractFulltextSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFulltextSearchComponent, selector: "ncc-abstract-fulltext-search", ngImport: i0, template: '', isInline: true });
31555
+ AbstractFulltextSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFulltextSearchComponent, selector: "ncc-abstract-fulltext-search", inputs: { disabled: "disabled" }, ngImport: i0, template: '', isInline: true });
31164
31556
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFulltextSearchComponent, decorators: [{
31165
31557
  type: Component,
31166
31558
  args: [{
31167
31559
  selector: 'ncc-abstract-fulltext-search',
31168
31560
  template: ''
31169
31561
  }]
31170
- }], ctorParameters: function () { return [{ type: SearchService }]; } });
31562
+ }], ctorParameters: function () { return [{ type: SearchService }]; }, propDecorators: { disabled: [{
31563
+ type: Input
31564
+ }] } });
31171
31565
 
31172
31566
  class AbstractAdvancedSearchComponent {
31173
31567
  constructor(_searchService, _initializationService) {
@@ -32515,15 +32909,20 @@ function navigationItemTaskViewDefaultHeadersFactory(navigationItemTaskData) {
32515
32909
  return navigationItemDefaultHeadersFactory(navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_USE_TASK_DEFAULT_HEADERS, GroupNavigationConstants.ITEM_FIELD_ID_TASK_DEFAULT_HEADERS);
32516
32910
  }
32517
32911
  function navigationItemDefaultHeadersFactory(navigationItemTaskData, useFieldId, defaultHeadersFieldId) {
32518
- const isUse = extractFieldValueFromData(navigationItemTaskData, useFieldId);
32519
- if (isUse) {
32520
- const defaultHeaders = extractFieldValueFromData(navigationItemTaskData, defaultHeadersFieldId);
32521
- if (defaultHeaders === undefined || defaultHeaders === "") {
32912
+ try {
32913
+ const isUse = extractFieldValueFromData(navigationItemTaskData, useFieldId);
32914
+ if (isUse) {
32915
+ const defaultHeaders = extractFieldValueFromData(navigationItemTaskData, defaultHeadersFieldId);
32916
+ if (defaultHeaders === undefined || defaultHeaders === "") {
32917
+ return undefined;
32918
+ }
32919
+ return defaultHeaders.split(',');
32920
+ }
32921
+ else {
32522
32922
  return undefined;
32523
32923
  }
32524
- return defaultHeaders.split(',');
32525
32924
  }
32526
- else {
32925
+ catch (e) {
32527
32926
  return undefined;
32528
32927
  }
32529
32928
  }
@@ -33810,7 +34209,7 @@ class MockProfileService {
33810
34209
  * If you want to use an unlimited number of calls use {@link UnlimitedTaskContentService} instead.
33811
34210
  */
33812
34211
  class SingleTaskContentService extends TaskContentService {
33813
- constructor(_fieldConverterService, _snackBarService, _translate, _logger) {
34212
+ constructor(_fieldConverterService, _snackBarService, _translate, _logger, _injector) {
33814
34213
  super(_fieldConverterService, _snackBarService, _translate, _logger);
33815
34214
  this._task$ = new ReplaySubject(1);
33816
34215
  }
@@ -33852,11 +34251,11 @@ class SingleTaskContentService extends TaskContentService {
33852
34251
  }
33853
34252
  }
33854
34253
  }
33855
- 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 });
34254
+ 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 });
33856
34255
  SingleTaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SingleTaskContentService });
33857
34256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SingleTaskContentService, decorators: [{
33858
34257
  type: Injectable
33859
- }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }]; } });
34258
+ }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }, { type: i0.Injector }]; } });
33860
34259
 
33861
34260
  /**
33862
34261
  * Provides an implementation of the {@link TaskContentService} abstract class that allows
@@ -33865,7 +34264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
33865
34264
  * If you want to limit the number of calls to 1 use {@link SingleTaskContentService} instead.
33866
34265
  */
33867
34266
  class UnlimitedTaskContentService extends TaskContentService {
33868
- constructor(_fieldConverterService, _snackBarService, _translate, _logger) {
34267
+ constructor(_fieldConverterService, _snackBarService, _translate, _logger, _injector) {
33869
34268
  super(_fieldConverterService, _snackBarService, _translate, _logger);
33870
34269
  this._task$ = new ReplaySubject(1);
33871
34270
  }
@@ -33899,11 +34298,11 @@ class UnlimitedTaskContentService extends TaskContentService {
33899
34298
  this._task$.complete();
33900
34299
  }
33901
34300
  }
33902
- 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 });
34301
+ 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 });
33903
34302
  UnlimitedTaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UnlimitedTaskContentService });
33904
34303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UnlimitedTaskContentService, decorators: [{
33905
34304
  type: Injectable
33906
- }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }]; } });
34305
+ }], ctorParameters: function () { return [{ type: FieldConverterService }, { type: SnackBarService }, { type: i1$2.TranslateService }, { type: LoggerService }, { type: i0.Injector }]; } });
33907
34306
 
33908
34307
  /**
33909
34308
  * Contains types of elements that are used to construct task content, but are not data fields themselves.
@@ -35114,13 +35513,24 @@ const getNetAndCreateCase = (router, route, process, caseResourceService, snackB
35114
35513
  });
35115
35514
  };
35116
35515
 
35516
+ const CASE_ID = "caseId";
35517
+ const PETRI_NET_ID = "petriNetId";
35518
+ const TRANSITION_ID = "transitionId";
35117
35519
  const publicBaseFilterFactory = (router, route, process, caseResourceService, snackBarService, translate, publicTaskLoadingService) => {
35118
- if (route.snapshot.paramMap.get('caseId') === null && route.snapshot.paramMap.get('petriNetId') !== null) {
35520
+ const caseId = route.snapshot.paramMap.get(CASE_ID);
35521
+ const petriNetId = route.snapshot.paramMap.get(PETRI_NET_ID);
35522
+ const transId = route.snapshot.paramMap.get(TRANSITION_ID);
35523
+ if (caseId === null && petriNetId !== null) {
35119
35524
  getNetAndCreateCase(router, route, process, caseResourceService, snackBarService, translate, publicTaskLoadingService);
35120
35525
  }
35121
- else if (route.snapshot.paramMap.get('caseId') !== null) {
35526
+ else if (caseId !== null && transId !== null) {
35527
+ return {
35528
+ filter: new SimpleFilter('', FilterType.TASK, { case: { id: caseId }, transitionId: transId })
35529
+ };
35530
+ }
35531
+ else if (caseId !== null) {
35122
35532
  return {
35123
- filter: new SimpleFilter('', FilterType.TASK, { case: { id: route.snapshot.paramMap.get('caseId') } })
35533
+ filter: new SimpleFilter('', FilterType.TASK, { case: { id: caseId } })
35124
35534
  };
35125
35535
  }
35126
35536
  return {
@@ -35207,6 +35617,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
35207
35617
 
35208
35618
  /* MODELS */
35209
35619
 
35620
+ const redirectAction = {
35621
+ call: (injector, frontAction) => {
35622
+ const router = injector.get(Router);
35623
+ router.navigate([frontAction.args[0]]);
35624
+ }
35625
+ };
35626
+
35627
+ const validateTaskAction = {
35628
+ call: (injector, frontAction) => {
35629
+ const taskContentService = injector.get(TaskContentService);
35630
+ taskContentService.validateTaskData(frontAction.args[0]);
35631
+ }
35632
+ };
35633
+ const reloadTaskAction = {
35634
+ call: (injector, frontAction) => {
35635
+ const taskDataService = injector.get(TaskDataService);
35636
+ taskDataService.initializeTaskDataFields(new AfterAction(), true);
35637
+ }
35638
+ };
35639
+
35640
+ class FrontActionModule {
35641
+ constructor(frontActionsRegistry) {
35642
+ frontActionsRegistry.register('redirect', redirectAction);
35643
+ frontActionsRegistry.register('validate', validateTaskAction);
35644
+ frontActionsRegistry.register('reloadTask', reloadTaskAction);
35645
+ }
35646
+ }
35647
+ FrontActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, deps: [{ token: FrontActionRegistryService }], target: i0.ɵɵFactoryTarget.NgModule });
35648
+ FrontActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, imports: [CommonModule] });
35649
+ FrontActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, imports: [[
35650
+ CommonModule
35651
+ ]] });
35652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FrontActionModule, decorators: [{
35653
+ type: NgModule,
35654
+ args: [{
35655
+ declarations: [],
35656
+ imports: [
35657
+ CommonModule
35658
+ ]
35659
+ }]
35660
+ }], ctorParameters: function () { return [{ type: FrontActionRegistryService }]; } });
35661
+
35210
35662
  /*
35211
35663
  * Public API Surface of netgrif-components-core
35212
35664
  */
@@ -35215,5 +35667,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
35215
35667
  * Generated bundle index. Do not edit.
35216
35668
  */
35217
35669
 
35218
- 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 };
35670
+ 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, AbstractEnumerationCaseRefComponent, 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, AbstractMultichoiceCaseRefComponent, 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_DATAFIELD, 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, NetgrifPaginatorIntl, 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 };
35219
35671
  //# sourceMappingURL=netgrif-components-core.mjs.map