@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
@@ -35,7 +35,7 @@ import { switchMap as switchMap$1, map as map$1, take as take$1, tap as tap$1 }
35
35
  import * as i3$2 from 'ngx-toastr';
36
36
  import * as i4$1 from '@valtimo/resource';
37
37
  import * as i3$3 from '@valtimo/user-interface';
38
- import { SelectModule, InputLabelModule, ParagraphModule, TableModule, ModalModule as ModalModule$1, TitleModule, ButtonModule } from '@valtimo/user-interface';
38
+ import { SelectModule, InputLabelModule, ParagraphModule, TableModule, ModalModule as ModalModule$1, TitleModule, ButtonModule, PageModule, InputModule, FormModule as FormModule$1 } from '@valtimo/user-interface';
39
39
  import * as i8$1 from 'keycloak-angular';
40
40
  import * as i1$2 from '@valtimo/contact-moment';
41
41
 
@@ -198,9 +198,15 @@ class DossierColumnService {
198
198
  Array.isArray(caseListColumns) &&
199
199
  caseListColumns.length > 0 &&
200
200
  this.mapCaseListColumnsToDefinitionColumns(caseListColumns);
201
- return customDefinitionTable || apiCaseListColumns || defaultDefinitionTable;
201
+ return {
202
+ columns: customDefinitionTable || apiCaseListColumns || defaultDefinitionTable,
203
+ hasApiConfig: !!apiCaseListColumns,
204
+ };
202
205
  }));
203
206
  }
207
+ hasEnvironmentConfig(documentDefinitionName) {
208
+ return !!this.configService.config?.customDefinitionTables[documentDefinitionName];
209
+ }
204
210
  mapCaseListColumnsToDefinitionColumns(caseListColumns) {
205
211
  return caseListColumns.map(caseListColumn => ({
206
212
  translationKey: caseListColumn.key,
@@ -305,6 +311,7 @@ var DefaultTabs;
305
311
  DefaultTabs["documents"] = "documents";
306
312
  DefaultTabs["contactMoments"] = "contact-moments";
307
313
  DefaultTabs["zaakobjecten"] = "zaakobjecten";
314
+ DefaultTabs["notes"] = "notes";
308
315
  })(DefaultTabs || (DefaultTabs = {}));
309
316
 
310
317
  /*
@@ -332,8 +339,8 @@ class DossierService {
332
339
  }
333
340
  getInitialSortState(columns) {
334
341
  const defaultColumn = columns.find(column => column.default);
335
- const isSorting = defaultColumn.default === 'ASC' || defaultColumn.default === 'DESC';
336
- const direction = typeof defaultColumn.default === 'boolean'
342
+ const isSorting = defaultColumn?.default === 'ASC' || defaultColumn?.default === 'DESC';
343
+ const direction = typeof !defaultColumn || defaultColumn.default === 'boolean'
337
344
  ? 'DESC'
338
345
  : defaultColumn.default;
339
346
  return {
@@ -501,6 +508,7 @@ class DossierListComponent {
501
508
  this.documentDefinitionName$ = this.route.params.pipe(map(params => params.documentDefinitionName || ''), tap(documentDefinitionName => {
502
509
  this.resetPagination(documentDefinitionName);
503
510
  }));
511
+ this.hasEnvColumnConfig$ = this.route.params.pipe(map(params => params.documentDefinitionName || ''), map(documentDefinitionName => this.dossierColumnService.hasEnvironmentConfig(documentDefinitionName)));
504
512
  this.canHaveAssignee$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.documentService.getCaseSettings(documentDefinitionName)), map(caseSettings => caseSettings?.canHaveAssignee));
505
513
  this.documentSearchFields$ = this.documentDefinitionName$.pipe(distinctUntilChanged(), tap(() => this.loadingDocumentSearchFields$.next(true)), switchMap(documentDefinitionName => this.documentService.getDocumentSearchFields(documentDefinitionName)), tap(() => this.loadingDocumentSearchFields$.next(false)));
506
514
  this.associatedProcessDocumentDefinitions$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => documentDefinitionName
@@ -509,20 +517,26 @@ class DossierListComponent {
509
517
  this.schema$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.documentService.getDocumentDefinition(documentDefinitionName)), map(documentDefinition => documentDefinition?.schema));
510
518
  this.storedSearchRequestKey$ = this.documentDefinitionName$.pipe(map(documentDefinitionName => `list-search-${documentDefinitionName}`));
511
519
  this.hasStoredSearchRequest$ = this.storedSearchRequestKey$.pipe(map(storedSearchRequestKey => localStorage.getItem(storedSearchRequestKey) !== null));
512
- this.columns$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.dossierColumnService.getDefinitionColumns(documentDefinitionName)));
520
+ this.hasApiColumnConfig$ = new BehaviorSubject(false);
521
+ this.columns$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.dossierColumnService.getDefinitionColumns(documentDefinitionName)), map(res => {
522
+ this.hasApiColumnConfig$.next(res.hasApiConfig);
523
+ return res.columns;
524
+ }));
513
525
  this.ASSIGNEE_KEY = 'assigneeFullName';
514
526
  this.fields$ = combineLatest([
515
527
  this.columns$,
516
528
  this.canHaveAssignee$,
529
+ this.hasEnvColumnConfig$,
517
530
  this.translateService.stream('key'),
518
- ]).pipe(map(([columns, canHaveAssignee]) => [
531
+ ]).pipe(map(([columns, canHaveAssignee, hasEnvConfig]) => [
519
532
  ...columns
520
533
  .map(column => {
521
534
  const translationKey = `fieldLabels.${column.translationKey}`;
522
535
  const translation = this.translateService.instant(translationKey);
523
536
  const validTranslation = translation !== translationKey && translation;
537
+ console.log('column', column);
524
538
  return {
525
- key: column.propertyName,
539
+ key: hasEnvConfig ? column.propertyName : column.translationKey,
526
540
  label: column.title || validTranslation || column.translationKey,
527
541
  sortable: column.sortable,
528
542
  ...(column.viewType && { viewType: column.viewType }),
@@ -564,27 +578,52 @@ class DossierListComponent {
564
578
  this.documentSearchRequest$,
565
579
  this.searchFieldValues$,
566
580
  this.assigneeFilter$,
581
+ this.hasEnvColumnConfig$,
582
+ this.hasApiColumnConfig$,
567
583
  ]).pipe(distinctUntilChanged(([prevSearchRequest, prevSearchValues, prevAssigneeFilter], [currSearchRequest, currSearchValues, currAssigneeFilter]) => JSON.stringify({ ...prevSearchRequest, ...prevSearchValues }) + prevAssigneeFilter ===
568
584
  JSON.stringify({ ...currSearchRequest, ...currSearchValues }) + currAssigneeFilter), tap(([documentSearchRequest]) => {
569
585
  this.storedSearchRequestKey$.pipe(take(1)).subscribe(storedSearchRequestKey => {
570
586
  this.logger.debug(`store request in local storage: ${JSON.stringify(documentSearchRequest)}`);
571
587
  localStorage.setItem(storedSearchRequestKey, JSON.stringify(documentSearchRequest));
572
588
  });
573
- }), switchMap(([documentSearchRequest, searchValues, assigneeFilter]) => {
589
+ }), switchMap(([documentSearchRequest, searchValues, assigneeFilter, hasEnvColumnConfig, hasApiColumnConfig,]) => {
574
590
  if ((Object.keys(searchValues) || []).length > 0) {
575
- return this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.mapSearchValuesToFilters(searchValues));
591
+ return hasEnvColumnConfig || !hasApiColumnConfig
592
+ ? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.mapSearchValuesToFilters(searchValues))
593
+ : this.documentService.getSpecifiedDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.mapSearchValuesToFilters(searchValues));
576
594
  }
577
595
  else {
578
- return this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter);
596
+ return hasEnvColumnConfig || !hasApiColumnConfig
597
+ ? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter)
598
+ : this.documentService.getSpecifiedDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter);
579
599
  }
580
600
  }), tap(documents => {
581
601
  this.setCollectionSize(documents);
582
602
  this.checkPage(documents);
583
603
  }));
584
- this.documentItems$ = this.documentsRequest$.pipe(map(documents => documents.content.map(document => {
585
- const { content, ...others } = document;
586
- return { ...content, ...others };
587
- })), tap(() => this.loading$.next(false)));
604
+ this.documentItems$ = combineLatest([
605
+ this.documentsRequest$,
606
+ this.hasEnvColumnConfig$,
607
+ this.hasApiColumnConfig$,
608
+ ]).pipe(map(([documents, hasEnvColumnConfig, hasApiColumnConfig]) => {
609
+ if (hasEnvColumnConfig || !hasApiColumnConfig) {
610
+ const docsToMap = documents;
611
+ return documents.content.map(document => {
612
+ const { content, ...others } = document;
613
+ return { ...content, ...others };
614
+ });
615
+ }
616
+ else {
617
+ const docsToMap = documents;
618
+ return docsToMap.content.reduce((acc, curr) => {
619
+ const propsObject = {};
620
+ curr.items.forEach(item => {
621
+ propsObject[item.key] = item.value;
622
+ });
623
+ return [...acc, propsObject];
624
+ }, []);
625
+ }
626
+ }), tap(returnValue => console.log(returnValue)), tap(() => this.loading$.next(false)));
588
627
  this.dossierVisibleTabs = this.configService.config?.visibleDossierListTabs || null;
589
628
  }
590
629
  ngOnInit() {
@@ -1651,7 +1690,11 @@ class DossierAssignUserComponent {
1651
1690
  mapUsersForDropdown(users) {
1652
1691
  return (users &&
1653
1692
  users
1654
- .sort((a, b) => a.lastName.localeCompare(b.lastName))
1693
+ .sort((a, b) => {
1694
+ if (a.lastName && b.lastName) {
1695
+ return a.lastName.localeCompare(b.lastName);
1696
+ }
1697
+ })
1655
1698
  .map(user => ({ text: `${user.firstName} ${user.lastName}`, id: user.id })));
1656
1699
  }
1657
1700
  clear() {
@@ -1815,10 +1858,10 @@ class DossierDetailComponent {
1815
1858
  }
1816
1859
  }
1817
1860
  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 });
1818
- 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" }] });
1861
+ 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" }] });
1819
1862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierDetailComponent, decorators: [{
1820
1863
  type: Component,
1821
- 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"] }]
1864
+ 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"] }]
1822
1865
  }], 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: [{
1823
1866
  type: ViewChild,
1824
1867
  args: ['tabContainer', { read: ViewContainerRef, static: true }]
@@ -2005,6 +2048,245 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2005
2048
  args: ['viewZaakobjectModal']
2006
2049
  }] } });
2007
2050
 
2051
+ /*
2052
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
2053
+ *
2054
+ * Licensed under EUPL, Version 1.2 (the "License");
2055
+ * you may not use this file except in compliance with the License.
2056
+ * You may obtain a copy of the License at
2057
+ *
2058
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2059
+ *
2060
+ * Unless required by applicable law or agreed to in writing, software
2061
+ * distributed under the License is distributed on an "AS IS" basis,
2062
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2063
+ * See the License for the specific language governing permissions and
2064
+ * limitations under the License.
2065
+ */
2066
+ class NotesService {
2067
+ constructor(configService, http) {
2068
+ this.configService = configService;
2069
+ this.http = http;
2070
+ this.VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;
2071
+ this._showModal$ = new Subject();
2072
+ this._hideModal$ = new Subject();
2073
+ this._refresh$ = new BehaviorSubject(null);
2074
+ this._modalType$ = new BehaviorSubject('add');
2075
+ }
2076
+ getDocumentNotes(documentId, params) {
2077
+ return this.http.get(`${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`, { params });
2078
+ }
2079
+ createDocumentNote(documentId, request) {
2080
+ return this.http.post(`${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`, request);
2081
+ }
2082
+ get showModal$() {
2083
+ return this._showModal$.asObservable();
2084
+ }
2085
+ get hideModal$() {
2086
+ return this._hideModal$.asObservable();
2087
+ }
2088
+ get refresh$() {
2089
+ return this._refresh$.asObservable();
2090
+ }
2091
+ get modalType$() {
2092
+ return this._modalType$.asObservable();
2093
+ }
2094
+ showModal() {
2095
+ this._showModal$.next(null);
2096
+ }
2097
+ hideModal() {
2098
+ this._hideModal$.next(null);
2099
+ }
2100
+ refresh() {
2101
+ this._refresh$.next(null);
2102
+ }
2103
+ setModalType(type) {
2104
+ this._modalType$.next(type);
2105
+ }
2106
+ }
2107
+ 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 });
2108
+ NotesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NotesService, providedIn: 'root' });
2109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NotesService, decorators: [{
2110
+ type: Injectable,
2111
+ args: [{
2112
+ providedIn: 'root',
2113
+ }]
2114
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2$1.HttpClient }]; } });
2115
+
2116
+ /*
2117
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
2118
+ *
2119
+ * Licensed under EUPL, Version 1.2 (the "License");
2120
+ * you may not use this file except in compliance with the License.
2121
+ * You may obtain a copy of the License at
2122
+ *
2123
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2124
+ *
2125
+ * Unless required by applicable law or agreed to in writing, software
2126
+ * distributed under the License is distributed on an "AS IS" basis,
2127
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2128
+ * See the License for the specific language governing permissions and
2129
+ * limitations under the License.
2130
+ */
2131
+ class NoteModalComponent {
2132
+ constructor(notesService, modalService) {
2133
+ this.notesService = notesService;
2134
+ this.modalService = modalService;
2135
+ this.createNoteEvent = new EventEmitter();
2136
+ this.valid$ = new BehaviorSubject(false);
2137
+ this.showForm$ = this.modalService.modalVisible$;
2138
+ this.formData$ = new BehaviorSubject(null);
2139
+ this.returnToFirstStepSubject$ = new Subject();
2140
+ }
2141
+ ngAfterViewInit() {
2142
+ this.openShowSubscription();
2143
+ this.openHideSubscription();
2144
+ }
2145
+ ngOnDestroy() {
2146
+ this.showSubscription?.unsubscribe();
2147
+ this.hideSubscription?.unsubscribe();
2148
+ }
2149
+ hide() {
2150
+ this.formData$.next(null);
2151
+ this.valid$.next(false);
2152
+ this.modalService.closeModal();
2153
+ }
2154
+ cancel() {
2155
+ this.hide();
2156
+ }
2157
+ save() {
2158
+ combineLatest([this.valid$, this.formData$])
2159
+ .pipe(take$1(1))
2160
+ .subscribe(([valid, formData]) => {
2161
+ if (valid) {
2162
+ this.createNoteEvent.emit(formData);
2163
+ }
2164
+ });
2165
+ }
2166
+ openShowSubscription() {
2167
+ this.showSubscription = this.notesService.showModal$.subscribe(() => {
2168
+ this.show();
2169
+ });
2170
+ }
2171
+ openHideSubscription() {
2172
+ this.hideSubscription = this.notesService.hideModal$.subscribe(() => {
2173
+ this.hide();
2174
+ });
2175
+ }
2176
+ show() {
2177
+ this.notesService.modalType$.pipe(take$1(1)).subscribe(modalType => {
2178
+ if (modalType === 'add') {
2179
+ this.modalService.openModal(this.addNoteModal);
2180
+ }
2181
+ });
2182
+ }
2183
+ formValueChange(data) {
2184
+ this.formData$.next(data);
2185
+ this.setValid(data);
2186
+ }
2187
+ setValid(data) {
2188
+ this.valid$.next(!!data.content);
2189
+ }
2190
+ }
2191
+ 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 });
2192
+ 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" }] });
2193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoteModalComponent, decorators: [{
2194
+ type: Component,
2195
+ 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"] }]
2196
+ }], ctorParameters: function () { return [{ type: NotesService }, { type: i3$3.ModalService }]; }, propDecorators: { addNoteModal: [{
2197
+ type: ViewChild,
2198
+ args: ['addNoteModal']
2199
+ }], createNoteEvent: [{
2200
+ type: Output
2201
+ }] } });
2202
+
2203
+ /*
2204
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
2205
+ *
2206
+ * Licensed under EUPL, Version 1.2 (the "License");
2207
+ * you may not use this file except in compliance with the License.
2208
+ * You may obtain a copy of the License at
2209
+ *
2210
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2211
+ *
2212
+ * Unless required by applicable law or agreed to in writing, software
2213
+ * distributed under the License is distributed on an "AS IS" basis,
2214
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2215
+ * See the License for the specific language governing permissions and
2216
+ * limitations under the License.
2217
+ */
2218
+ class DossierDetailTabNotesComponent {
2219
+ constructor(route, notesService, translateService) {
2220
+ this.route = route;
2221
+ this.notesService = notesService;
2222
+ this.translateService = translateService;
2223
+ this.timelineItems = [];
2224
+ this.loading$ = new BehaviorSubject(true);
2225
+ this.fields$ = new BehaviorSubject([]);
2226
+ this.documentId$ = this.route.params.pipe(map(params => params.documentId));
2227
+ this.currentPageAndSize$ = new BehaviorSubject({
2228
+ page: 0,
2229
+ size: 10,
2230
+ });
2231
+ this.pageSizes$ = new BehaviorSubject({
2232
+ collectionSize: 0,
2233
+ maxPaginationItemSize: 5,
2234
+ });
2235
+ this.pagination$ = combineLatest([
2236
+ this.currentPageAndSize$,
2237
+ this.pageSizes$,
2238
+ ]).pipe(map(([currentPage, sizes]) => ({ ...currentPage, ...sizes, page: currentPage.page + 1 })));
2239
+ this.notes$ = combineLatest([
2240
+ this.documentId$,
2241
+ this.currentPageAndSize$,
2242
+ this.notesService.refresh$
2243
+ ]).pipe(tap$1(() => this.timelineItems = []), switchMap$1(([documentId, currentPage]) => this.notesService.getDocumentNotes(documentId, { page: currentPage.page, size: currentPage.size })), tap$1((res) => {
2244
+ this.timelineItems = [];
2245
+ this.pageSizes$.pipe(take$1(1)).subscribe(sizes => {
2246
+ this.pageSizes$.next({ ...sizes, collectionSize: res.totalElements });
2247
+ });
2248
+ }), map((res) => res.content.map((note) => {
2249
+ const noteCreatedDate = moment(note.createdDate).locale(this.translateService.currentLang);
2250
+ this.timelineItems.push(new TimelineItemImpl(noteCreatedDate.format('DD MMM YYYY'), noteCreatedDate.format('HH:mm'), note.createdByUserFullName, noteCreatedDate.fromNow(), note.content, {}));
2251
+ return ({
2252
+ ...note
2253
+ });
2254
+ })), tap$1(() => this.loading$.next(false)));
2255
+ }
2256
+ ngOnInit() {
2257
+ this.translateService.onLangChange.subscribe(() => {
2258
+ this.notesService.refresh();
2259
+ });
2260
+ }
2261
+ paginationClicked(newPageNumber) {
2262
+ this.currentPageAndSize$.pipe(take$1(1)).subscribe(currentPage => {
2263
+ this.currentPageAndSize$.next({ ...currentPage, page: newPageNumber - 1 });
2264
+ });
2265
+ }
2266
+ showAddModal() {
2267
+ this.notesService.setModalType('add');
2268
+ this.notesService.showModal();
2269
+ }
2270
+ createNewNote(content) {
2271
+ this.documentId$
2272
+ .pipe(take$1(1))
2273
+ .pipe(tap$1(documentId => {
2274
+ this.notesService.createDocumentNote(documentId, content)
2275
+ .subscribe(() => {
2276
+ this.notesService.refresh();
2277
+ this.notesService.hideModal();
2278
+ });
2279
+ }))
2280
+ .subscribe();
2281
+ }
2282
+ }
2283
+ 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 });
2284
+ 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" }] });
2285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierDetailTabNotesComponent, decorators: [{
2286
+ type: Component,
2287
+ 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"] }]
2288
+ }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: NotesService }, { type: i6$1.TranslateService }]; } });
2289
+
2008
2290
  /*
2009
2291
  * Copyright 2015-2020 Ritense BV, the Netherlands.
2010
2292
  *
@@ -2204,13 +2486,15 @@ DossierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
2204
2486
  DossierDetailTabDocumentsComponent,
2205
2487
  DossierDetailTabContactMomentsComponent,
2206
2488
  DossierDetailTabZaakobjectenComponent,
2489
+ DossierDetailTabNotesComponent,
2207
2490
  DossierUpdateComponent,
2208
2491
  DossierProcessStartModalComponent,
2209
2492
  DossierSupportingProcessStartModalComponent,
2210
2493
  DossierDetailTabObjectTypeComponent,
2211
2494
  DossierDetailTabDocumentenApiDocumentsComponent,
2212
2495
  DossierDetailTabS3DocumentsComponent,
2213
- DossierAssignUserComponent], imports: [CommonModule,
2496
+ DossierAssignUserComponent,
2497
+ NoteModalComponent], imports: [CommonModule,
2214
2498
  DossierRoutingModule,
2215
2499
  ListModule,
2216
2500
  WidgetModule,
@@ -2242,6 +2526,10 @@ DossierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
2242
2526
  DocumentenApiMetadataModalModule,
2243
2527
  SearchableDropdownSelectModule,
2244
2528
  SearchFieldsModule,
2529
+ PageModule,
2530
+ FormModule,
2531
+ InputModule,
2532
+ FormModule$1,
2245
2533
  NgbModule], exports: [DossierListComponent, DossierDetailComponent] });
2246
2534
  DossierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierModule, imports: [CommonModule,
2247
2535
  DossierRoutingModule,
@@ -2283,6 +2571,10 @@ DossierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
2283
2571
  DocumentenApiMetadataModalModule,
2284
2572
  SearchableDropdownSelectModule,
2285
2573
  SearchFieldsModule,
2574
+ PageModule,
2575
+ FormModule,
2576
+ InputModule,
2577
+ FormModule$1,
2286
2578
  NgbModule] });
2287
2579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DossierModule, decorators: [{
2288
2580
  type: NgModule,
@@ -2296,6 +2588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2296
2588
  DossierDetailTabDocumentsComponent,
2297
2589
  DossierDetailTabContactMomentsComponent,
2298
2590
  DossierDetailTabZaakobjectenComponent,
2591
+ DossierDetailTabNotesComponent,
2299
2592
  DossierUpdateComponent,
2300
2593
  DossierProcessStartModalComponent,
2301
2594
  DossierSupportingProcessStartModalComponent,
@@ -2303,6 +2596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2303
2596
  DossierDetailTabDocumentenApiDocumentsComponent,
2304
2597
  DossierDetailTabS3DocumentsComponent,
2305
2598
  DossierAssignUserComponent,
2599
+ NoteModalComponent
2306
2600
  ],
2307
2601
  imports: [
2308
2602
  CommonModule,
@@ -2345,7 +2639,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2345
2639
  DocumentenApiMetadataModalModule,
2346
2640
  SearchableDropdownSelectModule,
2347
2641
  SearchFieldsModule,
2348
- NgbModule,
2642
+ PageModule,
2643
+ FormModule,
2644
+ InputModule,
2645
+ FormModule$1,
2646
+ NgbModule
2349
2647
  ],
2350
2648
  exports: [DossierListComponent, DossierDetailComponent],
2351
2649
  }]
@@ -2371,5 +2669,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2371
2669
  * Generated bundle index. Do not edit.
2372
2670
  */
2373
2671
 
2374
- export { DEFAULT_TABS, DefaultTabs, DossierColumnService, DossierDetailComponent, DossierDetailTabAuditComponent, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentsComponent, DossierDetailTabProgressComponent, DossierDetailTabSummaryComponent, DossierDetailTabZaakobjectenComponent, DossierListComponent, DossierModule, DossierService, TAB_MAP, TabImpl, TabLoaderImpl, TabService, ZaakobjectenService };
2672
+ export { DEFAULT_TABS, DefaultTabs, DossierColumnService, DossierDetailComponent, DossierDetailTabAuditComponent, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentsComponent, DossierDetailTabNotesComponent, DossierDetailTabProgressComponent, DossierDetailTabSummaryComponent, DossierDetailTabZaakobjectenComponent, DossierListComponent, DossierModule, DossierService, TAB_MAP, TabImpl, TabLoaderImpl, TabService, ZaakobjectenService };
2375
2673
  //# sourceMappingURL=valtimo-dossier.mjs.map