@valtimo/task 4.15.2 → 4.16.0-next-main.19

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.
@@ -1,21 +1,99 @@
1
1
  import { ɵɵdefineInjectable, ɵɵinject, Injectable, EventEmitter, Component, ViewEncapsulation, ViewChild, Output, NgModule, Input } from '@angular/core';
2
2
  import { HttpClient } from '@angular/common/http';
3
- import { ConfigService } from '@valtimo/config';
3
+ import { ConfigService, ROLE_USER, HttpLoaderFactory } from '@valtimo/config';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
7
7
  import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
8
8
  import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
9
- import { ListModule, PageHeaderModule, WidgetModule, SpinnerModule, SearchableDropdownSelectModule, CamundaFormModule, FormIoModule, ModalModule } from '@valtimo/components';
10
- import { FormioOptionsImpl, TaskList, ROLE_USER, HttpLoaderFactory } from '@valtimo/contract';
9
+ import { FormioOptionsImpl, ListModule, PageHeaderModule, WidgetModule, SpinnerModule, SearchableDropdownSelectModule, CamundaFormModule, FormIoModule, ModalModule } from '@valtimo/components';
11
10
  import { ToastrService, ToastrModule } from 'ngx-toastr';
12
- import { Router, RouterModule } from '@angular/router';
11
+ import { Router, ActivatedRoute, RouterModule } from '@angular/router';
13
12
  import { FormLinkService } from '@valtimo/form-link';
14
13
  import * as momentImported from 'moment';
15
14
  import { NGXLogger } from 'ngx-logger';
15
+ import { take, tap } from 'rxjs/operators';
16
16
  import { combineLatest, BehaviorSubject } from 'rxjs';
17
17
  import { AuthGuardService } from '@valtimo/security';
18
- import { take, tap } from 'rxjs/operators';
18
+
19
+ /*
20
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
21
+ *
22
+ * Licensed under EUPL, Version 1.2 (the "License");
23
+ * you may not use this file except in compliance with the License.
24
+ * You may obtain a copy of the License at
25
+ *
26
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
27
+ *
28
+ * Unless required by applicable law or agreed to in writing, software
29
+ * distributed under the License is distributed on an "AS IS" basis,
30
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31
+ * See the License for the specific language governing permissions and
32
+ * limitations under the License.
33
+ */
34
+
35
+ /*
36
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
37
+ *
38
+ * Licensed under EUPL, Version 1.2 (the "License");
39
+ * you may not use this file except in compliance with the License.
40
+ * You may obtain a copy of the License at
41
+ *
42
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
43
+ *
44
+ * Unless required by applicable law or agreed to in writing, software
45
+ * distributed under the License is distributed on an "AS IS" basis,
46
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
47
+ * See the License for the specific language governing permissions and
48
+ * limitations under the License.
49
+ */
50
+
51
+ /*
52
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
53
+ *
54
+ * Licensed under EUPL, Version 1.2 (the "License");
55
+ * you may not use this file except in compliance with the License.
56
+ * You may obtain a copy of the License at
57
+ *
58
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
59
+ *
60
+ * Unless required by applicable law or agreed to in writing, software
61
+ * distributed under the License is distributed on an "AS IS" basis,
62
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
63
+ * See the License for the specific language governing permissions and
64
+ * limitations under the License.
65
+ */
66
+ class TaskList {
67
+ constructor() {
68
+ this.tasks = [];
69
+ this.fields = [];
70
+ this.pagination = {
71
+ collectionSize: 0,
72
+ page: 1,
73
+ size: 10,
74
+ maxPaginationItemSize: 5,
75
+ };
76
+ this.page = 0;
77
+ }
78
+ }
79
+
80
+ /*
81
+ *
82
+ * * Copyright 2015-2020 Ritense BV, the Netherlands.
83
+ * *
84
+ * * Licensed under EUPL, Version 1.2 (the "License");
85
+ * * you may not use this file except in compliance with the License.
86
+ * * You may obtain a copy of the License at
87
+ * *
88
+ * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
89
+ * *
90
+ * * Unless required by applicable law or agreed to in writing, software
91
+ * * distributed under the License is distributed on an "AS IS" basis,
92
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
93
+ * * See the License for the specific language governing permissions and
94
+ * * limitations under the License.
95
+ *
96
+ */
19
97
 
20
98
  /*
21
99
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -58,7 +136,7 @@ class TaskService {
58
136
  completeTask(id, variables) {
59
137
  return this.http.post(this.valtimoEndpointUri + 'task/' + id + '/complete', {
60
138
  variables: variables,
61
- filesToDelete: []
139
+ filesToDelete: [],
62
140
  });
63
141
  }
64
142
  }
@@ -89,11 +167,12 @@ TaskService.ctorParameters = () => [
89
167
  const moment = momentImported;
90
168
  moment.locale(localStorage.getItem('langKey') || '');
91
169
  class TaskDetailModalComponent {
92
- constructor(toastr, formLinkService, router, logger) {
170
+ constructor(toastr, formLinkService, router, logger, route) {
93
171
  this.toastr = toastr;
94
172
  this.formLinkService = formLinkService;
95
173
  this.router = router;
96
174
  this.logger = logger;
175
+ this.route = route;
97
176
  this.task = null;
98
177
  this.page = null;
99
178
  this.formSubmit = new EventEmitter();
@@ -111,12 +190,12 @@ class TaskDetailModalComponent {
111
190
  this.task = task;
112
191
  this.page = {
113
192
  title: task.name,
114
- subtitle: `Created ${moment(task.created).fromNow()}`
193
+ subtitle: `Created ${moment(task.created).fromNow()}`,
115
194
  };
116
195
  this.formLinkService
117
196
  .getPreFilledFormDefinitionByFormLinkId(task.processDefinitionKey, task.businessKey, task.taskDefinitionKey, task.id // taskInstanceId
118
197
  )
119
- .subscribe((formDefinition) => {
198
+ .subscribe(formDefinition => {
120
199
  this.formAssociation = formDefinition.formAssociation;
121
200
  const className = this.formAssociation.formLink.className.split('.');
122
201
  const linkType = className[className.length - 1];
@@ -130,12 +209,18 @@ class TaskDetailModalComponent {
130
209
  window.open(url, '_blank');
131
210
  break;
132
211
  case 'BpmnElementAngularStateUrlLink':
133
- this.router.navigate([formDefinition.formAssociation.formLink.url]);
212
+ this.route.params.pipe(take(1)).subscribe(params => {
213
+ const taskId = task === null || task === void 0 ? void 0 : task.id;
214
+ const documentId = params === null || params === void 0 ? void 0 : params.documentId;
215
+ this.router.navigate([formDefinition.formAssociation.formLink.url], {
216
+ state: Object.assign(Object.assign({}, (taskId && { taskId })), (documentId && { documentId })),
217
+ });
218
+ });
134
219
  break;
135
220
  default:
136
221
  this.logger.fatal('Unsupported class name');
137
222
  }
138
- }, (errors) => {
223
+ }, errors => {
139
224
  var _a;
140
225
  if ((_a = errors === null || errors === void 0 ? void 0 : errors.error) === null || _a === void 0 ? void 0 : _a.detail) {
141
226
  this.errorMessage = errors.error.detail;
@@ -155,7 +240,7 @@ class TaskDetailModalComponent {
155
240
  this.modal.hide();
156
241
  this.task = null;
157
242
  this.formSubmit.emit();
158
- }, (errors) => {
243
+ }, errors => {
159
244
  this.form.showErrors(errors);
160
245
  });
161
246
  }
@@ -163,7 +248,7 @@ class TaskDetailModalComponent {
163
248
  TaskDetailModalComponent.decorators = [
164
249
  { type: Component, args: [{
165
250
  selector: 'valtimo-task-detail-modal',
166
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #taskDetailModal\n elementId=\"taskDetailModal\"\n [title]=\"page?.title\"\n [subtitle]=\"page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && !errorMessage\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\" [translate]=\"'formManagement.noFormDefinitionFound'\"></div>\n </div>\n <div body *ngIf=\"errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!formDefinition\">\n <button class=\"btn btn-secondary btn-space\" type=\"button\" (click)=\"gotoFormLinkScreen()\" id=\"form-link-button\">\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeEmail]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n</ng-template>\n",
251
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #taskDetailModal\n elementId=\"taskDetailModal\"\n [title]=\"page?.title\"\n [subtitle]=\"page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && !errorMessage\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFound'\"\n ></div>\n </div>\n <div body *ngIf=\"errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!formDefinition\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeEmail]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n</ng-template>\n",
167
252
  encapsulation: ViewEncapsulation.None,
168
253
  styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#taskDetailModal .formio-component-submit{text-align:right}"]
169
254
  },] }
@@ -172,7 +257,8 @@ TaskDetailModalComponent.ctorParameters = () => [
172
257
  { type: ToastrService },
173
258
  { type: FormLinkService },
174
259
  { type: Router },
175
- { type: NGXLogger }
260
+ { type: NGXLogger },
261
+ { type: ActivatedRoute }
176
262
  ];
177
263
  TaskDetailModalComponent.propDecorators = {
178
264
  form: [{ type: ViewChild, args: ['form',] }],
@@ -207,7 +293,7 @@ class TaskListComponent {
207
293
  this.tasks = {
208
294
  mine: new TaskList(),
209
295
  open: new TaskList(),
210
- all: new TaskList()
296
+ all: new TaskList(),
211
297
  };
212
298
  this.currentTaskType = 'mine';
213
299
  this.listTitle = null;
@@ -218,7 +304,10 @@ class TaskListComponent {
218
304
  this.getTasks(type);
219
305
  }
220
306
  paginationSet() {
221
- this.tasks.mine.pagination.size = this.tasks.all.pagination.size = this.tasks.open.pagination.size = this.tasks[this.currentTaskType].pagination.size;
307
+ this.tasks.mine.pagination.size =
308
+ this.tasks.all.pagination.size =
309
+ this.tasks.open.pagination.size =
310
+ this.tasks[this.currentTaskType].pagination.size;
222
311
  this.getTasks(this.currentTaskType);
223
312
  }
224
313
  clearPagination(type) {
@@ -247,18 +336,26 @@ class TaskListComponent {
247
336
  let params;
248
337
  this.translationSubscription = combineLatest([
249
338
  this.translateService.stream(`task-list.${type}.title`),
250
- this.translateService.stream(`task-list.${type}.description`)
339
+ this.translateService.stream(`task-list.${type}.description`),
251
340
  ]).subscribe(([title, description]) => {
252
341
  this.listTitle = title;
253
342
  this.listDescription = description;
254
343
  });
255
344
  switch (type) {
256
345
  case 'mine':
257
- params = { page: this.tasks.mine.page, size: this.tasks.mine.pagination.size, filter: 'mine' };
346
+ params = {
347
+ page: this.tasks.mine.page,
348
+ size: this.tasks.mine.pagination.size,
349
+ filter: 'mine',
350
+ };
258
351
  this.currentTaskType = 'mine';
259
352
  break;
260
353
  case 'open':
261
- params = { page: this.tasks.open.page, size: this.tasks.open.pagination.size, filter: 'open' };
354
+ params = {
355
+ page: this.tasks.open.page,
356
+ size: this.tasks.open.pagination.size,
357
+ filter: 'open',
358
+ };
262
359
  this.currentTaskType = 'open';
263
360
  break;
264
361
  case 'all':
@@ -280,20 +377,20 @@ class TaskListComponent {
280
377
  this.tasks[type].fields = [
281
378
  {
282
379
  key: 'created',
283
- label: 'Created on'
380
+ label: 'Created on',
284
381
  },
285
382
  {
286
383
  key: 'name',
287
- label: 'Name'
384
+ label: 'Name',
288
385
  },
289
386
  {
290
387
  key: 'valtimoAssignee.fullName',
291
- label: 'Assignee'
388
+ label: 'Assignee',
292
389
  },
293
390
  {
294
391
  key: 'due',
295
- label: 'Due date'
296
- }
392
+ label: 'Due date',
393
+ },
297
394
  ];
298
395
  });
299
396
  }
@@ -348,19 +445,16 @@ const routes = [
348
445
  path: 'tasks',
349
446
  component: TaskListComponent,
350
447
  canActivate: [AuthGuardService],
351
- data: ɵ0
352
- }
448
+ data: ɵ0,
449
+ },
353
450
  ];
354
451
  class TaskRoutingModule {
355
452
  }
356
453
  TaskRoutingModule.decorators = [
357
454
  { type: NgModule, args: [{
358
455
  declarations: [],
359
- imports: [
360
- CommonModule,
361
- RouterModule.forChild(routes),
362
- ],
363
- exports: [RouterModule]
456
+ imports: [CommonModule, RouterModule.forChild(routes)],
457
+ exports: [RouterModule],
364
458
  },] }
365
459
  ];
366
460
 
@@ -416,7 +510,10 @@ class AssignUserToTaskComponent {
416
510
  }
417
511
  assignTask(userEmail) {
418
512
  this.disable();
419
- combineLatest([this.candidateUsersForTask$, this.taskService.assignTask(this.taskId, { assignee: userEmail })])
513
+ combineLatest([
514
+ this.candidateUsersForTask$,
515
+ this.taskService.assignTask(this.taskId, { assignee: userEmail }),
516
+ ])
420
517
  .pipe(take(1), tap(([candidateUsers]) => {
421
518
  this.userEmailToAssign = userEmail;
422
519
  this.assignedEmailOnServer$.next(userEmail);
@@ -468,7 +565,7 @@ class AssignUserToTaskComponent {
468
565
  AssignUserToTaskComponent.decorators = [
469
566
  { type: Component, args: [{
470
567
  selector: 'valtimo-assign-user-to-task',
471
- template: "<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n emailOnServer: assignedEmailOnServer$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngIf=\"obs.candidateUsers; else loading\">\n <valtimo-searchable-dropdown-select\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userEmailToAssign === obs.emailOnServer && obs.emailOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5><b>{{'assignTask.fetchingUsers' | translate}}</b></h5>\n</ng-template>\n\n",
568
+ template: "<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n emailOnServer: assignedEmailOnServer$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngIf=\"obs.candidateUsers; else loading\">\n <valtimo-searchable-dropdown-select\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userEmailToAssign === obs.emailOnServer && obs.emailOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n",
472
569
  styles: [".container-fluid{color:#959595}i{font-size:13px}"]
473
570
  },] }
474
571
  ];
@@ -515,20 +612,20 @@ TaskModule.decorators = [
515
612
  FormsModule,
516
613
  ToastrModule.forRoot({
517
614
  positionClass: 'toast-bottom-full-width',
518
- preventDuplicates: true
615
+ preventDuplicates: true,
519
616
  }),
520
617
  TranslateModule.forRoot({
521
618
  loader: {
522
619
  provide: TranslateLoader,
523
620
  useFactory: ɵ0$1,
524
- deps: [HttpClient]
525
- }
621
+ deps: [HttpClient],
622
+ },
526
623
  }),
527
624
  NgbModule,
528
625
  FormIoModule,
529
- ModalModule
626
+ ModalModule,
530
627
  ],
531
- exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent]
628
+ exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],
532
629
  },] }
533
630
  ];
534
631
 
@@ -552,5 +649,5 @@ TaskModule.decorators = [
552
649
  * Generated bundle index. Do not edit.
553
650
  */
554
651
 
555
- export { TaskDetailModalComponent, TaskListComponent, TaskModule, TaskService, ɵ0$1 as ɵ0, AssignUserToTaskComponent as ɵa, TaskRoutingModule as ɵb };
652
+ export { TaskDetailModalComponent, TaskList, TaskListComponent, TaskModule, TaskService, ɵ0$1 as ɵ0, AssignUserToTaskComponent as ɵa, TaskRoutingModule as ɵb };
556
653
  //# sourceMappingURL=valtimo-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-task.js","sources":["../../../../projects/valtimo/task/src/lib/task.service.ts","../../../../projects/valtimo/task/src/lib/task-detail-modal/task-detail-modal.component.ts","../../../../projects/valtimo/task/src/lib/task-list/task-list.component.ts","../../../../projects/valtimo/task/src/lib/task-routing.module.ts","../../../../projects/valtimo/task/src/lib/assign-user-to-task/assign-user-to-task.component.ts","../../../../projects/valtimo/task/src/lib/task.module.ts","../../../../projects/valtimo/task/src/public_api.ts","../../../../projects/valtimo/task/src/valtimo-task.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {AssigneeRequest, Task, User} from '@valtimo/contract';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({providedIn: 'root'})\nexport class TaskService {\n private valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n queryTasks(params?: any): Observable<any> {\n return this.http.get(`${this.valtimoEndpointUri}task`, {observe: 'response', params: params});\n }\n\n getTasks(): Observable<Task[]> {\n return this.http.get<Task[]>(`${this.valtimoEndpointUri}task?filter=all`);\n }\n\n getTask(id: string): Observable<any> {\n return this.http.get(this.valtimoEndpointUri + 'task/' + id);\n }\n\n getCandidateUsers(id: string): Observable<User[]> {\n return this.http.get<User[]>(this.valtimoEndpointUri + 'task/' + id + '/candidate-user');\n }\n\n assignTask(id: string, assigneeRequest: AssigneeRequest): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'task/' + id + '/assign',\n assigneeRequest\n );\n }\n\n unassignTask(id: string): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'task/' + id + '/unassign',\n null\n );\n }\n\n completeTask(id: string, variables: Map<string, any>): Observable<any> {\n return this.http.post(\n this.valtimoEndpointUri + 'task/' + id + '/complete',\n {\n variables: variables,\n filesToDelete: []\n });\n }\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {FormioComponent, ModalComponent} from '@valtimo/components';\nimport {FormAssociation, FormioSubmission, FormSubmissionResult, Task} from '@valtimo/contract';\nimport {FormLinkService} from '@valtimo/form-link';\nimport {FormioForm} from 'angular-formio';\nimport * as momentImported from 'moment';\nimport {NGXLogger} from 'ngx-logger';\nimport {ToastrService} from 'ngx-toastr';\nimport {FormioOptionsImpl, ValtimoFormioOptions} from '@valtimo/contract';\n\nconst moment = momentImported;\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-detail-modal',\n templateUrl: './task-detail-modal.component.html',\n styleUrls: ['./task-detail-modal.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TaskDetailModalComponent {\n public task: Task | null = null;\n public formDefinition: FormioForm;\n public page: any = null;\n public formioOptions: ValtimoFormioOptions;\n\n @ViewChild('form') form: FormioComponent;\n @ViewChild('taskDetailModal') modal: ModalComponent;\n @Output() formSubmit = new EventEmitter();\n @Output() assignmentOfTaskChanged = new EventEmitter();\n private formAssociation: FormAssociation;\n public errorMessage: String = null;\n\n constructor(private toastr: ToastrService,\n private formLinkService: FormLinkService,\n private router: Router,\n private logger: NGXLogger) {\n this.formioOptions = new FormioOptionsImpl();\n this.formioOptions.disableAlerts = true;\n }\n\n resetFormDefinition() {\n // reset formDefinition in order to reload form-io component\n this.formDefinition = null;\n }\n\n openTaskDetails(task: Task) {\n this.resetFormDefinition();\n this.task = task;\n this.page = {\n title: task.name,\n subtitle: `Created ${moment(task.created).fromNow()}`\n };\n this.formLinkService\n .getPreFilledFormDefinitionByFormLinkId(\n task.processDefinitionKey,\n task.businessKey,\n task.taskDefinitionKey,\n task.id // taskInstanceId\n )\n .subscribe(\n (formDefinition) => {\n this.formAssociation = formDefinition.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinition;\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(this.router.createUrlTree([formDefinition.formAssociation.formLink.url]));\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.router.navigate([formDefinition.formAssociation.formLink.url]);\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n },\n (errors) => {\n if (errors?.error?.detail) {\n this.errorMessage = errors.error.detail;\n }\n this.modal.show();\n }\n );\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links']);\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formLinkService\n .onSubmit(this.task.processDefinitionKey, this.formAssociation.formLink.id, submission.data, this.task.businessKey, this.task.id)\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.toastr.success(this.task.name + ' has successfully been completed');\n this.modal.hide();\n this.task = null;\n this.formSubmit.emit();\n },\n (errors) => {\n this.form.showErrors(errors);\n }\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TaskService} from '../task.service';\nimport * as moment_ from 'moment';\nimport {Task, TaskList} from '@valtimo/contract';\nimport {NGXLogger} from 'ngx-logger';\nimport {TaskDetailModalComponent} from '../task-detail-modal/task-detail-modal.component';\nimport {TranslateService} from '@ngx-translate/core';\nimport {combineLatest, Subscription} from 'rxjs';\n\nconst moment = moment_;\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-list',\n templateUrl: './task-list.component.html',\n styleUrls: ['./task-list.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TaskListComponent implements OnDestroy {\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n public tasks = {\n mine: new TaskList(),\n open: new TaskList(),\n all: new TaskList()\n };\n public currentTaskType = 'mine';\n public listTitle: string | null = null;\n public listDescription: string | null = null;\n private translationSubscription: Subscription;\n\n public paginationClicked(page: number, type: string) {\n this.tasks[type].page = page - 1;\n this.getTasks(type);\n }\n\n constructor(\n private taskService: TaskService,\n private router: Router,\n private logger: NGXLogger,\n private translateService: TranslateService\n ) {\n }\n\n paginationSet() {\n this.tasks.mine.pagination.size = this.tasks.all.pagination.size = this.tasks.open.pagination.size = this.tasks[\n this.currentTaskType\n ].pagination.size;\n this.getTasks(this.currentTaskType);\n }\n\n private clearPagination(type: string) {\n this.tasks[type].page = 0;\n }\n\n tabChange(tab) {\n this.clearPagination(this.currentTaskType);\n switch (tab.nextId) {\n case 'ngb-tab-0':\n this.getTasks('mine');\n break;\n case 'ngb-tab-1':\n this.getTasks('open');\n break;\n case 'ngb-tab-2':\n this.getTasks('all');\n break;\n default:\n this.logger.fatal('Unreachable case');\n }\n }\n\n showTask(task) {\n this.router.navigate(['tasks', task.id]);\n }\n\n getTasks(type: string) {\n let params: any;\n\n this.translationSubscription = combineLatest([\n this.translateService.stream(`task-list.${type}.title`),\n this.translateService.stream(`task-list.${type}.description`)\n ]).subscribe(([title, description]) => {\n this.listTitle = title;\n this.listDescription = description;\n });\n\n switch (type) {\n case 'mine':\n params = {page: this.tasks.mine.page, size: this.tasks.mine.pagination.size, filter: 'mine'};\n this.currentTaskType = 'mine';\n break;\n case 'open':\n params = {page: this.tasks.open.page, size: this.tasks.open.pagination.size, filter: 'open'};\n this.currentTaskType = 'open';\n break;\n case 'all':\n params = {page: this.tasks.all.page, size: this.tasks.open.pagination.size, filter: 'all'};\n this.currentTaskType = 'all';\n break;\n default:\n this.logger.fatal('Unreachable case');\n }\n\n this.taskService.queryTasks(params).subscribe((results: any) => {\n this.tasks[type].pagination.collectionSize = results.headers.get('x-total-count');\n this.tasks[type].tasks = <Task[]>results.body;\n this.tasks[type].tasks.map((task: Task) => {\n task.created = moment(task.created).format('DD MMM YYYY HH:mm');\n if (task.due) {\n task.due = moment(task.due).format('DD MMM YYYY HH:mm');\n }\n });\n this.tasks[type].fields = [\n {\n key: 'created',\n label: 'Created on'\n },\n {\n key: 'name',\n label: 'Name'\n },\n {\n key: 'valtimoAssignee.fullName',\n label: 'Assignee'\n },\n {\n key: 'due',\n label: 'Due date'\n }\n ];\n });\n }\n\n public rowOpenTaskClick(task) {\n if (!task.endTime) {\n this.taskDetail.openTaskDetails(task);\n } else {\n return false;\n }\n }\n\n ngOnDestroy(): void {\n this.translationSubscription.unsubscribe();\n }\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TaskListComponent} from './task-list/task-list.component';\nimport {ROLE_USER} from '@valtimo/contract';\n\nconst routes: Routes = [\n {\n path: 'tasks',\n component: TaskListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Tasks', roles: [ROLE_USER]}\n }\n];\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n RouterModule.forChild(routes),\n ],\n exports: [RouterModule]\n})\nexport class TaskRoutingModule {\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {DropdownItem, User} from '@valtimo/contract';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {take, tap} from 'rxjs/operators';\nimport {TaskService} from '../task.service';\n\n@Component({\n selector: 'valtimo-assign-user-to-task',\n templateUrl: './assign-user-to-task.component.html',\n styleUrls: ['./assign-user-to-task.component.scss']\n})\nexport class AssignUserToTaskComponent implements OnInit, OnChanges {\n @Input() taskId: string;\n @Input() assigneeEmail: string;\n @Output() assignmentOfTaskChanged = new EventEmitter();\n\n candidateUsersForTask$ = new BehaviorSubject<User[]>(undefined);\n disabled$ = new BehaviorSubject<boolean>(true);\n assignedEmailOnServer$ = new BehaviorSubject<string>(null);\n userEmailToAssign: string = null;\n assignedUserFullName$ = new BehaviorSubject<string>(null);\n\n constructor(private taskService: TaskService) {}\n\n ngOnInit(): void {\n this.taskService.getCandidateUsers(this.taskId).subscribe(candidateUsers => {\n this.candidateUsersForTask$.next(candidateUsers);\n if (this.assigneeEmail) {\n this.assignedEmailOnServer$.next(this.assigneeEmail);\n this.userEmailToAssign = this.assigneeEmail;\n this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers, this.assigneeEmail));\n }\n this.enable();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const assigneeEmail = changes.assigneeEmail;\n if (assigneeEmail) {\n this.candidateUsersForTask$.pipe(take(1)).subscribe(candidateUsers => {\n const currentUserEmail = assigneeEmail.currentValue;\n this.assignedEmailOnServer$.next(currentUserEmail || null);\n this.userEmailToAssign = currentUserEmail || null;\n this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers, currentUserEmail));\n });\n } else {\n this.clear();\n }\n }\n\n assignTask(userEmail: string): void {\n this.disable();\n combineLatest([this.candidateUsersForTask$, this.taskService.assignTask(this.taskId, {assignee: userEmail})])\n .pipe(\n take(1),\n tap(([candidateUsers]) => {\n this.userEmailToAssign = userEmail;\n this.assignedEmailOnServer$.next(userEmail);\n this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers, userEmail));\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n unassignTask(): void {\n this.disable();\n this.taskService\n .unassignTask(this.taskId)\n .pipe(\n tap(() => {\n this.clear();\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n getAssignedUserName(users: User[], userEmail: string): string {\n if (users && userEmail) {\n const findUser = users.find(user => user.email === userEmail);\n return findUser ? findUser.fullName : '';\n }\n return '';\n }\n\n mapUsersForDropdown(users: User[]): DropdownItem[] {\n return (\n users &&\n users\n .map(user => ({...user, lastName: user.lastName?.split(' ').splice(-1)[0] || ''}))\n .sort((a, b) => a.lastName.localeCompare(b.lastName))\n .map(user => ({text: user.fullName, id: user.email}))\n );\n }\n\n private clear(): void {\n this.assignedEmailOnServer$.next(null);\n this.userEmailToAssign = null;\n }\n\n private emitChange(): void {\n this.assignmentOfTaskChanged.emit();\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport {\n CamundaFormModule,\n FormIoModule,\n ListModule,\n ModalModule,\n PageHeaderModule,\n SpinnerModule,\n WidgetModule,\n SearchableDropdownSelectModule\n} from '@valtimo/components';\nimport { HttpLoaderFactory } from '@valtimo/contract';\nimport { ToastrModule } from 'ngx-toastr';\nimport { TaskDetailModalComponent } from './task-detail-modal/task-detail-modal.component';\nimport { TaskListComponent } from './task-list/task-list.component';\nimport { TaskRoutingModule } from './task-routing.module';\nimport { AssignUserToTaskComponent } from './assign-user-to-task/assign-user-to-task.component';\n\n@NgModule({\n declarations: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n imports: [\n CommonModule,\n TaskRoutingModule,\n ListModule,\n PageHeaderModule,\n WidgetModule,\n SpinnerModule,\n SearchableDropdownSelectModule,\n CamundaFormModule,\n BrowserAnimationsModule,\n FormsModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-full-width',\n preventDuplicates: true\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n NgbModule,\n FormIoModule,\n ModalModule\n ],\n exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent]\n})\nexport class TaskModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of task\n */\n\nexport * from './lib/task.service';\nexport * from './lib/task.module';\nexport * from './lib/task-detail-modal/task-detail-modal.component';\nexport * from './lib/task-list/task-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {AssignUserToTaskComponent as ɵa} from './lib/assign-user-to-task/assign-user-to-task.component';\nexport {TaskRoutingModule as ɵb} from './lib/task-routing.module';"],"names":["moment","moment_"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-task.js","sources":["../../../../projects/valtimo/task/src/lib/models/task.model.ts","../../../../projects/valtimo/task/src/lib/models/task-definition.model.ts","../../../../projects/valtimo/task/src/lib/models/task-list.model.ts","../../../../projects/valtimo/task/src/lib/models/index.ts","../../../../projects/valtimo/task/src/lib/task.service.ts","../../../../projects/valtimo/task/src/lib/task-detail-modal/task-detail-modal.component.ts","../../../../projects/valtimo/task/src/lib/task-list/task-list.component.ts","../../../../projects/valtimo/task/src/lib/task-routing.module.ts","../../../../projects/valtimo/task/src/lib/assign-user-to-task/assign-user-to-task.component.ts","../../../../projects/valtimo/task/src/lib/task.module.ts","../../../../projects/valtimo/task/src/public_api.ts","../../../../projects/valtimo/task/src/valtimo-task.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {User} from '@valtimo/config';\n\nexport interface Task {\n assignee: string;\n caseDefinitionId: string;\n caseExecutionId: string;\n caseInstanceId: string;\n created: string;\n delegationState: any;\n description: string;\n due: string;\n executionId: string;\n followUp: any;\n formKey: string;\n formless: boolean;\n id: string;\n listItemFields: ListItemField[];\n name: string;\n owner: string;\n parentTaskId: string;\n priority: number;\n processDefinitionId: string;\n processInstanceId: string;\n suspended: boolean;\n taskDefinitionKey: string;\n tenantId: string;\n formLocation: string;\n businessKey: string;\n processDefinitionKey: string;\n valtimoAssignee: User;\n}\n\nexport interface ListItemField {\n key: string;\n value: string;\n label: string;\n}\n\nexport interface AssigneeRequest {\n assignee: string;\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormDefinition} from '@valtimo/form-management';\n\nexport interface TaskDefinition {\n id: string;\n name: string;\n formDefinition: FormDefinition | null;\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class TaskList {\n public tasks = [];\n fields = [];\n pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n };\n page = 0;\n}\n","/*\n *\n * * Copyright 2015-2020 Ritense BV, the Netherlands.\n * *\n * * Licensed under EUPL, Version 1.2 (the \"License\");\n * * you may not use this file except in compliance with the License.\n * * You may obtain a copy of the License at\n * *\n * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n * *\n * * Unless required by applicable law or agreed to in writing, software\n * * distributed under the License is distributed on an \"AS IS\" basis,\n * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * * See the License for the specific language governing permissions and\n * * limitations under the License.\n *\n */\n\nexport * from './task.model';\nexport * from './task-definition.model';\nexport * from './task-list.model';\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {AssigneeRequest, Task} from './models';\nimport {ConfigService, User} from '@valtimo/config';\n\n@Injectable({providedIn: 'root'})\nexport class TaskService {\n private valtimoEndpointUri: string;\n\n constructor(private http: HttpClient, configService: ConfigService) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n queryTasks(params?: any): Observable<any> {\n return this.http.get(`${this.valtimoEndpointUri}task`, {observe: 'response', params: params});\n }\n\n getTasks(): Observable<Task[]> {\n return this.http.get<Task[]>(`${this.valtimoEndpointUri}task?filter=all`);\n }\n\n getTask(id: string): Observable<any> {\n return this.http.get(this.valtimoEndpointUri + 'task/' + id);\n }\n\n getCandidateUsers(id: string): Observable<User[]> {\n return this.http.get<User[]>(this.valtimoEndpointUri + 'task/' + id + '/candidate-user');\n }\n\n assignTask(id: string, assigneeRequest: AssigneeRequest): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'task/' + id + '/assign', assigneeRequest);\n }\n\n unassignTask(id: string): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'task/' + id + '/unassign', null);\n }\n\n completeTask(id: string, variables: Map<string, any>): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'task/' + id + '/complete', {\n variables: variables,\n filesToDelete: [],\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {FormioComponent, ModalComponent} from '@valtimo/components';\nimport {Task} from '../models';\nimport {FormioSubmission, ValtimoFormioOptions, FormioOptionsImpl} from '@valtimo/components';\nimport {FormSubmissionResult, FormAssociation, FormLinkService} from '@valtimo/form-link';\nimport {FormioForm} from 'angular-formio';\nimport * as momentImported from 'moment';\nimport {NGXLogger} from 'ngx-logger';\nimport {ToastrService} from 'ngx-toastr';\nimport {take} from 'rxjs/operators';\n\nconst moment = momentImported;\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-detail-modal',\n templateUrl: './task-detail-modal.component.html',\n styleUrls: ['./task-detail-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TaskDetailModalComponent {\n public task: Task | null = null;\n public formDefinition: FormioForm;\n public page: any = null;\n public formioOptions: ValtimoFormioOptions;\n\n @ViewChild('form') form: FormioComponent;\n @ViewChild('taskDetailModal') modal: ModalComponent;\n @Output() formSubmit = new EventEmitter();\n @Output() assignmentOfTaskChanged = new EventEmitter();\n private formAssociation: FormAssociation;\n public errorMessage: String = null;\n\n constructor(\n private readonly toastr: ToastrService,\n private readonly formLinkService: FormLinkService,\n private readonly router: Router,\n private readonly logger: NGXLogger,\n private readonly route: ActivatedRoute\n ) {\n this.formioOptions = new FormioOptionsImpl();\n this.formioOptions.disableAlerts = true;\n }\n\n resetFormDefinition() {\n // reset formDefinition in order to reload form-io component\n this.formDefinition = null;\n }\n\n openTaskDetails(task: Task) {\n this.resetFormDefinition();\n this.task = task;\n this.page = {\n title: task.name,\n subtitle: `Created ${moment(task.created).fromNow()}`,\n };\n this.formLinkService\n .getPreFilledFormDefinitionByFormLinkId(\n task.processDefinitionKey,\n task.businessKey,\n task.taskDefinitionKey,\n task.id // taskInstanceId\n )\n .subscribe(\n formDefinition => {\n this.formAssociation = formDefinition.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinition;\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([formDefinition.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.route.params.pipe(take(1)).subscribe(params => {\n const taskId = task?.id;\n const documentId = params?.documentId;\n\n this.router.navigate([formDefinition.formAssociation.formLink.url], {\n state: {\n ...(taskId && {taskId}),\n ...(documentId && {documentId}),\n },\n });\n });\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n },\n errors => {\n if (errors?.error?.detail) {\n this.errorMessage = errors.error.detail;\n }\n this.modal.show();\n }\n );\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links']);\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formLinkService\n .onSubmit(\n this.task.processDefinitionKey,\n this.formAssociation.formLink.id,\n submission.data,\n this.task.businessKey,\n this.task.id\n )\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.toastr.success(this.task.name + ' has successfully been completed');\n this.modal.hide();\n this.task = null;\n this.formSubmit.emit();\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TaskService} from '../task.service';\nimport * as moment_ from 'moment';\nimport {Task, TaskList} from '../models';\nimport {NGXLogger} from 'ngx-logger';\nimport {TaskDetailModalComponent} from '../task-detail-modal/task-detail-modal.component';\nimport {TranslateService} from '@ngx-translate/core';\nimport {combineLatest, Subscription} from 'rxjs';\n\nconst moment = moment_;\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-list',\n templateUrl: './task-list.component.html',\n styleUrls: ['./task-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TaskListComponent implements OnDestroy {\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n public tasks = {\n mine: new TaskList(),\n open: new TaskList(),\n all: new TaskList(),\n };\n public currentTaskType = 'mine';\n public listTitle: string | null = null;\n public listDescription: string | null = null;\n private translationSubscription: Subscription;\n\n public paginationClicked(page: number, type: string) {\n this.tasks[type].page = page - 1;\n this.getTasks(type);\n }\n\n constructor(\n private taskService: TaskService,\n private router: Router,\n private logger: NGXLogger,\n private translateService: TranslateService\n ) {}\n\n paginationSet() {\n this.tasks.mine.pagination.size =\n this.tasks.all.pagination.size =\n this.tasks.open.pagination.size =\n this.tasks[this.currentTaskType].pagination.size;\n this.getTasks(this.currentTaskType);\n }\n\n private clearPagination(type: string) {\n this.tasks[type].page = 0;\n }\n\n tabChange(tab) {\n this.clearPagination(this.currentTaskType);\n switch (tab.nextId) {\n case 'ngb-tab-0':\n this.getTasks('mine');\n break;\n case 'ngb-tab-1':\n this.getTasks('open');\n break;\n case 'ngb-tab-2':\n this.getTasks('all');\n break;\n default:\n this.logger.fatal('Unreachable case');\n }\n }\n\n showTask(task) {\n this.router.navigate(['tasks', task.id]);\n }\n\n getTasks(type: string) {\n let params: any;\n\n this.translationSubscription = combineLatest([\n this.translateService.stream(`task-list.${type}.title`),\n this.translateService.stream(`task-list.${type}.description`),\n ]).subscribe(([title, description]) => {\n this.listTitle = title;\n this.listDescription = description;\n });\n\n switch (type) {\n case 'mine':\n params = {\n page: this.tasks.mine.page,\n size: this.tasks.mine.pagination.size,\n filter: 'mine',\n };\n this.currentTaskType = 'mine';\n break;\n case 'open':\n params = {\n page: this.tasks.open.page,\n size: this.tasks.open.pagination.size,\n filter: 'open',\n };\n this.currentTaskType = 'open';\n break;\n case 'all':\n params = {page: this.tasks.all.page, size: this.tasks.open.pagination.size, filter: 'all'};\n this.currentTaskType = 'all';\n break;\n default:\n this.logger.fatal('Unreachable case');\n }\n\n this.taskService.queryTasks(params).subscribe((results: any) => {\n this.tasks[type].pagination.collectionSize = results.headers.get('x-total-count');\n this.tasks[type].tasks = <Task[]>results.body;\n this.tasks[type].tasks.map((task: Task) => {\n task.created = moment(task.created).format('DD MMM YYYY HH:mm');\n if (task.due) {\n task.due = moment(task.due).format('DD MMM YYYY HH:mm');\n }\n });\n this.tasks[type].fields = [\n {\n key: 'created',\n label: 'Created on',\n },\n {\n key: 'name',\n label: 'Name',\n },\n {\n key: 'valtimoAssignee.fullName',\n label: 'Assignee',\n },\n {\n key: 'due',\n label: 'Due date',\n },\n ];\n });\n }\n\n public rowOpenTaskClick(task) {\n if (!task.endTime) {\n this.taskDetail.openTaskDetails(task);\n } else {\n return false;\n }\n }\n\n ngOnDestroy(): void {\n this.translationSubscription.unsubscribe();\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TaskListComponent} from './task-list/task-list.component';\nimport {ROLE_USER} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'tasks',\n component: TaskListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Tasks', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TaskRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {DropdownItem} from '@valtimo/components';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {take, tap} from 'rxjs/operators';\nimport {TaskService} from '../task.service';\nimport {User} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-assign-user-to-task',\n templateUrl: './assign-user-to-task.component.html',\n styleUrls: ['./assign-user-to-task.component.scss'],\n})\nexport class AssignUserToTaskComponent implements OnInit, OnChanges {\n @Input() taskId: string;\n @Input() assigneeEmail: string;\n @Output() assignmentOfTaskChanged = new EventEmitter();\n\n candidateUsersForTask$ = new BehaviorSubject<User[]>(undefined);\n disabled$ = new BehaviorSubject<boolean>(true);\n assignedEmailOnServer$ = new BehaviorSubject<string>(null);\n userEmailToAssign: string = null;\n assignedUserFullName$ = new BehaviorSubject<string>(null);\n\n constructor(private taskService: TaskService) {}\n\n ngOnInit(): void {\n this.taskService.getCandidateUsers(this.taskId).subscribe(candidateUsers => {\n this.candidateUsersForTask$.next(candidateUsers);\n if (this.assigneeEmail) {\n this.assignedEmailOnServer$.next(this.assigneeEmail);\n this.userEmailToAssign = this.assigneeEmail;\n this.assignedUserFullName$.next(\n this.getAssignedUserName(candidateUsers, this.assigneeEmail)\n );\n }\n this.enable();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const assigneeEmail = changes.assigneeEmail;\n if (assigneeEmail) {\n this.candidateUsersForTask$.pipe(take(1)).subscribe(candidateUsers => {\n const currentUserEmail = assigneeEmail.currentValue;\n this.assignedEmailOnServer$.next(currentUserEmail || null);\n this.userEmailToAssign = currentUserEmail || null;\n this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers, currentUserEmail));\n });\n } else {\n this.clear();\n }\n }\n\n assignTask(userEmail: string): void {\n this.disable();\n combineLatest([\n this.candidateUsersForTask$,\n this.taskService.assignTask(this.taskId, {assignee: userEmail}),\n ])\n .pipe(\n take(1),\n tap(([candidateUsers]) => {\n this.userEmailToAssign = userEmail;\n this.assignedEmailOnServer$.next(userEmail);\n this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers, userEmail));\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n unassignTask(): void {\n this.disable();\n this.taskService\n .unassignTask(this.taskId)\n .pipe(\n tap(() => {\n this.clear();\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n getAssignedUserName(users: User[], userEmail: string): string {\n if (users && userEmail) {\n const findUser = users.find(user => user.email === userEmail);\n return findUser ? findUser.fullName : '';\n }\n return '';\n }\n\n mapUsersForDropdown(users: User[]): DropdownItem[] {\n return (\n users &&\n users\n .map(user => ({...user, lastName: user.lastName?.split(' ').splice(-1)[0] || ''}))\n .sort((a, b) => a.lastName.localeCompare(b.lastName))\n .map(user => ({text: user.fullName, id: user.email}))\n );\n }\n\n private clear(): void {\n this.assignedEmailOnServer$.next(null);\n this.userEmailToAssign = null;\n }\n\n private emitChange(): void {\n this.assignmentOfTaskChanged.emit();\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {\n CamundaFormModule,\n FormIoModule,\n ListModule,\n ModalModule,\n PageHeaderModule,\n SpinnerModule,\n WidgetModule,\n SearchableDropdownSelectModule,\n} from '@valtimo/components';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {ToastrModule} from 'ngx-toastr';\nimport {TaskDetailModalComponent} from './task-detail-modal/task-detail-modal.component';\nimport {TaskListComponent} from './task-list/task-list.component';\nimport {TaskRoutingModule} from './task-routing.module';\nimport {AssignUserToTaskComponent} from './assign-user-to-task/assign-user-to-task.component';\n\n@NgModule({\n declarations: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n imports: [\n CommonModule,\n TaskRoutingModule,\n ListModule,\n PageHeaderModule,\n WidgetModule,\n SpinnerModule,\n SearchableDropdownSelectModule,\n CamundaFormModule,\n BrowserAnimationsModule,\n FormsModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-full-width',\n preventDuplicates: true,\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n NgbModule,\n FormIoModule,\n ModalModule,\n ],\n exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n})\nexport class TaskModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of task\n */\n\nexport * from './lib/models';\nexport * from './lib/task.service';\nexport * from './lib/task.module';\nexport * from './lib/task-detail-modal/task-detail-modal.component';\nexport * from './lib/task-list/task-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {AssignUserToTaskComponent as ɵa} from './lib/assign-user-to-task/assign-user-to-task.component';\nexport {TaskRoutingModule as ɵb} from './lib/task-routing.module';"],"names":["moment","moment_"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
- import { DropdownItem, User } from '@valtimo/contract';
2
+ import { DropdownItem } from '@valtimo/components';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { TaskService } from '../task.service';
5
+ import { User } from '@valtimo/config';
5
6
  export declare class AssignUserToTaskComponent implements OnInit, OnChanges {
6
7
  private taskService;
7
8
  taskId: string;
@@ -0,0 +1,3 @@
1
+ export * from './task.model';
2
+ export * from './task-definition.model';
3
+ export * from './task-list.model';
@@ -0,0 +1,6 @@
1
+ import { FormDefinition } from '@valtimo/form-management';
2
+ export interface TaskDefinition {
3
+ id: string;
4
+ name: string;
5
+ formDefinition: FormDefinition | null;
6
+ }
@@ -0,0 +1,11 @@
1
+ export declare class TaskList {
2
+ tasks: any[];
3
+ fields: any[];
4
+ pagination: {
5
+ collectionSize: number;
6
+ page: number;
7
+ size: number;
8
+ maxPaginationItemSize: number;
9
+ };
10
+ page: number;
11
+ }
@@ -0,0 +1,38 @@
1
+ import { User } from '@valtimo/config';
2
+ export interface Task {
3
+ assignee: string;
4
+ caseDefinitionId: string;
5
+ caseExecutionId: string;
6
+ caseInstanceId: string;
7
+ created: string;
8
+ delegationState: any;
9
+ description: string;
10
+ due: string;
11
+ executionId: string;
12
+ followUp: any;
13
+ formKey: string;
14
+ formless: boolean;
15
+ id: string;
16
+ listItemFields: ListItemField[];
17
+ name: string;
18
+ owner: string;
19
+ parentTaskId: string;
20
+ priority: number;
21
+ processDefinitionId: string;
22
+ processInstanceId: string;
23
+ suspended: boolean;
24
+ taskDefinitionKey: string;
25
+ tenantId: string;
26
+ formLocation: string;
27
+ businessKey: string;
28
+ processDefinitionKey: string;
29
+ valtimoAssignee: User;
30
+ }
31
+ export interface ListItemField {
32
+ key: string;
33
+ value: string;
34
+ label: string;
35
+ }
36
+ export interface AssigneeRequest {
37
+ assignee: string;
38
+ }