@valtimo/dossier 10.1.0 → 10.2.1

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 (36) hide show
  1. package/esm2020/lib/components/note-modal/note-modal.component.mjs +95 -0
  2. package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +6 -2
  3. package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +3 -3
  4. package/esm2020/lib/dossier-detail/tab/notes/notes.component.mjs +100 -0
  5. package/esm2020/lib/dossier-detail-tab-enum.mjs +2 -1
  6. package/esm2020/lib/dossier-list/dossier-list.component.mjs +43 -11
  7. package/esm2020/lib/dossier.module.mjs +22 -4
  8. package/esm2020/lib/dossier.service.mjs +3 -3
  9. package/esm2020/lib/models/notes.model.mjs +17 -0
  10. package/esm2020/lib/services/dossier-column.service.mjs +8 -2
  11. package/esm2020/lib/services/notes.service.mjs +70 -0
  12. package/esm2020/public_api.mjs +2 -1
  13. package/fesm2015/valtimo-dossier.mjs +318 -20
  14. package/fesm2015/valtimo-dossier.mjs.map +1 -1
  15. package/fesm2020/valtimo-dossier.mjs +318 -20
  16. package/fesm2020/valtimo-dossier.mjs.map +1 -1
  17. package/lib/components/note-modal/note-modal.component.d.ts +32 -0
  18. package/lib/components/note-modal/note-modal.component.d.ts.map +1 -0
  19. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -1
  20. package/lib/dossier-detail/tab/notes/notes.component.d.ts +32 -0
  21. package/lib/dossier-detail/tab/notes/notes.component.d.ts.map +1 -0
  22. package/lib/dossier-detail-tab-enum.d.ts +2 -1
  23. package/lib/dossier-detail-tab-enum.d.ts.map +1 -1
  24. package/lib/dossier-list/dossier-list.component.d.ts +3 -13
  25. package/lib/dossier-list/dossier-list.component.d.ts.map +1 -1
  26. package/lib/dossier.module.d.ts +21 -19
  27. package/lib/dossier.module.d.ts.map +1 -1
  28. package/lib/models/notes.model.d.ts +13 -0
  29. package/lib/models/notes.model.d.ts.map +1 -0
  30. package/lib/services/dossier-column.service.d.ts +5 -1
  31. package/lib/services/dossier-column.service.d.ts.map +1 -1
  32. package/lib/services/notes.service.d.ts +28 -0
  33. package/lib/services/notes.service.d.ts.map +1 -0
  34. package/package.json +1 -1
  35. package/public_api.d.ts +1 -0
  36. package/public_api.d.ts.map +1 -1
@@ -36,7 +36,7 @@ import { switchMap as switchMap$1, map as map$1, take as take$1, tap as tap$1 }
36
36
  import * as i3$2 from 'ngx-toastr';
37
37
  import * as i4$1 from '@valtimo/resource';
38
38
  import * as i3$3 from '@valtimo/user-interface';
39
- import { SelectModule, InputLabelModule, ParagraphModule, TableModule, ModalModule as ModalModule$1, TitleModule, ButtonModule } from '@valtimo/user-interface';
39
+ import { SelectModule, InputLabelModule, ParagraphModule, TableModule, ModalModule as ModalModule$1, TitleModule, ButtonModule, PageModule, InputModule, FormModule as FormModule$1 } from '@valtimo/user-interface';
40
40
  import * as i8$1 from 'keycloak-angular';
41
41
  import * as i1$2 from '@valtimo/contact-moment';
42
42
 
@@ -184,9 +184,16 @@ class DossierColumnService {
184
184
  Array.isArray(caseListColumns) &&
185
185
  caseListColumns.length > 0 &&
186
186
  this.mapCaseListColumnsToDefinitionColumns(caseListColumns);
187
- return customDefinitionTable || apiCaseListColumns || defaultDefinitionTable;
187
+ return {
188
+ columns: customDefinitionTable || apiCaseListColumns || defaultDefinitionTable,
189
+ hasApiConfig: !!apiCaseListColumns,
190
+ };
188
191
  }));
189
192
  }
193
+ hasEnvironmentConfig(documentDefinitionName) {
194
+ var _a;
195
+ return !!((_a = this.configService.config) === null || _a === void 0 ? void 0 : _a.customDefinitionTables[documentDefinitionName]);
196
+ }
190
197
  mapCaseListColumnsToDefinitionColumns(caseListColumns) {
191
198
  return caseListColumns.map(caseListColumn => {
192
199
  var _a, _b, _c, _d, _e, _f;
@@ -285,6 +292,7 @@ var DefaultTabs;
285
292
  DefaultTabs["documents"] = "documents";
286
293
  DefaultTabs["contactMoments"] = "contact-moments";
287
294
  DefaultTabs["zaakobjecten"] = "zaakobjecten";
295
+ DefaultTabs["notes"] = "notes";
288
296
  })(DefaultTabs || (DefaultTabs = {}));
289
297
 
290
298
  /*
@@ -312,8 +320,8 @@ class DossierService {
312
320
  }
313
321
  getInitialSortState(columns) {
314
322
  const defaultColumn = columns.find(column => column.default);
315
- const isSorting = defaultColumn.default === 'ASC' || defaultColumn.default === 'DESC';
316
- const direction = typeof defaultColumn.default === 'boolean'
323
+ const isSorting = (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.default) === 'ASC' || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.default) === 'DESC';
324
+ const direction = typeof !defaultColumn || defaultColumn.default === 'boolean'
317
325
  ? 'DESC'
318
326
  : defaultColumn.default;
319
327
  return {
@@ -467,6 +475,7 @@ class DossierListComponent {
467
475
  this.documentDefinitionName$ = this.route.params.pipe(map(params => params.documentDefinitionName || ''), tap(documentDefinitionName => {
468
476
  this.resetPagination(documentDefinitionName);
469
477
  }));
478
+ this.hasEnvColumnConfig$ = this.route.params.pipe(map(params => params.documentDefinitionName || ''), map(documentDefinitionName => this.dossierColumnService.hasEnvironmentConfig(documentDefinitionName)));
470
479
  this.canHaveAssignee$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.documentService.getCaseSettings(documentDefinitionName)), map(caseSettings => caseSettings === null || caseSettings === void 0 ? void 0 : caseSettings.canHaveAssignee));
471
480
  this.documentSearchFields$ = this.documentDefinitionName$.pipe(distinctUntilChanged(), tap(() => this.loadingDocumentSearchFields$.next(true)), switchMap(documentDefinitionName => this.documentService.getDocumentSearchFields(documentDefinitionName)), tap(() => this.loadingDocumentSearchFields$.next(false)));
472
481
  this.associatedProcessDocumentDefinitions$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => documentDefinitionName
@@ -475,19 +484,25 @@ class DossierListComponent {
475
484
  this.schema$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.documentService.getDocumentDefinition(documentDefinitionName)), map(documentDefinition => documentDefinition === null || documentDefinition === void 0 ? void 0 : documentDefinition.schema));
476
485
  this.storedSearchRequestKey$ = this.documentDefinitionName$.pipe(map(documentDefinitionName => `list-search-${documentDefinitionName}`));
477
486
  this.hasStoredSearchRequest$ = this.storedSearchRequestKey$.pipe(map(storedSearchRequestKey => localStorage.getItem(storedSearchRequestKey) !== null));
478
- this.columns$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.dossierColumnService.getDefinitionColumns(documentDefinitionName)));
487
+ this.hasApiColumnConfig$ = new BehaviorSubject(false);
488
+ this.columns$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.dossierColumnService.getDefinitionColumns(documentDefinitionName)), map(res => {
489
+ this.hasApiColumnConfig$.next(res.hasApiConfig);
490
+ return res.columns;
491
+ }));
479
492
  this.ASSIGNEE_KEY = 'assigneeFullName';
480
493
  this.fields$ = combineLatest([
481
494
  this.columns$,
482
495
  this.canHaveAssignee$,
496
+ this.hasEnvColumnConfig$,
483
497
  this.translateService.stream('key'),
484
- ]).pipe(map(([columns, canHaveAssignee]) => [
498
+ ]).pipe(map(([columns, canHaveAssignee, hasEnvConfig]) => [
485
499
  ...columns
486
500
  .map(column => {
487
501
  const translationKey = `fieldLabels.${column.translationKey}`;
488
502
  const translation = this.translateService.instant(translationKey);
489
503
  const validTranslation = translation !== translationKey && translation;
490
- return Object.assign(Object.assign({ key: column.propertyName, label: column.title || validTranslation || column.translationKey, sortable: column.sortable }, (column.viewType && { viewType: column.viewType })), (column.enum && { enum: column.enum }));
504
+ console.log('column', column);
505
+ return Object.assign(Object.assign({ key: hasEnvConfig ? column.propertyName : column.translationKey, label: column.title || validTranslation || column.translationKey, sortable: column.sortable }, (column.viewType && { viewType: column.viewType })), (column.enum && { enum: column.enum }));
491
506
  })
492
507
  // Filter out assignee column if the case type can not have an assignee
493
508
  .filter(column => {
@@ -524,27 +539,52 @@ class DossierListComponent {
524
539
  this.documentSearchRequest$,
525
540
  this.searchFieldValues$,
526
541
  this.assigneeFilter$,
542
+ this.hasEnvColumnConfig$,
543
+ this.hasApiColumnConfig$,
527
544
  ]).pipe(distinctUntilChanged(([prevSearchRequest, prevSearchValues, prevAssigneeFilter], [currSearchRequest, currSearchValues, currAssigneeFilter]) => JSON.stringify(Object.assign(Object.assign({}, prevSearchRequest), prevSearchValues)) + prevAssigneeFilter ===
528
545
  JSON.stringify(Object.assign(Object.assign({}, currSearchRequest), currSearchValues)) + currAssigneeFilter), tap(([documentSearchRequest]) => {
529
546
  this.storedSearchRequestKey$.pipe(take(1)).subscribe(storedSearchRequestKey => {
530
547
  this.logger.debug(`store request in local storage: ${JSON.stringify(documentSearchRequest)}`);
531
548
  localStorage.setItem(storedSearchRequestKey, JSON.stringify(documentSearchRequest));
532
549
  });
533
- }), switchMap(([documentSearchRequest, searchValues, assigneeFilter]) => {
550
+ }), switchMap(([documentSearchRequest, searchValues, assigneeFilter, hasEnvColumnConfig, hasApiColumnConfig,]) => {
534
551
  if ((Object.keys(searchValues) || []).length > 0) {
535
- return this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.mapSearchValuesToFilters(searchValues));
552
+ return hasEnvColumnConfig || !hasApiColumnConfig
553
+ ? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.mapSearchValuesToFilters(searchValues))
554
+ : this.documentService.getSpecifiedDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.mapSearchValuesToFilters(searchValues));
536
555
  }
537
556
  else {
538
- return this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter);
557
+ return hasEnvColumnConfig || !hasApiColumnConfig
558
+ ? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter)
559
+ : this.documentService.getSpecifiedDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter);
539
560
  }
540
561
  }), tap(documents => {
541
562
  this.setCollectionSize(documents);
542
563
  this.checkPage(documents);
543
564
  }));
544
- this.documentItems$ = this.documentsRequest$.pipe(map(documents => documents.content.map(document => {
545
- const { content } = document, others = __rest(document, ["content"]);
546
- return Object.assign(Object.assign({}, content), others);
547
- })), tap(() => this.loading$.next(false)));
565
+ this.documentItems$ = combineLatest([
566
+ this.documentsRequest$,
567
+ this.hasEnvColumnConfig$,
568
+ this.hasApiColumnConfig$,
569
+ ]).pipe(map(([documents, hasEnvColumnConfig, hasApiColumnConfig]) => {
570
+ if (hasEnvColumnConfig || !hasApiColumnConfig) {
571
+ const docsToMap = documents;
572
+ return documents.content.map(document => {
573
+ const { content } = document, others = __rest(document, ["content"]);
574
+ return Object.assign(Object.assign({}, content), others);
575
+ });
576
+ }
577
+ else {
578
+ const docsToMap = documents;
579
+ return docsToMap.content.reduce((acc, curr) => {
580
+ const propsObject = {};
581
+ curr.items.forEach(item => {
582
+ propsObject[item.key] = item.value;
583
+ });
584
+ return [...acc, propsObject];
585
+ }, []);
586
+ }
587
+ }), tap(returnValue => console.log(returnValue)), tap(() => this.loading$.next(false)));
548
588
  this.dossierVisibleTabs = ((_a = this.configService.config) === null || _a === void 0 ? void 0 : _a.visibleDossierListTabs) || null;
549
589
  }
550
590
  ngOnInit() {
@@ -1600,7 +1640,11 @@ class DossierAssignUserComponent {
1600
1640
  mapUsersForDropdown(users) {
1601
1641
  return (users &&
1602
1642
  users
1603
- .sort((a, b) => a.lastName.localeCompare(b.lastName))
1643
+ .sort((a, b) => {
1644
+ if (a.lastName && b.lastName) {
1645
+ return a.lastName.localeCompare(b.lastName);
1646
+ }
1647
+ })
1604
1648
  .map(user => ({ text: `${user.firstName} ${user.lastName}`, id: user.id })));
1605
1649
  }
1606
1650
  clear() {
@@ -1766,10 +1810,10 @@ class DossierDetailComponent {
1766
1810
  }
1767
1811
  }
1768
1812
  DossierDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierDetailComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i6$1.TranslateService }, { token: i2.DocumentService }, { token: i2$2.ProcessService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i5$1.Location }, { token: TabService }, { token: i1.ConfigService }, { token: i8$1.KeycloakService }, { token: i5.NGXLogger }], target: i0.ɵɵFactoryTarget.Component });
1769
- DossierDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DossierDetailComponent, selector: "valtimo-dossier-detail", viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }], ngImport: i0, 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div class=\"row\" *ngIf=\"{canHaveAssignee: canHaveAssignee$ | async} as obs\">\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {canHaveAssignee: obs.canHaveAssignee}\n \"\n ></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container\n *ngTemplateOutlet=\"claimButton; context: {canHaveAssignee: obs.canHaveAssignee}\"\n ></ng-container>\n <div class=\"dropdown\">\n <button\n class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"dropdown-item p\"\n href=\"#\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{ (processDocumentDefinition?.id?.processDefinitionKey | translate) !== processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n id=\"{{ tab.name }}-tab\"\n class=\"nav-link clickable\"\n [ngClass]=\"{active: tab.isActive()}\"\n data-toggle=\"tab\"\n (click)=\"tabLoader.load(tab)\"\n >\n {{ tabLoader.translateTabName(tab) }}\n </a>\n </li>\n </ul>\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <ng-template #tabContainer>Loading...</ng-template>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template #caseDetailHeader let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"caseDetailAssignee; context: {canHaveAssignee: canHaveAssignee}\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && (document$ | async) as document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canHaveAssignee\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}\n"], dependencies: [{ kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "directive", type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i1.ExtensionComponent, selector: "valtimo-extension", inputs: ["module", "page", "section"] }, { kind: "component", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { kind: "component", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
1813
+ DossierDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DossierDetailComponent, selector: "valtimo-dossier-detail", viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }], ngImport: i0, 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div class=\"row\" *ngIf=\"{canHaveAssignee: canHaveAssignee$ | async, document: document$ | async} as obs\">\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {canHaveAssignee: obs.canHaveAssignee, document: obs.document}\n \"\n ></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container\n *ngTemplateOutlet=\"claimButton; context: {canHaveAssignee: obs.canHaveAssignee}\"\n ></ng-container>\n <div class=\"dropdown\">\n <button\n class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"dropdown-item p\"\n href=\"#\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{ (processDocumentDefinition?.id?.processDefinitionKey | translate) !== processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n id=\"{{ tab.name }}-tab\"\n class=\"nav-link clickable\"\n [ngClass]=\"{active: tab.isActive()}\"\n data-toggle=\"tab\"\n (click)=\"tabLoader.load(tab)\"\n >\n {{ tabLoader.translateTabName(tab) }}\n </a>\n </li>\n </ul>\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <ng-template #tabContainer>Loading...</ng-template>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template #caseDetailHeader let-canHaveAssignee=\"canHaveAssignee\" let-document=\"document\">\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"caseDetailAssignee; context: {canHaveAssignee: canHaveAssignee, document: document}\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee let-canHaveAssignee=\"canHaveAssignee\" let-document=\"document\">\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canHaveAssignee\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}\n"], dependencies: [{ kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "directive", type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i1.ExtensionComponent, selector: "valtimo-extension", inputs: ["module", "page", "section"] }, { kind: "component", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { kind: "component", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
1770
1814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierDetailComponent, decorators: [{
1771
1815
  type: Component,
1772
- args: [{ selector: 'valtimo-dossier-detail', 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div class=\"row\" *ngIf=\"{canHaveAssignee: canHaveAssignee$ | async} as obs\">\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {canHaveAssignee: obs.canHaveAssignee}\n \"\n ></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container\n *ngTemplateOutlet=\"claimButton; context: {canHaveAssignee: obs.canHaveAssignee}\"\n ></ng-container>\n <div class=\"dropdown\">\n <button\n class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"dropdown-item p\"\n href=\"#\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{ (processDocumentDefinition?.id?.processDefinitionKey | translate) !== processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n id=\"{{ tab.name }}-tab\"\n class=\"nav-link clickable\"\n [ngClass]=\"{active: tab.isActive()}\"\n data-toggle=\"tab\"\n (click)=\"tabLoader.load(tab)\"\n >\n {{ tabLoader.translateTabName(tab) }}\n </a>\n </li>\n </ul>\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <ng-template #tabContainer>Loading...</ng-template>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template #caseDetailHeader let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"caseDetailAssignee; context: {canHaveAssignee: canHaveAssignee}\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && (document$ | async) as document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canHaveAssignee\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}\n"] }]
1816
+ args: [{ selector: 'valtimo-dossier-detail', 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<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div class=\"row\" *ngIf=\"{canHaveAssignee: canHaveAssignee$ | async, document: document$ | async} as obs\">\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {canHaveAssignee: obs.canHaveAssignee, document: obs.document}\n \"\n ></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container\n *ngTemplateOutlet=\"claimButton; context: {canHaveAssignee: obs.canHaveAssignee}\"\n ></ng-container>\n <div class=\"dropdown\">\n <button\n class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"dropdown-item p\"\n href=\"#\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{ (processDocumentDefinition?.id?.processDefinitionKey | translate) !== processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n id=\"{{ tab.name }}-tab\"\n class=\"nav-link clickable\"\n [ngClass]=\"{active: tab.isActive()}\"\n data-toggle=\"tab\"\n (click)=\"tabLoader.load(tab)\"\n >\n {{ tabLoader.translateTabName(tab) }}\n </a>\n </li>\n </ul>\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <ng-template #tabContainer>Loading...</ng-template>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template #caseDetailHeader let-canHaveAssignee=\"canHaveAssignee\" let-document=\"document\">\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"caseDetailAssignee; context: {canHaveAssignee: canHaveAssignee, document: document}\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee let-canHaveAssignee=\"canHaveAssignee\" let-document=\"document\">\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canHaveAssignee\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}\n"] }]
1773
1817
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i6$1.TranslateService }, { type: i2.DocumentService }, { type: i2$2.ProcessService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i5$1.Location }, { type: TabService }, { type: i1.ConfigService }, { type: i8$1.KeycloakService }, { type: i5.NGXLogger }]; }, propDecorators: { viewContainerRef: [{
1774
1818
  type: ViewChild,
1775
1819
  args: ['tabContainer', { read: ViewContainerRef, static: true }]
@@ -1953,6 +1997,244 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
1953
1997
  args: ['viewZaakobjectModal']
1954
1998
  }] } });
1955
1999
 
2000
+ /*
2001
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
2002
+ *
2003
+ * Licensed under EUPL, Version 1.2 (the "License");
2004
+ * you may not use this file except in compliance with the License.
2005
+ * You may obtain a copy of the License at
2006
+ *
2007
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2008
+ *
2009
+ * Unless required by applicable law or agreed to in writing, software
2010
+ * distributed under the License is distributed on an "AS IS" basis,
2011
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2012
+ * See the License for the specific language governing permissions and
2013
+ * limitations under the License.
2014
+ */
2015
+ class NotesService {
2016
+ constructor(configService, http) {
2017
+ this.configService = configService;
2018
+ this.http = http;
2019
+ this.VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;
2020
+ this._showModal$ = new Subject();
2021
+ this._hideModal$ = new Subject();
2022
+ this._refresh$ = new BehaviorSubject(null);
2023
+ this._modalType$ = new BehaviorSubject('add');
2024
+ }
2025
+ getDocumentNotes(documentId, params) {
2026
+ return this.http.get(`${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`, { params });
2027
+ }
2028
+ createDocumentNote(documentId, request) {
2029
+ return this.http.post(`${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`, request);
2030
+ }
2031
+ get showModal$() {
2032
+ return this._showModal$.asObservable();
2033
+ }
2034
+ get hideModal$() {
2035
+ return this._hideModal$.asObservable();
2036
+ }
2037
+ get refresh$() {
2038
+ return this._refresh$.asObservable();
2039
+ }
2040
+ get modalType$() {
2041
+ return this._modalType$.asObservable();
2042
+ }
2043
+ showModal() {
2044
+ this._showModal$.next(null);
2045
+ }
2046
+ hideModal() {
2047
+ this._hideModal$.next(null);
2048
+ }
2049
+ refresh() {
2050
+ this._refresh$.next(null);
2051
+ }
2052
+ setModalType(type) {
2053
+ this._modalType$.next(type);
2054
+ }
2055
+ }
2056
+ NotesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NotesService, deps: [{ token: i1.ConfigService }, { token: i2$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2057
+ NotesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NotesService, providedIn: 'root' });
2058
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NotesService, decorators: [{
2059
+ type: Injectable,
2060
+ args: [{
2061
+ providedIn: 'root',
2062
+ }]
2063
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2$1.HttpClient }]; } });
2064
+
2065
+ /*
2066
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
2067
+ *
2068
+ * Licensed under EUPL, Version 1.2 (the "License");
2069
+ * you may not use this file except in compliance with the License.
2070
+ * You may obtain a copy of the License at
2071
+ *
2072
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2073
+ *
2074
+ * Unless required by applicable law or agreed to in writing, software
2075
+ * distributed under the License is distributed on an "AS IS" basis,
2076
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2077
+ * See the License for the specific language governing permissions and
2078
+ * limitations under the License.
2079
+ */
2080
+ class NoteModalComponent {
2081
+ constructor(notesService, modalService) {
2082
+ this.notesService = notesService;
2083
+ this.modalService = modalService;
2084
+ this.createNoteEvent = new EventEmitter();
2085
+ this.valid$ = new BehaviorSubject(false);
2086
+ this.showForm$ = this.modalService.modalVisible$;
2087
+ this.formData$ = new BehaviorSubject(null);
2088
+ this.returnToFirstStepSubject$ = new Subject();
2089
+ }
2090
+ ngAfterViewInit() {
2091
+ this.openShowSubscription();
2092
+ this.openHideSubscription();
2093
+ }
2094
+ ngOnDestroy() {
2095
+ var _a, _b;
2096
+ (_a = this.showSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
2097
+ (_b = this.hideSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
2098
+ }
2099
+ hide() {
2100
+ this.formData$.next(null);
2101
+ this.valid$.next(false);
2102
+ this.modalService.closeModal();
2103
+ }
2104
+ cancel() {
2105
+ this.hide();
2106
+ }
2107
+ save() {
2108
+ combineLatest([this.valid$, this.formData$])
2109
+ .pipe(take$1(1))
2110
+ .subscribe(([valid, formData]) => {
2111
+ if (valid) {
2112
+ this.createNoteEvent.emit(formData);
2113
+ }
2114
+ });
2115
+ }
2116
+ openShowSubscription() {
2117
+ this.showSubscription = this.notesService.showModal$.subscribe(() => {
2118
+ this.show();
2119
+ });
2120
+ }
2121
+ openHideSubscription() {
2122
+ this.hideSubscription = this.notesService.hideModal$.subscribe(() => {
2123
+ this.hide();
2124
+ });
2125
+ }
2126
+ show() {
2127
+ this.notesService.modalType$.pipe(take$1(1)).subscribe(modalType => {
2128
+ if (modalType === 'add') {
2129
+ this.modalService.openModal(this.addNoteModal);
2130
+ }
2131
+ });
2132
+ }
2133
+ formValueChange(data) {
2134
+ this.formData$.next(data);
2135
+ this.setValid(data);
2136
+ }
2137
+ setValid(data) {
2138
+ this.valid$.next(!!data.content);
2139
+ }
2140
+ }
2141
+ NoteModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoteModalComponent, deps: [{ token: NotesService }, { token: i3$3.ModalService }], target: i0.ɵɵFactoryTarget.Component });
2142
+ NoteModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: NoteModalComponent, selector: "valtimo-note-modal", outputs: { createNoteEvent: "createNoteEvent" }, viewQueries: [{ propertyName: "addNoteModal", first: true, predicate: ["addNoteModal"], descendants: true }], ngImport: i0, 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<v-modal #addNoteModal *ngIf=\"{ disabled: disabled$ | async, valid: valid$ | async} as obs\">\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{ 'dossier.notes.addNote' | translate }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"addForm\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <v-button (clickEvent)=\"save()\" [disabled]=\"obs.disabled || !obs.valid\" mdiIcon=\"plus\" type=\"success\">\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addForm>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", 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 */.buttons,.add-note-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.add-note-title{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$3.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "component", type: i3$3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "component", type: i3$3.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "component", type: i3$3.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$"], outputs: ["valueChange"] }, { kind: "component", type: i3$3.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
2143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoteModalComponent, decorators: [{
2144
+ type: Component,
2145
+ args: [{ selector: 'valtimo-note-modal', 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<v-modal #addNoteModal *ngIf=\"{ disabled: disabled$ | async, valid: valid$ | async} as obs\">\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{ 'dossier.notes.addNote' | translate }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"addForm\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <v-button (clickEvent)=\"save()\" [disabled]=\"obs.disabled || !obs.valid\" mdiIcon=\"plus\" type=\"success\">\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addForm>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", 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 */.buttons,.add-note-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.add-note-title{justify-content:center}\n"] }]
2146
+ }], ctorParameters: function () { return [{ type: NotesService }, { type: i3$3.ModalService }]; }, propDecorators: { addNoteModal: [{
2147
+ type: ViewChild,
2148
+ args: ['addNoteModal']
2149
+ }], createNoteEvent: [{
2150
+ type: Output
2151
+ }] } });
2152
+
2153
+ /*
2154
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
2155
+ *
2156
+ * Licensed under EUPL, Version 1.2 (the "License");
2157
+ * you may not use this file except in compliance with the License.
2158
+ * You may obtain a copy of the License at
2159
+ *
2160
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2161
+ *
2162
+ * Unless required by applicable law or agreed to in writing, software
2163
+ * distributed under the License is distributed on an "AS IS" basis,
2164
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2165
+ * See the License for the specific language governing permissions and
2166
+ * limitations under the License.
2167
+ */
2168
+ class DossierDetailTabNotesComponent {
2169
+ constructor(route, notesService, translateService) {
2170
+ this.route = route;
2171
+ this.notesService = notesService;
2172
+ this.translateService = translateService;
2173
+ this.timelineItems = [];
2174
+ this.loading$ = new BehaviorSubject(true);
2175
+ this.fields$ = new BehaviorSubject([]);
2176
+ this.documentId$ = this.route.params.pipe(map(params => params.documentId));
2177
+ this.currentPageAndSize$ = new BehaviorSubject({
2178
+ page: 0,
2179
+ size: 10,
2180
+ });
2181
+ this.pageSizes$ = new BehaviorSubject({
2182
+ collectionSize: 0,
2183
+ maxPaginationItemSize: 5,
2184
+ });
2185
+ this.pagination$ = combineLatest([
2186
+ this.currentPageAndSize$,
2187
+ this.pageSizes$,
2188
+ ]).pipe(map(([currentPage, sizes]) => (Object.assign(Object.assign(Object.assign({}, currentPage), sizes), { page: currentPage.page + 1 }))));
2189
+ this.notes$ = combineLatest([
2190
+ this.documentId$,
2191
+ this.currentPageAndSize$,
2192
+ this.notesService.refresh$
2193
+ ]).pipe(tap$1(() => this.timelineItems = []), switchMap$1(([documentId, currentPage]) => this.notesService.getDocumentNotes(documentId, { page: currentPage.page, size: currentPage.size })), tap$1((res) => {
2194
+ this.timelineItems = [];
2195
+ this.pageSizes$.pipe(take$1(1)).subscribe(sizes => {
2196
+ this.pageSizes$.next(Object.assign(Object.assign({}, sizes), { collectionSize: res.totalElements }));
2197
+ });
2198
+ }), map((res) => res.content.map((note) => {
2199
+ const noteCreatedDate = moment(note.createdDate).locale(this.translateService.currentLang);
2200
+ this.timelineItems.push(new TimelineItemImpl(noteCreatedDate.format('DD MMM YYYY'), noteCreatedDate.format('HH:mm'), note.createdByUserFullName, noteCreatedDate.fromNow(), note.content, {}));
2201
+ return (Object.assign({}, note));
2202
+ })), tap$1(() => this.loading$.next(false)));
2203
+ }
2204
+ ngOnInit() {
2205
+ this.translateService.onLangChange.subscribe(() => {
2206
+ this.notesService.refresh();
2207
+ });
2208
+ }
2209
+ paginationClicked(newPageNumber) {
2210
+ this.currentPageAndSize$.pipe(take$1(1)).subscribe(currentPage => {
2211
+ this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { page: newPageNumber - 1 }));
2212
+ });
2213
+ }
2214
+ showAddModal() {
2215
+ this.notesService.setModalType('add');
2216
+ this.notesService.showModal();
2217
+ }
2218
+ createNewNote(content) {
2219
+ this.documentId$
2220
+ .pipe(take$1(1))
2221
+ .pipe(tap$1(documentId => {
2222
+ this.notesService.createDocumentNote(documentId, content)
2223
+ .subscribe(() => {
2224
+ this.notesService.refresh();
2225
+ this.notesService.hideModal();
2226
+ });
2227
+ }))
2228
+ .subscribe();
2229
+ }
2230
+ }
2231
+ DossierDetailTabNotesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierDetailTabNotesComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: NotesService }, { token: i6$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
2232
+ DossierDetailTabNotesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DossierDetailTabNotesComponent, selector: "valtimo-dossier-detail-tab-notes", ngImport: i0, 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<div class=\"notes\" *ngIf=\"{\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\">\n\n <button\n class=\"btn btn-space btn-primary mr-1 add-note\"\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"showAddModal()\"\n [disabled]=\"obs.loading\"\n >\n <span>{{ 'dossier.notes.addNote' | translate }}</span>\n <i class=\"ml-1 icon mdi mdi-plus\"></i>\n </button>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div class=\"d-flex justify-content-end row mr-0 ml-0\" *ngIf=\"obs.pagination\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [(page)]=\"obs.pagination.page\"\n [pageSize]=\"obs.pagination.size\"\n [maxSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n\n</div>\n\n<valtimo-note-modal (createNoteEvent)=\"createNewNote($event)\"></valtimo-note-modal>\n", 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 */.notes{position:relative}.add-note{position:absolute;right:0}\n"], dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.TimelineComponent, selector: "valtimo-timeline", inputs: ["items"] }, { kind: "component", type: i8.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i10.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "component", type: NoteModalComponent, selector: "valtimo-note-modal", outputs: ["createNoteEvent"] }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.TranslatePipe, name: "translate" }] });
2233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierDetailTabNotesComponent, decorators: [{
2234
+ type: Component,
2235
+ args: [{ selector: 'valtimo-dossier-detail-tab-notes', 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<div class=\"notes\" *ngIf=\"{\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\">\n\n <button\n class=\"btn btn-space btn-primary mr-1 add-note\"\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"showAddModal()\"\n [disabled]=\"obs.loading\"\n >\n <span>{{ 'dossier.notes.addNote' | translate }}</span>\n <i class=\"ml-1 icon mdi mdi-plus\"></i>\n </button>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div class=\"d-flex justify-content-end row mr-0 ml-0\" *ngIf=\"obs.pagination\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [(page)]=\"obs.pagination.page\"\n [pageSize]=\"obs.pagination.size\"\n [maxSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n\n</div>\n\n<valtimo-note-modal (createNoteEvent)=\"createNewNote($event)\"></valtimo-note-modal>\n", 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 */.notes{position:relative}.add-note{position:absolute;right:0}\n"] }]
2236
+ }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: NotesService }, { type: i6$1.TranslateService }]; } });
2237
+
1956
2238
  /*
1957
2239
  * Copyright 2015-2020 Ritense BV, the Netherlands.
1958
2240
  *
@@ -2152,13 +2434,15 @@ DossierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
2152
2434
  DossierDetailTabDocumentsComponent,
2153
2435
  DossierDetailTabContactMomentsComponent,
2154
2436
  DossierDetailTabZaakobjectenComponent,
2437
+ DossierDetailTabNotesComponent,
2155
2438
  DossierUpdateComponent,
2156
2439
  DossierProcessStartModalComponent,
2157
2440
  DossierSupportingProcessStartModalComponent,
2158
2441
  DossierDetailTabObjectTypeComponent,
2159
2442
  DossierDetailTabDocumentenApiDocumentsComponent,
2160
2443
  DossierDetailTabS3DocumentsComponent,
2161
- DossierAssignUserComponent], imports: [CommonModule,
2444
+ DossierAssignUserComponent,
2445
+ NoteModalComponent], imports: [CommonModule,
2162
2446
  DossierRoutingModule,
2163
2447
  ListModule,
2164
2448
  WidgetModule,
@@ -2190,6 +2474,10 @@ DossierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
2190
2474
  DocumentenApiMetadataModalModule,
2191
2475
  SearchableDropdownSelectModule,
2192
2476
  SearchFieldsModule,
2477
+ PageModule,
2478
+ FormModule,
2479
+ InputModule,
2480
+ FormModule$1,
2193
2481
  NgbModule], exports: [DossierListComponent, DossierDetailComponent] });
2194
2482
  DossierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierModule, imports: [CommonModule,
2195
2483
  DossierRoutingModule,
@@ -2231,6 +2519,10 @@ DossierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
2231
2519
  DocumentenApiMetadataModalModule,
2232
2520
  SearchableDropdownSelectModule,
2233
2521
  SearchFieldsModule,
2522
+ PageModule,
2523
+ FormModule,
2524
+ InputModule,
2525
+ FormModule$1,
2234
2526
  NgbModule] });
2235
2527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierModule, decorators: [{
2236
2528
  type: NgModule,
@@ -2244,6 +2536,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2244
2536
  DossierDetailTabDocumentsComponent,
2245
2537
  DossierDetailTabContactMomentsComponent,
2246
2538
  DossierDetailTabZaakobjectenComponent,
2539
+ DossierDetailTabNotesComponent,
2247
2540
  DossierUpdateComponent,
2248
2541
  DossierProcessStartModalComponent,
2249
2542
  DossierSupportingProcessStartModalComponent,
@@ -2251,6 +2544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2251
2544
  DossierDetailTabDocumentenApiDocumentsComponent,
2252
2545
  DossierDetailTabS3DocumentsComponent,
2253
2546
  DossierAssignUserComponent,
2547
+ NoteModalComponent
2254
2548
  ],
2255
2549
  imports: [
2256
2550
  CommonModule,
@@ -2293,7 +2587,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2293
2587
  DocumentenApiMetadataModalModule,
2294
2588
  SearchableDropdownSelectModule,
2295
2589
  SearchFieldsModule,
2296
- NgbModule,
2590
+ PageModule,
2591
+ FormModule,
2592
+ InputModule,
2593
+ FormModule$1,
2594
+ NgbModule
2297
2595
  ],
2298
2596
  exports: [DossierListComponent, DossierDetailComponent],
2299
2597
  }]
@@ -2319,5 +2617,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2319
2617
  * Generated bundle index. Do not edit.
2320
2618
  */
2321
2619
 
2322
- export { DEFAULT_TABS, DefaultTabs, DossierColumnService, DossierDetailComponent, DossierDetailTabAuditComponent, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentsComponent, DossierDetailTabProgressComponent, DossierDetailTabSummaryComponent, DossierDetailTabZaakobjectenComponent, DossierListComponent, DossierModule, DossierService, TAB_MAP, TabImpl, TabLoaderImpl, TabService, ZaakobjectenService };
2620
+ export { DEFAULT_TABS, DefaultTabs, DossierColumnService, DossierDetailComponent, DossierDetailTabAuditComponent, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentsComponent, DossierDetailTabNotesComponent, DossierDetailTabProgressComponent, DossierDetailTabSummaryComponent, DossierDetailTabZaakobjectenComponent, DossierListComponent, DossierModule, DossierService, TAB_MAP, TabImpl, TabLoaderImpl, TabService, ZaakobjectenService };
2323
2621
  //# sourceMappingURL=valtimo-dossier.mjs.map