@valtimo/dossier 5.9.1 → 5.10.0
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.
- package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +162 -0
- package/esm2020/lib/dossier-detail/tab/documents/documents.component.mjs +17 -91
- package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +3 -2
- package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +132 -0
- package/esm2020/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +1 -2
- package/esm2020/lib/dossier.module.mjs +13 -4
- package/fesm2015/valtimo-dossier.mjs +265 -62
- package/fesm2015/valtimo-dossier.mjs.map +1 -1
- package/fesm2020/valtimo-dossier.mjs +269 -64
- package/fesm2020/valtimo-dossier.mjs.map +1 -1
- package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts +63 -0
- package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -0
- package/lib/dossier-detail/tab/documents/documents.component.d.ts +6 -40
- package/lib/dossier-detail/tab/documents/documents.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts +50 -0
- package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -0
- package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/lib/dossier.module.d.ts +14 -12
- package/lib/dossier.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-dossier.mjs","sources":["../../../../projects/valtimo/dossier/src/lib/models/tabs.model.ts","../../../../projects/valtimo/dossier/src/lib/models/index.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail-tab-enum.ts","../../../../projects/valtimo/dossier/src/lib/dossier.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-process-start-modal/dossier-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-process-start-modal/dossier-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-list/dossier-list.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-list/dossier-list.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/summary/summary.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/summary/summary.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/progress/progress.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/progress/progress.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/audit/audit.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/audit/audit.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documents/documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documents/documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier.config.ts","../../../../projects/valtimo/dossier/src/lib/services/zaakobjecten.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/object-type/object-type.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/object-type/object-type.component.html","../../../../projects/valtimo/dossier/src/lib/tab.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/dossier-detail.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/dossier-detail.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/contact-moments/contact-moments.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-update/dossier-update.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-update/dossier-update.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-routing.module.ts","../../../../projects/valtimo/dossier/src/lib/dossier.module.ts","../../../../projects/valtimo/dossier/src/public_api.ts","../../../../projects/valtimo/dossier/src/valtimo-dossier.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Router} from '@angular/router';\nimport {Location} from '@angular/common';\n\nexport interface TabLoader<T_TAB extends Tab> {\n tabs: T_TAB[];\n\n initial(tabName?: string): void;\n\n load(tabToLoad: T_TAB): void;\n\n translateTabName(tab: T_TAB): string;\n}\n\nexport class TabLoaderImpl implements TabLoader<TabImpl> {\n private readonly _tabs: TabImpl[] = null;\n private readonly _componentFactoryResolver: ComponentFactoryResolver = null;\n private readonly _viewContainerRef: ViewContainerRef = null;\n private _activeComponent: ComponentRef<any> = null;\n private _activeTab: TabImpl = null;\n private _translateService: TranslateService = null;\n private _router: Router;\n private _location: Location;\n\n constructor(\n tabs: TabImpl[],\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n translateService: TranslateService,\n router: Router,\n location: Location\n ) {\n this._tabs = tabs;\n this._componentFactoryResolver = componentFactoryResolver;\n this._viewContainerRef = viewContainerRef;\n this._translateService = translateService;\n this._router = router;\n this._location = location;\n }\n\n initial(tabName?: string): void {\n let initialTab;\n if (tabName) {\n initialTab = this._tabs.find(tab => tab.name === tabName);\n } else {\n initialTab = this._tabs[0] || null;\n }\n this.load(initialTab);\n }\n\n load(newTab: TabImpl): void {\n if (newTab !== this._activeTab) {\n this._tabs.forEach(tab => tab.deactivate());\n this.replaceView(newTab);\n this.replaceUrlState(newTab);\n this.setActive(newTab);\n }\n }\n\n refreshView() {\n this.replaceView(this._activeTab);\n }\n\n private replaceView(tab: TabImpl): void {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(tab.component);\n this._viewContainerRef.clear();\n if (this._activeTab !== null) {\n this._activeComponent.destroy();\n }\n this._activeComponent = this._viewContainerRef.createComponent(componentFactory);\n }\n\n private replaceUrlState(tab: TabImpl): void {\n const currentUrl = this._router.url;\n const urlParts = currentUrl.split('/');\n urlParts.splice(urlParts.length - 1, 1, tab.name);\n const newUrl = urlParts.join('/');\n this._location.replaceState(newUrl);\n }\n\n private setActive(tab: TabImpl): void {\n tab.activate();\n this._activeTab = tab;\n }\n\n get tabs(): TabImpl[] {\n return this._tabs;\n }\n\n translateTabName(tab: TabImpl): string {\n const translationId = 'dossier.tabs.' + tab.name;\n const translation = this._translateService.instant('dossier.tabs.' + tab.name);\n return translationId !== translation ? translation : tab.name;\n }\n}\n\nexport interface Tab {\n name: string;\n sequence: number;\n component: any;\n\n activate(): void;\n\n deactivate(): void;\n\n isActive(): boolean;\n}\n\nexport class TabImpl implements Tab {\n private readonly _name: string;\n private readonly _sequence: number;\n private readonly _component: any;\n private _active = false;\n\n constructor(name: string, sequence: number, component: any) {\n this._name = name;\n this._sequence = sequence;\n this._component = component;\n }\n\n get name(): string {\n return this._name;\n }\n\n get sequence(): number {\n return this._sequence;\n }\n\n get component(): any {\n return this._component;\n }\n\n activate(): void {\n this._active = true;\n }\n\n deactivate(): void {\n this._active = false;\n }\n\n isActive(): boolean {\n return this._active;\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tabs.model';\nexport * from './zaakobjecten.model';\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum DefaultTabs {\n summary = 'summary',\n progress = 'progress',\n audit = 'audit',\n documents = 'documents',\n contactMoments = 'contact-moments',\n zaakobjecten = 'zaakobjecten',\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, DefinitionColumn, Direction} from '@valtimo/config';\nimport {SortState} from '@valtimo/document';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierService {\n private readonly definitions: any;\n\n constructor(private readonly configService: ConfigService) {\n this.definitions = configService.config.definitions;\n }\n\n getImplementationEnvironmentDefinitions(name: string) {\n return this.definitions.dossiers.find(definition => definition.name === name);\n }\n\n getDefinitionColumns(definitionNameId: string): Array<DefinitionColumn> {\n const config = this.configService.config;\n const customDefinitionTable = config.customDefinitionTables[definitionNameId];\n return customDefinitionTable || config.defaultDefinitionTable;\n }\n\n getInitialSortState(columns: Array<DefinitionColumn>): SortState {\n const defaultColumn = columns.find(column => column.default);\n const isSorting = defaultColumn.default === 'ASC' || defaultColumn.default === 'DESC';\n const direction: Direction =\n typeof defaultColumn.default === 'boolean'\n ? 'DESC'\n : (defaultColumn.default as any as Direction);\n\n return {\n isSorting,\n state: {\n name: defaultColumn ? defaultColumn.propertyName : columns[0].propertyName,\n direction,\n },\n };\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormAssociation, FormLinkService, FormSubmissionResult} from '@valtimo/form-link';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {FormioBeforeSubmit} from '@formio/angular/formio.common';\nimport {FormioForm} from '@formio/angular';\nimport {NGXLogger} from 'ngx-logger';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-process-start-modal',\n templateUrl: './dossier-process-start-modal.component.html',\n styleUrls: ['./dossier-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierProcessStartModalComponent implements OnInit {\n public processDefinitionKey: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formioSubmission: FormioSubmission;\n private formAssociation: FormAssociation;\n public options: ValtimoFormioOptions;\n public isAdmin: boolean;\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('processStartModal', {static: false}) modal: ModalComponent;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private formLinkService: FormLinkService,\n private userProviderService: UserProviderService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.isUserAdmin();\n }\n\n private loadFormDefinition() {\n this.formDefinition = null;\n this.formLinkService\n .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey)\n .subscribe(\n formDefinition => {\n this.formAssociation = formDefinition.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinition;\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([formDefinition.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.router.navigate([formDefinition.formAssociation.formLink.url]);\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n },\n errors => {\n this.modal.show();\n }\n );\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition) {\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadFormDefinition();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n this.formLinkService\n .onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data)\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.modal.hide();\n this.router.navigate([\n 'dossiers',\n this.documentDefinitionName,\n 'document',\n formSubmissionResult.documentId,\n 'summary',\n ]);\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n\n public isUserAdmin() {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.logger.error('Failed to retrieve user identity', error);\n this.isAdmin = false;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DefinitionColumn} from '@valtimo/config';\nimport {\n DocumentSearchRequest,\n DocumentSearchRequestImpl,\n DocumentService,\n SortState,\n ProcessDocumentDefinition,\n Documents,\n DocumentDefinition,\n} from '@valtimo/document';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n Observable,\n of,\n startWith,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DefaultTabs} from '../dossier-detail-tab-enum';\nimport {DossierProcessStartModalComponent} from '../dossier-process-start-modal/dossier-process-start-modal.component';\nimport {DossierService} from '../dossier.service';\nimport {Pagination, ListField} from '@valtimo/components';\nimport {NGXLogger} from 'ngx-logger';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-list',\n templateUrl: './dossier-list.component.html',\n styleUrls: ['./dossier-list.component.css'],\n})\nexport class DossierListComponent implements OnInit {\n @ViewChild('processStartModal') processStart: DossierProcessStartModalComponent;\n\n private selectedProcessDocumentDefinition: ProcessDocumentDefinition | null = null;\n private modalListenerAdded = false;\n\n private readonly settingPaginationForDocName$ = new BehaviorSubject<string | undefined>(\n undefined\n );\n\n private readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.documentDefinitionName || ''),\n tap(documentDefinitionName => {\n this.resetPagination(documentDefinitionName);\n })\n );\n\n readonly associatedProcessDocumentDefinitions$: Observable<Array<ProcessDocumentDefinition>> =\n this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n documentDefinitionName\n ? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)\n : of([])\n ),\n map(processDocumentDefinitions =>\n processDocumentDefinitions.filter(definition => definition.canInitializeDocument)\n )\n );\n\n readonly schema$ = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n ),\n map(documentDefinition => documentDefinition?.schema)\n );\n\n private readonly storedSearchRequestKey$: Observable<string> = this.documentDefinitionName$.pipe(\n map(documentDefinitionName => `list-search-${documentDefinitionName}`)\n );\n\n private readonly hasStoredSearchRequest$: Observable<boolean> = this.storedSearchRequestKey$.pipe(\n map(storedSearchRequestKey => localStorage.getItem(storedSearchRequestKey) !== null)\n );\n\n private readonly columns$: Observable<Array<DefinitionColumn>> =\n this.documentDefinitionName$.pipe(\n map(documentDefinitionName =>\n this.dossierService.getDefinitionColumns(documentDefinitionName)\n )\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this.columns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) =>\n columns.map((column, index) => ({\n key: column.propertyName,\n label: this.translateService.instant(`fieldLabels.${column.translationKey}`),\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n }))\n )\n );\n\n private readonly DEFAULT_PAGINATION: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n sort: undefined,\n };\n\n private readonly pagination$ = new BehaviorSubject<Pagination | undefined>(undefined);\n\n readonly paginationCopy$ = this.pagination$.pipe(\n map(pagination => pagination && JSON.parse(JSON.stringify(pagination)))\n );\n\n readonly sequence$ = new BehaviorSubject<number | undefined>(undefined);\n\n readonly globalSearchFilter$ = new BehaviorSubject<string | undefined>(undefined);\n\n private readonly createdBy$ = new BehaviorSubject<string | undefined>(undefined);\n\n private readonly documentSearchRequest$: Observable<DocumentSearchRequest> = combineLatest([\n this.pagination$,\n this.documentDefinitionName$,\n this.sequence$,\n this.createdBy$,\n this.globalSearchFilter$,\n ]).pipe(\n filter(([pagination]) => !!pagination),\n map(\n ([pagination, documentDefinitionName, sequence, createdBy, globalSearchFilter]) =>\n new DocumentSearchRequestImpl(\n documentDefinitionName,\n pagination.page - 1,\n pagination.size,\n sequence,\n createdBy,\n globalSearchFilter,\n pagination.sort\n )\n )\n );\n\n private readonly documentsRequest$: Observable<Documents> = this.documentSearchRequest$.pipe(\n distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n tap(request => {\n this.storedSearchRequestKey$.pipe(take(1)).subscribe(storedSearchRequestKey => {\n this.logger.debug(`store request in local storage: ${JSON.stringify(request)}`);\n localStorage.setItem(storedSearchRequestKey, JSON.stringify(request));\n });\n }),\n switchMap(documentSearchRequest => this.documentService.getDocuments(documentSearchRequest)),\n tap(documents => {\n this.setCollectionSize(documents);\n })\n );\n\n readonly documentItems$ = this.documentsRequest$.pipe(\n map(documents =>\n documents.content.map(document => {\n const {content, ...others} = document;\n return {...content, ...others};\n })\n )\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly dossierService: DossierService,\n private readonly logger: NGXLogger\n ) {}\n\n ngOnInit(): void {\n this.modalListenerAdded = false;\n }\n\n globalSearchFilterChange(searchFilter: string): void {\n this.globalSearchFilter$.next(searchFilter);\n this.pageChange(1);\n }\n\n sequenceChange(sequence: string): void {\n this.sequence$.next(Number(sequence));\n this.pageChange(1);\n }\n\n pageChange(newPage: number): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.page !== newPage) {\n this.logger.debug(`Page change: ${newPage}`);\n this.pagination$.next({...pagination, page: newPage});\n }\n });\n }\n\n pageSizeChange(newPageSize: number): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.size !== newPageSize) {\n const amountOfAvailablePages = Math.ceil(pagination.collectionSize / newPageSize);\n const newPage =\n amountOfAvailablePages < pagination.page ? amountOfAvailablePages : pagination.page;\n\n this.logger.debug(`Page size change. New Page: ${newPage} New page size: ${newPageSize}`);\n this.pagination$.next({...pagination, size: newPageSize, page: newPage});\n }\n });\n }\n\n sortChanged(newSortState: SortState): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && JSON.stringify(pagination.sort) !== JSON.stringify(newSortState)) {\n this.logger.debug(`Sort state change: ${JSON.stringify(newSortState)}`);\n this.pagination$.next({...pagination, sort: newSortState});\n }\n });\n }\n\n rowClick(document: any): void {\n this.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.router.navigate([\n `/dossiers/${documentDefinitionName}/document/${document.id}/${DefaultTabs.summary}`,\n ]);\n });\n }\n\n startDossier(): void {\n this.associatedProcessDocumentDefinitions$\n .pipe(take(1))\n .subscribe(associatedProcessDocumentDefinitions => {\n if (associatedProcessDocumentDefinitions.length > 1) {\n $('#startProcess').modal('show');\n } else {\n this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];\n this.showStartProcessModal();\n }\n });\n }\n\n selectProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n const modal = $('#startProcess');\n if (!this.modalListenerAdded) {\n modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));\n this.modalListenerAdded = true;\n }\n this.selectedProcessDocumentDefinition = processDocumentDefinition;\n modal.modal('hide');\n }\n\n private resetPagination(documentDefinitionName): void {\n this.settingPaginationForDocName$.pipe(take(1)).subscribe(settingPaginationForDocName => {\n if (documentDefinitionName !== settingPaginationForDocName) {\n this.pagination$.next(undefined);\n this.logger.debug('clear pagination');\n this.settingPaginationForDocName$.next(documentDefinitionName);\n this.setPagination(documentDefinitionName);\n }\n });\n }\n\n private setPagination(documentDefinitionName: string): void {\n combineLatest([this.hasStoredSearchRequest$, this.storedSearchRequestKey$, this.columns$])\n .pipe(take(1))\n .subscribe(([hasStoredSearchRequest, storedSearchRequestKey, columns]) => {\n const defaultPagination: Pagination = this.getDefaultPagination(columns);\n const storedPagination: Pagination = this.getStoredPagination(\n hasStoredSearchRequest,\n storedSearchRequestKey\n );\n\n this.logger.debug(\n `Set pagination: ${JSON.stringify(storedPagination || defaultPagination)}`\n );\n this.pagination$.next(storedPagination || defaultPagination);\n });\n }\n\n private getDefaultPagination(columns: Array<DefinitionColumn>): Pagination {\n const defaultSortState = this.dossierService.getInitialSortState(columns);\n\n return {\n ...this.DEFAULT_PAGINATION,\n sort: defaultSortState,\n };\n }\n\n private getStoredPagination(\n hasStoredSearchRequest: boolean,\n storedSearchRequestKey: string\n ): Pagination | undefined {\n const storedSearchRequest =\n hasStoredSearchRequest && JSON.parse(localStorage.getItem(storedSearchRequestKey));\n\n return (\n storedSearchRequest && {\n ...this.DEFAULT_PAGINATION,\n sort: storedSearchRequest.sort,\n page: storedSearchRequest.page + 1,\n size: storedSearchRequest.size,\n }\n );\n }\n\n private setCollectionSize(documents: Documents): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination.collectionSize !== documents.totalElements) {\n this.pagination$.next({...pagination, collectionSize: documents.totalElements});\n }\n });\n }\n\n private showStartProcessModal(): void {\n if (this.selectedProcessDocumentDefinition !== null) {\n this.processStart.openModal(this.selectedProcessDocumentDefinition);\n this.selectedProcessDocumentDefinition = null;\n }\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div\n *ngIf=\"\n associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\n \"\n >\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"list\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #list>\n <ng-container *ngIf=\"paginationCopy$ | async as pagination\">\n <ng-container *ngIf=\"fields$ | async as fields\">\n <valtimo-list\n *ngIf=\"documentItems$ | async as documentItems\"\n [items]=\"documentItems\"\n [fields]=\"fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ (schema$ | async)?.title }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{ documentItems?.length || 0 }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">Search</h4>\n <div class=\"mb-4\">\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'dossier.forms.globalSearchPlaceHolder' | translate }}\"\n [ngModel]=\"globalSearchFilter$ | async\"\n (ngModelChange)=\"globalSearchFilterChange($event)\"\n />\n </div>\n\n <div class=\"mb-4\">\n <input\n type=\"number\"\n class=\"form-control\"\n placeholder=\"{{ 'dossier.forms.referenceNumberPlaceHolder' | translate }}\"\n [ngModel]=\"sequence$ | async\"\n (ngModelChange)=\"sequenceChange($event)\"\n />\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n OnInit,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ProcessInstanceTask, ProcessService} from '@valtimo/process';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentInstance} from '@valtimo/document';\nimport {TaskDetailModalComponent, TaskService} from '@valtimo/task';\nimport {FormService} from '@valtimo/form';\nimport {FormioOptionsImpl, ValtimoFormioOptions} from '@valtimo/components';\nimport moment from 'moment';\nimport {FormioForm} from '@formio/angular';\nimport {UserProviderService} from '@valtimo/security';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierDetailTabSummaryComponent implements OnInit {\n public readonly documentDefinitionName: string;\n public document: Document;\n public documentId: string;\n public processDocumentInstances: ProcessDocumentInstance[] = [];\n private snapshot: ParamMap;\n public tasks: ProcessInstanceTask[] = [];\n public moment;\n public formDefinition: FormioForm = null;\n public options: ValtimoFormioOptions;\n public roles: string[] = [];\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n\n constructor(\n private router: Router,\n private documentService: DocumentService,\n private taskService: TaskService,\n private processService: ProcessService,\n private el: ElementRef,\n private renderer: Renderer2,\n private route: ActivatedRoute,\n private formService: FormService,\n private userProviderService: UserProviderService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n }\n\n ngOnInit() {\n this.moment = moment;\n this.init();\n }\n\n init() {\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n });\n this.formService\n .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)\n .subscribe(formDefinition => {\n this.formDefinition = formDefinition;\n });\n this.userProviderService.getUserSubject().subscribe(user => {\n this.roles = user.roles;\n this.tasks = [];\n this.loadProcessDocumentInstances(this.documentId);\n });\n }\n\n public loadProcessDocumentInstances(documentId: string) {\n this.documentService\n .findProcessDocumentInstances(documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances;\n this.processDocumentInstances.forEach(instance => {\n this.loadProcessInstanceTasks(instance.id.processInstanceId);\n });\n });\n }\n\n private loadProcessInstanceTasks(processInstanceId: string) {\n this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {\n tasks.forEach(task => {\n task.createdUnix = this.moment(task.created).unix();\n task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');\n task.isLocked = () => {\n let locked = true;\n for (const link of task.identityLinks) {\n if (link.type === 'candidate' && link.groupId) {\n if (this.roles.includes(link.groupId)) {\n locked = false;\n break;\n }\n }\n }\n return locked;\n };\n });\n this.tasks = this.tasks.concat(tasks);\n this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);\n });\n }\n\n public rowTaskClick(task: any) {\n this.taskDetail.openTaskDetails(task);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">User tasks</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n *ngIf=\"!task.isLocked()\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">Open</span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked()\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {ProcessDocumentInstance} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.css'],\n})\nexport class DossierDetailTabProgressComponent implements OnInit {\n public processDocumentInstances: ProcessDocumentInstance[];\n public selectedProcessInstanceId: string;\n public readonly documentId: string;\n\n constructor(private route: ActivatedRoute, private documentService: DocumentService) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n ngOnInit() {\n this.documentService\n .findProcessDocumentInstances(this.documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances;\n if (processDocumentInstances.length > 0) {\n this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;\n }\n });\n }\n\n public loadProcessInstance(processInstanceId: string) {\n this.selectedProcessInstanceId = processInstanceId;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport moment from 'moment';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, AuditEvent} from '@valtimo/document';\nimport {NgxSpinnerService} from 'ngx-spinner';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-audit',\n templateUrl: './audit.component.html',\n styleUrls: ['./audit.component.css'],\n})\nexport class DossierDetailTabAuditComponent implements OnInit {\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n\n public timelineItems: TimelineItem[];\n private readonly documentId: string;\n public pagination: any;\n private defaultAuditPage = 0;\n private currentAuditPage: number;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService,\n private spinnerService: NgxSpinnerService\n ) {\n this.spinnerService.show('auditSpinner');\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n private static getTranslationKey(auditEvent: AuditEvent) {\n const classNameArray = auditEvent.className.split('.');\n const eventName = classNameArray[classNameArray.length - 1];\n return 'events.' + eventName;\n }\n\n ngOnInit() {\n this.loadAuditPage(this.defaultAuditPage);\n }\n\n public loadAuditPage(pageNumber: number) {\n this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {\n const timelineItems = [];\n page.content.forEach(auditRecord => {\n const occurredOn = moment(auditRecord.metaData.occurredOn);\n const fromNow = occurredOn.fromNow();\n timelineItems.push(\n new TimelineItemImpl(\n occurredOn.format('DD MMM YYYY'),\n occurredOn.format('HH:mm'),\n auditRecord.metaData.user,\n fromNow,\n DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent),\n auditRecord.auditEvent\n )\n );\n });\n this.timelineItems = timelineItems;\n this.spinnerService.hide('auditSpinner');\n this.pagination = page;\n this.pagination.number += 1;\n });\n }\n\n public onChangePagination(page) {\n this.paginationClicked.emit(page);\n this.currentAuditPage = page - 1;\n this.loadAuditPage(this.currentAuditPage);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\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<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile} from '@valtimo/document';\nimport {ResourceDto} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {DownloadService, UploadProviderService} from '@valtimo/resource';\nimport {map, switchMap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css'],\n})\nexport class DossierDetailTabDocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n private readonly refetch$ = new BehaviorSubject<null>(null);\n public relatedFiles$: Observable<Array<RelatedFile>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getDocument(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([document]) => {\n const relatedFiles = document?.relatedFiles || [];\n const translatedFiles = relatedFiles.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n })\n );\n\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on', viewType: 'date'},\n {key: 'createdBy', label: 'Created by'},\n ];\n public actions = [\n {\n columnName: '',\n iconClass: 'mdi mdi-open-in-new',\n callback: this.downloadDocument.bind(this),\n },\n {\n columnName: '',\n iconClass: 'mdi mdi-delete',\n callback: this.removeRelatedFile.bind(this),\n },\n ];\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n }\n\n fileSelected(file: File): void {\n this.uploading$.next(true);\n\n this.uploadProviderService\n .uploadFile(file, this.documentDefinitionName)\n .pipe(\n switchMap(resourceFile =>\n this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)\n )\n )\n .subscribe(\n () => {\n this.toastrService.success('Successfully uploaded document to dossier');\n this.refetchDocuments();\n this.uploading$.next(false);\n },\n () => {\n this.toastrService.error('Failed to upload document to dossier');\n this.uploading$.next(false);\n }\n );\n }\n\n downloadDocument(relatedFile: RelatedFile): void {\n this.uploadProviderService\n .getResource(relatedFile.fileId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n removeRelatedFile(relatedFile: RelatedFile): void {\n this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(\n () => {\n this.toastrService.success('Successfully removed document from dossier');\n this.refetchDocuments();\n },\n () => {\n this.toastrService.error('Failed to remove document from dossier');\n }\n );\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DossierDetailTabSummaryComponent} from './dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabProgressComponent} from './dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabAuditComponent} from './dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabDocumentsComponent} from './dossier-detail/tab/documents/documents.component';\nimport {DefaultTabs} from './dossier-detail-tab-enum';\n\nexport const TAB_MAP = new InjectionToken<Map<string, object>>('TabMap');\nexport const DEFAULT_TABS = new Map<string, object>([\n [DefaultTabs.summary, DossierDetailTabSummaryComponent],\n [DefaultTabs.progress, DossierDetailTabProgressComponent],\n [DefaultTabs.audit, DossierDetailTabAuditComponent],\n [DefaultTabs.documents, DossierDetailTabDocumentsComponent],\n]);\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ZaakObject, ZaakobjectFormResponse, ZaakObjectType} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZaakobjectenService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n\n constructor(private readonly configService: ConfigService, private readonly http: HttpClient) {}\n\n getDocumentObjectTypes(documentId: string): Observable<Array<ZaakObjectType>> {\n return this.http.get<Array<ZaakObjectType>>(\n `${this.VALTIMO_API_ENDPOINT_URI}document/${documentId}/zaak/objecttype`\n );\n }\n\n getDocumentObjectsOfType(documentId: string, typeUrl: string): Observable<Array<ZaakObject>> {\n return this.http.get<Array<ZaakObject>>(\n `${this.VALTIMO_API_ENDPOINT_URI}document/${documentId}/zaak/object?typeUrl=${typeUrl}`\n );\n }\n\n getObjectTypeForm(documentId: string, objectUrl: string): Observable<ZaakobjectFormResponse> {\n return this.http.get<ZaakobjectFormResponse>(\n `${this.VALTIMO_API_ENDPOINT_URI}document/${documentId}/zaak/object/form?objectUrl=${objectUrl}`\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../models';\nimport {ModalComponent, ModalService, TableColumn} from '@valtimo/user-interface';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\n})\nexport class DossierDetailTabObjectTypeComponent {\n @ViewChild('viewObjectModal') viewObjectModal: ModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objectName$ = this.route.params.pipe(\n map(() => {\n const currentUrl = window.location.href;\n const splitUrl = currentUrl.split('/');\n const lastUrlPart = splitUrl[splitUrl.length - 1];\n\n return lastUrlPart;\n })\n );\n\n readonly selectedObjecttypeUrl$: Observable<string> = combineLatest([\n this.objecttypes$,\n this.objectName$,\n ]).pipe(\n map(([objectTypes, objectName]) => {\n const currentType = objectTypes?.find(\n type => type?.name.toLowerCase() === objectName?.toLowerCase()\n );\n\n const currentTypeUrl = currentType?.url;\n\n if (objectTypes && objectName && currentTypeUrl) return currentTypeUrl;\n\n return '';\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly hasData$ = new BehaviorSubject<boolean>(false);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService.getDocumentObjectsOfType(documentId, selectedObjecttypeUrl).pipe(\n map(objects => objects.map(object => ({...object, title: object.title || '-'}))),\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(true);\n })\n )\n : of(null).pipe(\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(false);\n })\n )\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n hasData: boolean;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n rowClicked(object: ZaakObject): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n this.setModalData(definition);\n },\n () => {\n this.setModalData();\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewObjectModal);\n }\n\n private setModalData(definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {TabImpl} from './models';\nimport {DEFAULT_TABS, TAB_MAP} from './dossier.config';\nimport {ConfigService} from '@valtimo/config';\nimport {ActivatedRoute, Event as NavigationEvent, NavigationEnd, Router} from '@angular/router';\nimport {DossierDetailTabObjectTypeComponent} from './dossier-detail/tab/object-type/object-type.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private readonly tabMap: Map<string, object>;\n private tabs: TabImpl[] = [];\n private allTabs!: Map<string, object>;\n private extraTabs!: Map<string, object>;\n\n constructor(\n @Inject(TAB_MAP) tabMap: Map<string, object> = DEFAULT_TABS,\n private readonly configService: ConfigService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.tabMap = tabMap;\n this.setTabs();\n this.openRouterSubscription();\n }\n\n public getTabs(): TabImpl[] {\n return this.tabs;\n }\n\n private setTabs(extraTabs?: Map<string, object>) {\n let i = 0;\n\n this.tabs = [];\n\n this.allTabs = extraTabs\n ? new Map([...Array.from(this.tabMap.entries()), ...Array.from(extraTabs.entries())])\n : this.tabMap;\n\n this.allTabs.forEach((component, name) => {\n this.tabs.push(new TabImpl(name, i, component));\n i++;\n });\n }\n\n getConfigurableTabs(documentDefinitionName: string) {\n if (this.configService?.config?.caseObjectTypes) {\n const allNamesObjects = this.configService?.config?.caseObjectTypes[documentDefinitionName];\n const map = new Map();\n\n allNamesObjects?.forEach(name => {\n map.set(name, DossierDetailTabObjectTypeComponent);\n });\n\n this.extraTabs = map;\n } else {\n this.extraTabs = new Map<string, object>();\n }\n }\n\n private openRouterSubscription(): void {\n this.router.events.subscribe((event: NavigationEvent) => {\n if (event instanceof NavigationEnd) {\n this.setTabs(this.extraTabs);\n }\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormioBeforeSubmit, FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n ModalComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormLinkService} from '@valtimo/form-link';\nimport {NGXLogger} from 'ngx-logger';\nimport {FormAssociation, FormSubmissionResult} from '@valtimo/form-link';\nimport {noop, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-supporting-process-start-modal',\n templateUrl: './dossier-supporting-process-start-modal.component.html',\n styleUrls: ['./dossier-supporting-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierSupportingProcessStartModalComponent {\n public processDefinitionKey: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formioSubmission: FormioSubmission;\n private formAssociation: FormAssociation;\n public options: ValtimoFormioOptions;\n public submission: object;\n\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('supportingProcessStartModal', {static: false}) modal: ModalComponent;\n private documentId: string;\n @Output() formSubmit = new EventEmitter();\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private formLinkService: FormLinkService,\n private logger: NGXLogger,\n private readonly userProviderService: UserProviderService\n ) {}\n\n private loadFormDefinition() {\n this.formDefinition = null;\n this.formLinkService\n .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey)\n .subscribe(\n formDefinition => {\n this.formAssociation = formDefinition.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinition;\n this.documentService.getDocument(this.documentId).subscribe(\n document => {\n this.submission = {\n data: document.content,\n };\n },\n () => noop()\n );\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([formDefinition.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.route.params.pipe(take(1)).subscribe(params => {\n const documentId = params?.documentId;\n\n this.router.navigate([formDefinition.formAssociation.formLink.url], {\n state: {...(documentId && {documentId})},\n });\n });\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n },\n errors => {\n this.modal.show();\n }\n );\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition, documentId: string) {\n this.documentId = documentId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadFormDefinition();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n this.formLinkService\n .onSubmit(\n this.processDefinitionKey,\n this.formAssociation.formLink.id,\n submission.data,\n this.documentId\n )\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.modal.hide();\n this.formSubmit.emit();\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"modalTitle\"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {TabLoaderImpl} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Location} from '@angular/common';\nimport {TabService} from '../tab.service';\nimport {ProcessService} from '@valtimo/process';\nimport {DossierSupportingProcessStartModalComponent} from '../dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {ConfigService} from '@valtimo/config';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'valtimo-dossier-detail',\n templateUrl: './dossier-detail.component.html',\n styleUrls: ['./dossier-detail.component.css'],\n})\nexport class DossierDetailComponent implements OnInit {\n @ViewChild('tabContainer', {read: ViewContainerRef, static: true})\n viewContainerRef: ViewContainerRef;\n\n public documentDefinitionName: string;\n public documentDefinitionNameTitle: string;\n public documentId: string;\n public document: Document = null;\n public tabLoader: TabLoaderImpl = null;\n private snapshot: ParamMap;\n public processDefinitionListFields: Array<any> = [];\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n private initialTabName: string;\n public customDossierHeaderItems: Array<any> = [];\n @ViewChild('supportingProcessStartModal')\n supportingProcessStart: DossierSupportingProcessStartModalComponent;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private translateService: TranslateService,\n private documentService: DocumentService,\n private processService: ProcessService,\n private route: ActivatedRoute,\n private router: Router,\n private location: Location,\n private tabService: TabService,\n private configService: ConfigService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.tabService.getConfigurableTabs(this.documentDefinitionName);\n }\n\n ngOnInit() {\n this.tabLoader = new TabLoaderImpl(\n this.tabService.getTabs(),\n this.componentFactoryResolver,\n this.viewContainerRef,\n this.translateService,\n this.router,\n this.location\n );\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe(definition => {\n this.documentDefinitionNameTitle = definition.schema.title;\n });\n this.getCustomDossierHeader();\n this.initialTabName = this.snapshot.get('tab');\n this.tabLoader.initial(this.initialTabName);\n this.getAllAssociatedProcessDefinitions();\n }\n\n public getAllAssociatedProcessDefinitions() {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe(processDocumentDefinitions => {\n this.processDocumentDefinitions = processDocumentDefinitions.filter(\n processDocumentDefinition => processDocumentDefinition.startableByUser\n );\n this.processDefinitionListFields = [\n {\n key: 'processName',\n label: 'Proces',\n },\n ];\n });\n }\n\n startProcess(processDocumentDefinition: ProcessDocumentDefinition) {\n this.supportingProcessStart.openModal(processDocumentDefinition, this.documentId);\n }\n\n private getCustomDossierHeader() {\n if (\n this.configService.config.customDossierHeader?.hasOwnProperty(\n this.documentDefinitionName.toLowerCase()\n )\n ) {\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n this.configService.config.customDossierHeader[\n this.documentDefinitionName.toLowerCase()\n ]?.forEach(item => this.getCustomDossierHeaderItem(item));\n });\n }\n }\n\n private getCustomDossierHeaderItem(item) {\n this.customDossierHeaderItems.push({\n label: item['labelTranslationKey'] || '',\n columnSize: item['columnSize'] || 3,\n textSize: item['textSize'] || 'md',\n customClass: item['customClass'] || '',\n value: item['propertyPaths']?.reduce(\n (prev, curr) => prev + this.getStringFromDocumentPath(item, curr),\n ''\n ),\n });\n }\n\n private getStringFromDocumentPath(item, path) {\n const prefix = item['propertyPaths'].indexOf(path) > 0 ? ' ' : '';\n const string =\n path.split('.').reduce((o, i) => o[i], this.document.content) || item['noValueText'] || '';\n const regex = new RegExp('(T\\\\d\\\\d:\\\\d\\\\d:\\\\d\\\\d[+-])');\n const formattedString = regex.test(string) ? moment(string).format('DD-MM-YYYY') : string;\n return prefix + formattedString;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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\">\n <div class=\"col\">\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 !== '' && item.value !== null\"\n >:\n </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-template #defaultTitle>\n {{ documentDefinitionNameTitle }}\n </ng-template>\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 <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.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 * Copyright 2015-2021 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '@valtimo/contact-moment';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {ModalComponent, TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-contact-moments',\n templateUrl: './contact-moments.component.html',\n styleUrls: ['./contact-moments.component.scss'],\n})\nexport class DossierDetailTabContactMomentsComponent {\n @ViewChild('contactMomentsNoteModal') modal: ModalComponent;\n\n readonly refetchContactMoments$ = new BehaviorSubject('');\n readonly contactMoments$: Observable<Array<TimelineItem>> = this.refetchContactMoments$.pipe(\n switchMap(() => this.contactMomentService.getContactMoments()),\n map(contactMoments =>\n contactMoments.map(contactMoment => {\n const registratieDatum = moment(contactMoment.registratiedatum);\n return new TimelineItemImpl(\n registratieDatum.format('DD MMM YYYY'),\n registratieDatum.format('HH:mm'),\n contactMoment.medewerkerIdentificatie.achternaam,\n contactMoment.kanaal,\n contactMoment.tekst,\n null\n );\n })\n )\n );\n\n readonly text$ = new BehaviorSubject<string>('');\n readonly channel$ = new BehaviorSubject<string>('MAIL');\n readonly requestData$: Observable<Array<string>> = combineLatest([this.text$, this.channel$]);\n readonly valid$: Observable<boolean> = this.requestData$.pipe(\n map(([text, channel]) => !!(text && channel))\n );\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly contactMomentService: ContactMomentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n textChange(text: string): void {\n this.text$.next(text);\n }\n\n buttonClick(): void {\n this.modal.show();\n }\n\n saveNote(): void {\n this.disable();\n\n this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {\n this.contactMomentService.saveContactMoment({kanaal: channel, tekst: text}).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossier.contactMoments.saveSuccess')\n );\n this.enable();\n this.clear();\n this.modal.hide();\n this.refetchContactMoments();\n },\n () => {\n this.enable();\n }\n );\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clear(): void {\n this.text$.next('');\n }\n\n private refetchContactMoments(): void {\n this.refetchContactMoments$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2021 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=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n {{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../models';\nimport {ModalComponent, ModalService, SelectItem, TableColumn} from '@valtimo/user-interface';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\n})\nexport class DossierDetailTabZaakobjectenComponent {\n @ViewChild('viewZaakobjectModal') viewZaakobjectModal: ModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objecttypeSelectItems$: Observable<Array<SelectItem>> = this.objecttypes$.pipe(\n map(objecttypes => objecttypes.map(type => ({id: type.url, text: type.name || '-'})))\n );\n\n readonly selectedObjecttypeUrl$ = new BehaviorSubject<string | null>(null);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService\n .getDocumentObjectsOfType(documentId, selectedObjecttypeUrl)\n .pipe(map(objects => objects.map(object => ({...object, title: object.title || '-'}))))\n : of(null)\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly objectName$ = new BehaviorSubject<string>('');\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n selectObjectType(objectTypeUrl: string): void {\n this.selectedObjecttypeUrl$.next(objectTypeUrl);\n }\n\n rowClicked(object: ZaakObject, objectTypeSelectItems: Array<SelectItem>): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n\n this.setModalData(objectTypeSelectItems, definition);\n },\n () => {\n this.setModalData(objectTypeSelectItems);\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectName$.next('');\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewZaakobjectModal);\n }\n\n private getObjectTypeName(objectTypeSelectItems: Array<SelectItem>): string {\n const selectedObjectTypeUrl = this.selectedObjecttypeUrl$.getValue();\n const currentTypeSelectItem = objectTypeSelectItems.find(\n selectItem => selectItem.id === selectedObjectTypeUrl\n );\n\n return currentTypeSelectItem.text;\n }\n\n private setModalData(objectTypeSelectItems: Array<SelectItem>, definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.objectName$.next(this.getObjectTypeName(objectTypeSelectItems));\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {TaskService} from '@valtimo/task';\nimport {ActivatedRoute} from '@angular/router';\nimport {ToastrService} from 'ngx-toastr';\nimport {Location} from '@angular/common';\nimport moment from 'moment';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierService} from '../dossier.service';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-update',\n templateUrl: './dossier-update.component.html',\n styleUrls: ['./dossier-update.component.css'],\n})\nexport class DossierUpdateComponent implements OnInit {\n public task: any;\n public taskId: string;\n public schema: any;\n public documentId: string;\n public document: any;\n public page: any;\n public documentDefinitionName: string;\n public implementationDefinitions: any;\n public customDefinitions: any = {};\n\n constructor(\n private taskService: TaskService,\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private location: Location,\n dossierService: DossierService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n this.documentId = snapshot.get('documentId') || '';\n this.taskId = snapshot.get('taskId') || '';\n this.implementationDefinitions = dossierService.getImplementationEnvironmentDefinitions(\n this.documentDefinitionName\n );\n this.loadDocumentDefinition(this.documentDefinitionName);\n this.loadDocument(this.documentId);\n }\n\n ngOnInit() {\n this.getTask(this.taskId);\n if (this.implementationDefinitions.definitions.detail.summary) {\n this.customDefinitions = this.implementationDefinitions.definitions.detail.summary;\n }\n }\n\n private loadDocumentDefinition(name: string) {\n this.documentService.getDocumentDefinition(name).subscribe(definition => {\n this.schema = definition.schema;\n });\n }\n\n private loadDocument(id: string) {\n this.documentService.getDocument(id).subscribe(document => {\n this.document = document;\n });\n }\n\n public getTask(id: string) {\n this.taskService.getTask(id).subscribe(task => {\n this.task = task;\n this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');\n this.page = {\n title: this.task.task.name,\n subtitle: `Created ${moment(this.task.task.created).fromNow()}`,\n };\n });\n }\n\n public reset() {\n this.loadDocument(this.documentId);\n }\n\n public back() {\n this.location.back();\n }\n\n public save() {\n const document = {\n documentId: this.document.id,\n content: this.document.content,\n versionBasedOn: this.document.version,\n };\n this.documentService.modifyDocument(document).subscribe(result => {\n this.document = result.document;\n this.toastr.success('Document aangepast');\n this.location.back();\n });\n }\n\n public submit(data: object) {\n // merge document content with formdata\n const mergedData = Object.assign({}, this.document.content, data);\n const documentData = {\n request: {\n documentId: this.document.id,\n content: mergedData,\n versionBasedOn: this.document.version,\n },\n taskId: this.task.task.id,\n };\n\n this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {\n this.toastr.success(this.task.task.name + ' has successfully been completed');\n this.location.back();\n });\n }\n\n public returnZero() {\n return 0;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierListComponent} from './dossier-list/dossier-list.component';\nimport {DossierDetailComponent} from './dossier-detail/dossier-detail.component';\nimport {DossierUpdateComponent} from './dossier-update/dossier-update.component';\nimport {ROLE_USER} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'dossiers/:documentDefinitionName',\n component: DossierListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_USER]},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', parentPath: 'dossiers/:documentDefinitionName', roles: [ROLE_USER]},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab/tasks/:taskId',\n component: DossierUpdateComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Task details',\n parentPath: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n roles: [ROLE_USER],\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DossierRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ANALYZE_FOR_ENTRY_COMPONENTS, ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DossierRoutingModule} from './dossier-routing.module';\nimport {DossierListComponent} from './dossier-list/dossier-list.component';\nimport {DossierService} from './dossier.service';\nimport {TAB_MAP} from './dossier.config';\nimport {ConfigModule, HttpLoaderFactory} from '@valtimo/config';\nimport {\n BpmnJsDiagramModule,\n CamundaFormModule,\n DataListModule,\n DropzoneModule,\n FilterSidebarModule,\n FormIoModule,\n ListModule,\n ModalModule,\n SpinnerModule,\n TimelineModule,\n UploaderModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {DossierDetailComponent} from './dossier-detail/dossier-detail.component';\nimport {DossierDetailTabSummaryComponent} from './dossier-detail/tab/summary/summary.component';\nimport {DossierUpdateComponent} from './dossier-update/dossier-update.component';\nimport {DossierDetailTabProgressComponent} from './dossier-detail/tab/progress/progress.component';\nimport {ProcessModule} from '@valtimo/process';\nimport {DossierDetailTabAuditComponent} from './dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabContactMomentsComponent} from './dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabDocumentsComponent} from './dossier-detail/tab/documents/documents.component';\nimport {NgbButtonsModule, NgbPaginationModule, NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {DossierProcessStartModalComponent} from './dossier-process-start-modal/dossier-process-start-modal.component';\nimport {FormModule} from '@valtimo/form';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpClient} from '@angular/common/http';\nimport {TabService} from './tab.service';\nimport {TaskModule} from '@valtimo/task';\nimport {DossierSupportingProcessStartModalComponent} from './dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {DossierDetailTabZaakobjectenComponent} from './dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {\n ButtonModule,\n InputLabelModule,\n ModalModule as VModalModule,\n ParagraphModule,\n SelectModule,\n TableModule,\n TitleModule,\n} from '@valtimo/user-interface';\nimport {DossierDetailTabObjectTypeComponent} from './dossier-detail/tab/object-type/object-type.component';\n\nexport type TabsFactory = () => Map<string, object>;\n\n@NgModule({\n declarations: [\n DossierListComponent,\n DossierDetailComponent,\n DossierDetailTabSummaryComponent,\n DossierDetailTabProgressComponent,\n DossierDetailTabAuditComponent,\n DossierDetailTabDocumentsComponent,\n DossierDetailTabContactMomentsComponent,\n DossierDetailTabZaakobjectenComponent,\n DossierUpdateComponent,\n DossierProcessStartModalComponent,\n DossierSupportingProcessStartModalComponent,\n DossierDetailTabObjectTypeComponent,\n ],\n imports: [\n CommonModule,\n DossierRoutingModule,\n ListModule,\n WidgetModule,\n BpmnJsDiagramModule,\n TimelineModule,\n CamundaFormModule,\n ProcessModule,\n FilterSidebarModule,\n NgbButtonsModule,\n DataListModule,\n FormsModule,\n FormModule,\n FormIoModule,\n ModalModule,\n SpinnerModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n TaskModule,\n ModalModule,\n NgbTooltipModule,\n UploaderModule,\n DropzoneModule,\n NgbPaginationModule,\n ConfigModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n TitleModule,\n ButtonModule,\n ],\n exports: [DossierListComponent, DossierDetailComponent],\n})\nexport class DossierModule {\n static forRoot(tabsFactory: TabsFactory): ModuleWithProviders<DossierModule> {\n return {\n ngModule: DossierModule,\n providers: [\n DossierService,\n TabService,\n {\n provide: TAB_MAP,\n useFactory: tabsFactory,\n },\n {\n provide: ANALYZE_FOR_ENTRY_COMPONENTS,\n useValue: Array.from(tabsFactory().values()),\n multi: true,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier\n */\n\nexport * from './lib/models';\nexport * from './lib/dossier-list/dossier-list.component';\nexport * from './lib/dossier-detail/dossier-detail.component';\nexport * from './lib/dossier-detail/tab/summary/summary.component';\nexport * from './lib/dossier-detail/tab/progress/progress.component';\nexport * from './lib/dossier-detail/tab/audit/audit.component';\nexport * from './lib/dossier-detail/tab/documents/documents.component';\nexport * from './lib/dossier-detail/tab/contact-moments/contact-moments.component';\nexport * from './lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nexport * from './lib/dossier.config';\nexport * from './lib/dossier.service';\nexport * from './lib/dossier.module';\nexport * from './lib/dossier-detail-tab-enum';\nexport * from './lib/tab.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i5","i6","i8","i9","moment","i2","i4.DossierService","i7.DossierProcessStartModalComponent","i10","i4","i7","switchMap","map","take","i2.ZaakobjectenService","i6.TabService","i9.DossierSupportingProcessStartModalComponent","i6.DossierService","VModalModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-dossier.mjs","sources":["../../../../projects/valtimo/dossier/src/lib/models/tabs.model.ts","../../../../projects/valtimo/dossier/src/lib/models/index.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail-tab-enum.ts","../../../../projects/valtimo/dossier/src/lib/dossier.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-process-start-modal/dossier-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-process-start-modal/dossier-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-list/dossier-list.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-list/dossier-list.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/summary/summary.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/summary/summary.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/progress/progress.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/progress/progress.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/audit/audit.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/audit/audit.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/s3-documents/s3-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/s3-documents/s3-documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documents/documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documents/documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier.config.ts","../../../../projects/valtimo/dossier/src/lib/services/zaakobjecten.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/object-type/object-type.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/object-type/object-type.component.html","../../../../projects/valtimo/dossier/src/lib/tab.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/dossier-detail.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/dossier-detail.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/contact-moments/contact-moments.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-update/dossier-update.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-update/dossier-update.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-routing.module.ts","../../../../projects/valtimo/dossier/src/lib/dossier.module.ts","../../../../projects/valtimo/dossier/src/public_api.ts","../../../../projects/valtimo/dossier/src/valtimo-dossier.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Router} from '@angular/router';\nimport {Location} from '@angular/common';\n\nexport interface TabLoader<T_TAB extends Tab> {\n tabs: T_TAB[];\n\n initial(tabName?: string): void;\n\n load(tabToLoad: T_TAB): void;\n\n translateTabName(tab: T_TAB): string;\n}\n\nexport class TabLoaderImpl implements TabLoader<TabImpl> {\n private readonly _tabs: TabImpl[] = null;\n private readonly _componentFactoryResolver: ComponentFactoryResolver = null;\n private readonly _viewContainerRef: ViewContainerRef = null;\n private _activeComponent: ComponentRef<any> = null;\n private _activeTab: TabImpl = null;\n private _translateService: TranslateService = null;\n private _router: Router;\n private _location: Location;\n\n constructor(\n tabs: TabImpl[],\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n translateService: TranslateService,\n router: Router,\n location: Location\n ) {\n this._tabs = tabs;\n this._componentFactoryResolver = componentFactoryResolver;\n this._viewContainerRef = viewContainerRef;\n this._translateService = translateService;\n this._router = router;\n this._location = location;\n }\n\n initial(tabName?: string): void {\n let initialTab;\n if (tabName) {\n initialTab = this._tabs.find(tab => tab.name === tabName);\n } else {\n initialTab = this._tabs[0] || null;\n }\n this.load(initialTab);\n }\n\n load(newTab: TabImpl): void {\n if (newTab !== this._activeTab) {\n this._tabs.forEach(tab => tab.deactivate());\n this.replaceView(newTab);\n this.replaceUrlState(newTab);\n this.setActive(newTab);\n }\n }\n\n refreshView() {\n this.replaceView(this._activeTab);\n }\n\n private replaceView(tab: TabImpl): void {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(tab.component);\n this._viewContainerRef.clear();\n if (this._activeTab !== null) {\n this._activeComponent.destroy();\n }\n this._activeComponent = this._viewContainerRef.createComponent(componentFactory);\n }\n\n private replaceUrlState(tab: TabImpl): void {\n const currentUrl = this._router.url;\n const urlParts = currentUrl.split('/');\n urlParts.splice(urlParts.length - 1, 1, tab.name);\n const newUrl = urlParts.join('/');\n this._location.replaceState(newUrl);\n }\n\n private setActive(tab: TabImpl): void {\n tab.activate();\n this._activeTab = tab;\n }\n\n get tabs(): TabImpl[] {\n return this._tabs;\n }\n\n translateTabName(tab: TabImpl): string {\n const translationId = 'dossier.tabs.' + tab.name;\n const translation = this._translateService.instant('dossier.tabs.' + tab.name);\n return translationId !== translation ? translation : tab.name;\n }\n}\n\nexport interface Tab {\n name: string;\n sequence: number;\n component: any;\n\n activate(): void;\n\n deactivate(): void;\n\n isActive(): boolean;\n}\n\nexport class TabImpl implements Tab {\n private readonly _name: string;\n private readonly _sequence: number;\n private readonly _component: any;\n private _active = false;\n\n constructor(name: string, sequence: number, component: any) {\n this._name = name;\n this._sequence = sequence;\n this._component = component;\n }\n\n get name(): string {\n return this._name;\n }\n\n get sequence(): number {\n return this._sequence;\n }\n\n get component(): any {\n return this._component;\n }\n\n activate(): void {\n this._active = true;\n }\n\n deactivate(): void {\n this._active = false;\n }\n\n isActive(): boolean {\n return this._active;\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tabs.model';\nexport * from './zaakobjecten.model';\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum DefaultTabs {\n summary = 'summary',\n progress = 'progress',\n audit = 'audit',\n documents = 'documents',\n contactMoments = 'contact-moments',\n zaakobjecten = 'zaakobjecten',\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, DefinitionColumn, Direction} from '@valtimo/config';\nimport {SortState} from '@valtimo/document';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierService {\n private readonly definitions: any;\n\n constructor(private readonly configService: ConfigService) {\n this.definitions = configService.config.definitions;\n }\n\n getImplementationEnvironmentDefinitions(name: string) {\n return this.definitions.dossiers.find(definition => definition.name === name);\n }\n\n getDefinitionColumns(definitionNameId: string): Array<DefinitionColumn> {\n const config = this.configService.config;\n const customDefinitionTable = config.customDefinitionTables[definitionNameId];\n return customDefinitionTable || config.defaultDefinitionTable;\n }\n\n getInitialSortState(columns: Array<DefinitionColumn>): SortState {\n const defaultColumn = columns.find(column => column.default);\n const isSorting = defaultColumn.default === 'ASC' || defaultColumn.default === 'DESC';\n const direction: Direction =\n typeof defaultColumn.default === 'boolean'\n ? 'DESC'\n : (defaultColumn.default as any as Direction);\n\n return {\n isSorting,\n state: {\n name: defaultColumn ? defaultColumn.propertyName : columns[0].propertyName,\n direction,\n },\n };\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormAssociation, FormLinkService, FormSubmissionResult} from '@valtimo/form-link';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {FormioBeforeSubmit} from '@formio/angular/formio.common';\nimport {FormioForm} from '@formio/angular';\nimport {NGXLogger} from 'ngx-logger';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-process-start-modal',\n templateUrl: './dossier-process-start-modal.component.html',\n styleUrls: ['./dossier-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierProcessStartModalComponent implements OnInit {\n public processDefinitionKey: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formioSubmission: FormioSubmission;\n private formAssociation: FormAssociation;\n public options: ValtimoFormioOptions;\n public isAdmin: boolean;\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('processStartModal', {static: false}) modal: ModalComponent;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private formLinkService: FormLinkService,\n private userProviderService: UserProviderService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.isUserAdmin();\n }\n\n private loadFormDefinition() {\n this.formDefinition = null;\n this.formLinkService\n .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey)\n .subscribe(\n formDefinition => {\n this.formAssociation = formDefinition.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinition;\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([formDefinition.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.router.navigate([formDefinition.formAssociation.formLink.url]);\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n },\n errors => {\n this.modal.show();\n }\n );\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition) {\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadFormDefinition();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n this.formLinkService\n .onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data)\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.modal.hide();\n this.router.navigate([\n 'dossiers',\n this.documentDefinitionName,\n 'document',\n formSubmissionResult.documentId,\n 'summary',\n ]);\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n\n public isUserAdmin(): void {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DefinitionColumn} from '@valtimo/config';\nimport {\n DocumentSearchRequest,\n DocumentSearchRequestImpl,\n DocumentService,\n SortState,\n ProcessDocumentDefinition,\n Documents,\n DocumentDefinition,\n} from '@valtimo/document';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n Observable,\n of,\n startWith,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DefaultTabs} from '../dossier-detail-tab-enum';\nimport {DossierProcessStartModalComponent} from '../dossier-process-start-modal/dossier-process-start-modal.component';\nimport {DossierService} from '../dossier.service';\nimport {Pagination, ListField} from '@valtimo/components';\nimport {NGXLogger} from 'ngx-logger';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-list',\n templateUrl: './dossier-list.component.html',\n styleUrls: ['./dossier-list.component.css'],\n})\nexport class DossierListComponent implements OnInit {\n @ViewChild('processStartModal') processStart: DossierProcessStartModalComponent;\n\n private selectedProcessDocumentDefinition: ProcessDocumentDefinition | null = null;\n private modalListenerAdded = false;\n\n private readonly settingPaginationForDocName$ = new BehaviorSubject<string | undefined>(\n undefined\n );\n\n private readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.documentDefinitionName || ''),\n tap(documentDefinitionName => {\n this.resetPagination(documentDefinitionName);\n })\n );\n\n readonly associatedProcessDocumentDefinitions$: Observable<Array<ProcessDocumentDefinition>> =\n this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n documentDefinitionName\n ? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)\n : of([])\n ),\n map(processDocumentDefinitions =>\n processDocumentDefinitions.filter(definition => definition.canInitializeDocument)\n )\n );\n\n readonly schema$ = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n ),\n map(documentDefinition => documentDefinition?.schema)\n );\n\n private readonly storedSearchRequestKey$: Observable<string> = this.documentDefinitionName$.pipe(\n map(documentDefinitionName => `list-search-${documentDefinitionName}`)\n );\n\n private readonly hasStoredSearchRequest$: Observable<boolean> = this.storedSearchRequestKey$.pipe(\n map(storedSearchRequestKey => localStorage.getItem(storedSearchRequestKey) !== null)\n );\n\n private readonly columns$: Observable<Array<DefinitionColumn>> =\n this.documentDefinitionName$.pipe(\n map(documentDefinitionName =>\n this.dossierService.getDefinitionColumns(documentDefinitionName)\n )\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this.columns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) =>\n columns.map((column, index) => ({\n key: column.propertyName,\n label: this.translateService.instant(`fieldLabels.${column.translationKey}`),\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n }))\n )\n );\n\n private readonly DEFAULT_PAGINATION: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n sort: undefined,\n };\n\n private readonly pagination$ = new BehaviorSubject<Pagination | undefined>(undefined);\n\n readonly paginationCopy$ = this.pagination$.pipe(\n map(pagination => pagination && JSON.parse(JSON.stringify(pagination)))\n );\n\n readonly sequence$ = new BehaviorSubject<number | undefined>(undefined);\n\n readonly globalSearchFilter$ = new BehaviorSubject<string | undefined>(undefined);\n\n private readonly createdBy$ = new BehaviorSubject<string | undefined>(undefined);\n\n private readonly documentSearchRequest$: Observable<DocumentSearchRequest> = combineLatest([\n this.pagination$,\n this.documentDefinitionName$,\n this.sequence$,\n this.createdBy$,\n this.globalSearchFilter$,\n ]).pipe(\n filter(([pagination]) => !!pagination),\n map(\n ([pagination, documentDefinitionName, sequence, createdBy, globalSearchFilter]) =>\n new DocumentSearchRequestImpl(\n documentDefinitionName,\n pagination.page - 1,\n pagination.size,\n sequence,\n createdBy,\n globalSearchFilter,\n pagination.sort\n )\n )\n );\n\n private readonly documentsRequest$: Observable<Documents> = this.documentSearchRequest$.pipe(\n distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n tap(request => {\n this.storedSearchRequestKey$.pipe(take(1)).subscribe(storedSearchRequestKey => {\n this.logger.debug(`store request in local storage: ${JSON.stringify(request)}`);\n localStorage.setItem(storedSearchRequestKey, JSON.stringify(request));\n });\n }),\n switchMap(documentSearchRequest => this.documentService.getDocuments(documentSearchRequest)),\n tap(documents => {\n this.setCollectionSize(documents);\n })\n );\n\n readonly documentItems$ = this.documentsRequest$.pipe(\n map(documents =>\n documents.content.map(document => {\n const {content, ...others} = document;\n return {...content, ...others};\n })\n )\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly dossierService: DossierService,\n private readonly logger: NGXLogger\n ) {}\n\n ngOnInit(): void {\n this.modalListenerAdded = false;\n }\n\n globalSearchFilterChange(searchFilter: string): void {\n this.globalSearchFilter$.next(searchFilter);\n this.pageChange(1);\n }\n\n sequenceChange(sequence: string): void {\n this.sequence$.next(Number(sequence));\n this.pageChange(1);\n }\n\n pageChange(newPage: number): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.page !== newPage) {\n this.logger.debug(`Page change: ${newPage}`);\n this.pagination$.next({...pagination, page: newPage});\n }\n });\n }\n\n pageSizeChange(newPageSize: number): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.size !== newPageSize) {\n const amountOfAvailablePages = Math.ceil(pagination.collectionSize / newPageSize);\n const newPage =\n amountOfAvailablePages < pagination.page ? amountOfAvailablePages : pagination.page;\n\n this.logger.debug(`Page size change. New Page: ${newPage} New page size: ${newPageSize}`);\n this.pagination$.next({...pagination, size: newPageSize, page: newPage});\n }\n });\n }\n\n sortChanged(newSortState: SortState): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && JSON.stringify(pagination.sort) !== JSON.stringify(newSortState)) {\n this.logger.debug(`Sort state change: ${JSON.stringify(newSortState)}`);\n this.pagination$.next({...pagination, sort: newSortState});\n }\n });\n }\n\n rowClick(document: any): void {\n this.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.router.navigate([\n `/dossiers/${documentDefinitionName}/document/${document.id}/${DefaultTabs.summary}`,\n ]);\n });\n }\n\n startDossier(): void {\n this.associatedProcessDocumentDefinitions$\n .pipe(take(1))\n .subscribe(associatedProcessDocumentDefinitions => {\n if (associatedProcessDocumentDefinitions.length > 1) {\n $('#startProcess').modal('show');\n } else {\n this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];\n this.showStartProcessModal();\n }\n });\n }\n\n selectProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n const modal = $('#startProcess');\n if (!this.modalListenerAdded) {\n modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));\n this.modalListenerAdded = true;\n }\n this.selectedProcessDocumentDefinition = processDocumentDefinition;\n modal.modal('hide');\n }\n\n private resetPagination(documentDefinitionName): void {\n this.settingPaginationForDocName$.pipe(take(1)).subscribe(settingPaginationForDocName => {\n if (documentDefinitionName !== settingPaginationForDocName) {\n this.pagination$.next(undefined);\n this.logger.debug('clear pagination');\n this.settingPaginationForDocName$.next(documentDefinitionName);\n this.setPagination(documentDefinitionName);\n }\n });\n }\n\n private setPagination(documentDefinitionName: string): void {\n combineLatest([this.hasStoredSearchRequest$, this.storedSearchRequestKey$, this.columns$])\n .pipe(take(1))\n .subscribe(([hasStoredSearchRequest, storedSearchRequestKey, columns]) => {\n const defaultPagination: Pagination = this.getDefaultPagination(columns);\n const storedPagination: Pagination = this.getStoredPagination(\n hasStoredSearchRequest,\n storedSearchRequestKey\n );\n\n this.logger.debug(\n `Set pagination: ${JSON.stringify(storedPagination || defaultPagination)}`\n );\n this.pagination$.next(storedPagination || defaultPagination);\n });\n }\n\n private getDefaultPagination(columns: Array<DefinitionColumn>): Pagination {\n const defaultSortState = this.dossierService.getInitialSortState(columns);\n\n return {\n ...this.DEFAULT_PAGINATION,\n sort: defaultSortState,\n };\n }\n\n private getStoredPagination(\n hasStoredSearchRequest: boolean,\n storedSearchRequestKey: string\n ): Pagination | undefined {\n const storedSearchRequest =\n hasStoredSearchRequest && JSON.parse(localStorage.getItem(storedSearchRequestKey));\n\n return (\n storedSearchRequest && {\n ...this.DEFAULT_PAGINATION,\n sort: storedSearchRequest.sort,\n page: storedSearchRequest.page + 1,\n size: storedSearchRequest.size,\n }\n );\n }\n\n private setCollectionSize(documents: Documents): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination.collectionSize !== documents.totalElements) {\n this.pagination$.next({...pagination, collectionSize: documents.totalElements});\n }\n });\n }\n\n private showStartProcessModal(): void {\n if (this.selectedProcessDocumentDefinition !== null) {\n this.processStart.openModal(this.selectedProcessDocumentDefinition);\n this.selectedProcessDocumentDefinition = null;\n }\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <div\n *ngIf=\"\n associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\n \"\n >\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"list\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n <valtimo-dossier-process-start-modal #processStartModal></valtimo-dossier-process-start-modal>\n</div>\n\n<ng-template #list>\n <ng-container *ngIf=\"paginationCopy$ | async as pagination\">\n <ng-container *ngIf=\"fields$ | async as fields\">\n <valtimo-list\n *ngIf=\"documentItems$ | async as documentItems\"\n [items]=\"documentItems\"\n [fields]=\"fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ (schema$ | async)?.title }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{ documentItems?.length || 0 }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">Search</h4>\n <div class=\"mb-4\">\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'dossier.forms.globalSearchPlaceHolder' | translate }}\"\n [ngModel]=\"globalSearchFilter$ | async\"\n (ngModelChange)=\"globalSearchFilterChange($event)\"\n />\n </div>\n\n <div class=\"mb-4\">\n <input\n type=\"number\"\n class=\"form-control\"\n placeholder=\"{{ 'dossier.forms.referenceNumberPlaceHolder' | translate }}\"\n [ngModel]=\"sequence$ | async\"\n (ngModelChange)=\"sequenceChange($event)\"\n />\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n OnInit,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ProcessInstanceTask, ProcessService} from '@valtimo/process';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentInstance} from '@valtimo/document';\nimport {TaskDetailModalComponent, TaskService} from '@valtimo/task';\nimport {FormService} from '@valtimo/form';\nimport {FormioOptionsImpl, ValtimoFormioOptions} from '@valtimo/components';\nimport moment from 'moment';\nimport {FormioForm} from '@formio/angular';\nimport {UserProviderService} from '@valtimo/security';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierDetailTabSummaryComponent implements OnInit {\n public readonly documentDefinitionName: string;\n public document: Document;\n public documentId: string;\n public processDocumentInstances: ProcessDocumentInstance[] = [];\n private snapshot: ParamMap;\n public tasks: ProcessInstanceTask[] = [];\n public moment;\n public formDefinition: FormioForm = null;\n public options: ValtimoFormioOptions;\n public roles: string[] = [];\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n\n constructor(\n private router: Router,\n private documentService: DocumentService,\n private taskService: TaskService,\n private processService: ProcessService,\n private el: ElementRef,\n private renderer: Renderer2,\n private route: ActivatedRoute,\n private formService: FormService,\n private userProviderService: UserProviderService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n }\n\n ngOnInit() {\n this.moment = moment;\n this.init();\n }\n\n init() {\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n });\n this.formService\n .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)\n .subscribe(formDefinition => {\n this.formDefinition = formDefinition;\n });\n this.userProviderService.getUserSubject().subscribe(user => {\n this.roles = user.roles;\n this.tasks = [];\n this.loadProcessDocumentInstances(this.documentId);\n });\n }\n\n public loadProcessDocumentInstances(documentId: string) {\n this.documentService\n .findProcessDocumentInstances(documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances;\n this.processDocumentInstances.forEach(instance => {\n this.loadProcessInstanceTasks(instance.id.processInstanceId);\n });\n });\n }\n\n private loadProcessInstanceTasks(processInstanceId: string) {\n this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {\n tasks.forEach(task => {\n task.createdUnix = this.moment(task.created).unix();\n task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');\n task.isLocked = () => {\n let locked = true;\n for (const link of task.identityLinks) {\n if (link.type === 'candidate' && link.groupId) {\n if (this.roles.includes(link.groupId)) {\n locked = false;\n break;\n }\n }\n }\n return locked;\n };\n });\n this.tasks = this.tasks.concat(tasks);\n this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);\n });\n }\n\n public rowTaskClick(task: any) {\n this.taskDetail.openTaskDetails(task);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">User tasks</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n *ngIf=\"!task.isLocked()\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">Open</span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked()\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {ProcessDocumentInstance} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.css'],\n})\nexport class DossierDetailTabProgressComponent implements OnInit {\n public processDocumentInstances: ProcessDocumentInstance[];\n public selectedProcessInstanceId: string;\n public readonly documentId: string;\n\n constructor(private route: ActivatedRoute, private documentService: DocumentService) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n ngOnInit() {\n this.documentService\n .findProcessDocumentInstances(this.documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances\n .sort((a,b) => (a.isActive === b.isActive)? 0 : a.isActive ? -1: 1);\n if (processDocumentInstances.length > 0) {\n this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;\n }\n });\n }\n\n public loadProcessInstance(processInstanceId: string) {\n this.selectedProcessInstanceId = processInstanceId;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport moment from 'moment';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, AuditEvent} from '@valtimo/document';\nimport {NgxSpinnerService} from 'ngx-spinner';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-audit',\n templateUrl: './audit.component.html',\n styleUrls: ['./audit.component.css'],\n})\nexport class DossierDetailTabAuditComponent implements OnInit {\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n\n public timelineItems: TimelineItem[];\n private readonly documentId: string;\n public pagination: any;\n private defaultAuditPage = 0;\n private currentAuditPage: number;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService,\n private spinnerService: NgxSpinnerService\n ) {\n this.spinnerService.show('auditSpinner');\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n private static getTranslationKey(auditEvent: AuditEvent) {\n const classNameArray = auditEvent.className.split('.');\n const eventName = classNameArray[classNameArray.length - 1];\n return 'events.' + eventName;\n }\n\n ngOnInit() {\n this.loadAuditPage(this.defaultAuditPage);\n }\n\n public loadAuditPage(pageNumber: number) {\n this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {\n const timelineItems = [];\n page.content.forEach(auditRecord => {\n const occurredOn = moment(auditRecord.metaData.occurredOn);\n const fromNow = occurredOn.fromNow();\n timelineItems.push(\n new TimelineItemImpl(\n occurredOn.format('DD MMM YYYY'),\n occurredOn.format('HH:mm'),\n auditRecord.metaData.user,\n fromNow,\n DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent),\n auditRecord.auditEvent\n )\n );\n });\n this.timelineItems = timelineItems;\n this.spinnerService.hide('auditSpinner');\n this.pagination = page;\n this.pagination.number += 1;\n });\n }\n\n public onChangePagination(page) {\n this.paginationClicked.emit(page);\n this.currentAuditPage = page - 1;\n this.loadAuditPage(this.currentAuditPage);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\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<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile} from '@valtimo/document';\nimport {DownloadService, ResourceDto, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, switchMap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {PromptService} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-s3-documents',\n templateUrl: './s3-documents.component.html',\n styleUrls: ['./s3-documents.component.scss'],\n})\nexport class DossierDetailTabS3DocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string = this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on', viewType: 'date'},\n {key: 'createdBy', label: 'Created by'},\n ];\n public actions = [\n {\n columnName: '',\n iconClass: 'mdi mdi-open-in-new',\n callback: this.downloadDocument.bind(this),\n },\n {\n columnName: '',\n iconClass: 'mdi mdi-delete',\n callback: this.removeRelatedFile.bind(this),\n },\n ];\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n public relatedFiles$: Observable<Array<RelatedFile>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getDocument(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([document]) => {\n const relatedFiles = document?.relatedFiles || [];\n const translatedFiles = relatedFiles.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n })\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n }\n\n fileSelected(file: File): void {\n this.uploading$.next(true);\n\n this.uploadProviderService\n .uploadFile(file, this.documentDefinitionName)\n .pipe(\n switchMap(resourceFile =>\n this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)\n )\n )\n .subscribe(\n () => {\n this.toastrService.success('Successfully uploaded document to dossier');\n this.refetchDocuments();\n this.uploading$.next(false);\n },\n () => {\n this.toastrService.error('Failed to upload document to dossier');\n this.uploading$.next(false);\n }\n );\n }\n\n downloadDocument(relatedFile: RelatedFile): void {\n this.uploadProviderService\n .getResource(relatedFile.fileId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n removeRelatedFile(relatedFile: RelatedFile) {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(\n () => {\n this.toastrService.success('Successfully removed document from dossier');\n this.refetchDocuments();\n },\n () => {\n this.toastrService.error('Failed to remove document from dossier');\n }\n );\n }\n });\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile} from '@valtimo/document';\nimport {DownloadService, ResourceDto, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, switchMap, take, tap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {DocumentenApiMetadata} from '@valtimo/components';\nimport {UserProviderService} from '@valtimo/security';\nimport {PromptService} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documenten-api-documents',\n templateUrl: './documenten-api-documents.component.html',\n styleUrls: ['./documenten-api-documents.component.scss'],\n})\nexport class DossierDetailTabDocumentenApiDocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on', viewType: 'date'},\n {key: 'createdBy', label: 'Created by'},\n ];\n public actions = [\n {\n columnName: '',\n iconClass: 'mdi mdi-open-in-new',\n callback: this.downloadDocument.bind(this),\n },\n {\n columnName: '',\n iconClass: 'mdi mdi-delete',\n callback: this.removeRelatedFile.bind(this),\n },\n ];\n public isAdmin: boolean;\n public uploadProcessLinkedSet = false;\n public uploadProcessLinked!: boolean;\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n public relatedFiles$: Observable<Array<RelatedFile>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getDocument(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([document]) => {\n const relatedFiles = document?.relatedFiles || [];\n const translatedFiles = relatedFiles.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n })\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly userProviderService: UserProviderService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n this.setUploadProcessLinked();\n this.isUserAdmin();\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n downloadDocument(relatedFile: RelatedFile): void {\n this.uploadProviderService\n .getResource(relatedFile.fileId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n removeRelatedFile(relatedFile: RelatedFile) {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(\n () => {\n this.toastrService.success('Successfully removed document from dossier');\n this.refetchDocuments();\n },\n () => {\n this.toastrService.error('Failed to remove document from dossier');\n }\n );\n }\n });\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n\n this.fileToBeUploaded$\n .pipe(take(1))\n .pipe(\n tap(file => {\n this.uploadProviderService\n .uploadFileWithMetadata(file, this.documentId, metadata)\n .subscribe(res => {\n this.refetchDocuments();\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n })\n )\n .subscribe();\n }\n\n public isUserAdmin() {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n\n private setUploadProcessLinked(): void {\n this.uploadProviderService.checkUploadProcessLink(this.documentDefinitionName).subscribe(\n linked => {\n this.uploadProcessLinked = linked;\n this.uploadProcessLinkedSet = true;\n },\n () => {\n this.uploadProcessLinkedSet = true;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div *ngIf=\"uploadProcessLinkedSet && !uploadProcessLinked\">\n <div\n *ngIf=\"isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n</div>\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [camera]=\"false\"\n [disabled]=\"!uploadProcessLinkedSet || !uploadProcessLinked\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"true\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [actions]=\"actions\"\n [fields]=\"fields\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [items]=\"relatedFiles$ | async\"\n [viewMode]=\"true\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n></valtimo-documenten-api-metadata-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css'],\n})\nexport class DossierDetailTabDocumentsComponent {\n openZaakUploadProvider!: boolean;\n s3UploadProvider!: boolean;\n documentenApiUploadProvider!: boolean;\n\n constructor(private readonly configService: ConfigService) {\n this.setConfig(configService.config);\n }\n\n private setConfig(config: ValtimoConfig): void {\n const uploadProvider = config.uploadProvider;\n this.openZaakUploadProvider = uploadProvider === UploadProvider.OPEN_ZAAK;\n this.documentenApiUploadProvider = uploadProvider === UploadProvider.DOCUMENTEN_API;\n this.s3UploadProvider = config.uploadProvider === UploadProvider.S3;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dossier-detail-tab-s3-documents\n *ngIf=\"s3UploadProvider || openZaakUploadProvider\"\n></valtimo-dossier-detail-tab-s3-documents>\n<valtimo-dossier-detail-tab-documenten-api-documents *ngIf=\"documentenApiUploadProvider\">\n</valtimo-dossier-detail-tab-documenten-api-documents>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DossierDetailTabSummaryComponent} from './dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabProgressComponent} from './dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabAuditComponent} from './dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabDocumentsComponent} from './dossier-detail/tab/documents/documents.component';\nimport {DefaultTabs} from './dossier-detail-tab-enum';\n\nexport const TAB_MAP = new InjectionToken<Map<string, object>>('TabMap');\nexport const DEFAULT_TABS = new Map<string, object>([\n [DefaultTabs.summary, DossierDetailTabSummaryComponent],\n [DefaultTabs.progress, DossierDetailTabProgressComponent],\n [DefaultTabs.audit, DossierDetailTabAuditComponent],\n [DefaultTabs.documents, DossierDetailTabDocumentsComponent],\n]);\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ZaakObject, ZaakobjectFormResponse, ZaakObjectType} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZaakobjectenService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n\n constructor(private readonly configService: ConfigService, private readonly http: HttpClient) {}\n\n getDocumentObjectTypes(documentId: string): Observable<Array<ZaakObjectType>> {\n return this.http.get<Array<ZaakObjectType>>(\n `${this.VALTIMO_API_ENDPOINT_URI}document/${documentId}/zaak/objecttype`\n );\n }\n\n getDocumentObjectsOfType(documentId: string, typeUrl: string): Observable<Array<ZaakObject>> {\n return this.http.get<Array<ZaakObject>>(\n `${this.VALTIMO_API_ENDPOINT_URI}document/${documentId}/zaak/object?typeUrl=${typeUrl}`\n );\n }\n\n getObjectTypeForm(documentId: string, objectUrl: string): Observable<ZaakobjectFormResponse> {\n return this.http.get<ZaakobjectFormResponse>(\n `${this.VALTIMO_API_ENDPOINT_URI}document/${documentId}/zaak/object/form?objectUrl=${objectUrl}`\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../models';\nimport {ModalComponent, ModalService, TableColumn} from '@valtimo/user-interface';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\n})\nexport class DossierDetailTabObjectTypeComponent {\n @ViewChild('viewObjectModal') viewObjectModal: ModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objectName$ = this.route.params.pipe(\n map(() => {\n const currentUrl = window.location.href;\n const splitUrl = currentUrl.split('/');\n const lastUrlPart = splitUrl[splitUrl.length - 1];\n\n return lastUrlPart;\n })\n );\n\n readonly selectedObjecttypeUrl$: Observable<string> = combineLatest([\n this.objecttypes$,\n this.objectName$,\n ]).pipe(\n map(([objectTypes, objectName]) => {\n const currentType = objectTypes?.find(\n type => type?.name.toLowerCase() === objectName?.toLowerCase()\n );\n\n const currentTypeUrl = currentType?.url;\n\n if (objectTypes && objectName && currentTypeUrl) return currentTypeUrl;\n\n return '';\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly hasData$ = new BehaviorSubject<boolean>(false);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService.getDocumentObjectsOfType(documentId, selectedObjecttypeUrl).pipe(\n map(objects => objects.map(object => ({...object, title: object.title || '-'}))),\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(true);\n })\n )\n : of(null).pipe(\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(false);\n })\n )\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n hasData: boolean;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n rowClicked(object: ZaakObject): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n this.setModalData(definition);\n },\n () => {\n this.setModalData();\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewObjectModal);\n }\n\n private setModalData(definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {TabImpl} from './models';\nimport {DEFAULT_TABS, TAB_MAP} from './dossier.config';\nimport {ConfigService} from '@valtimo/config';\nimport {ActivatedRoute, Event as NavigationEvent, NavigationEnd, Router} from '@angular/router';\nimport {DossierDetailTabObjectTypeComponent} from './dossier-detail/tab/object-type/object-type.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private readonly tabMap: Map<string, object>;\n private tabs: TabImpl[] = [];\n private allTabs!: Map<string, object>;\n private extraTabs!: Map<string, object>;\n\n constructor(\n @Inject(TAB_MAP) tabMap: Map<string, object> = DEFAULT_TABS,\n private readonly configService: ConfigService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.tabMap = tabMap;\n this.setTabs();\n this.openRouterSubscription();\n }\n\n public getTabs(): TabImpl[] {\n return this.tabs;\n }\n\n private setTabs(extraTabs?: Map<string, object>) {\n let i = 0;\n\n this.tabs = [];\n\n this.allTabs = extraTabs\n ? new Map([...Array.from(this.tabMap.entries()), ...Array.from(extraTabs.entries())])\n : this.tabMap;\n\n this.allTabs.forEach((component, name) => {\n this.tabs.push(new TabImpl(name, i, component));\n i++;\n });\n }\n\n getConfigurableTabs(documentDefinitionName: string) {\n if (this.configService?.config?.caseObjectTypes) {\n const allNamesObjects = this.configService?.config?.caseObjectTypes[documentDefinitionName];\n const map = new Map();\n\n allNamesObjects?.forEach(name => {\n map.set(name, DossierDetailTabObjectTypeComponent);\n });\n\n this.extraTabs = map;\n } else {\n this.extraTabs = new Map<string, object>();\n }\n }\n\n private openRouterSubscription(): void {\n this.router.events.subscribe((event: NavigationEvent) => {\n if (event instanceof NavigationEnd) {\n this.setTabs(this.extraTabs);\n }\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormioBeforeSubmit, FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n ModalComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormLinkService} from '@valtimo/form-link';\nimport {NGXLogger} from 'ngx-logger';\nimport {FormAssociation, FormSubmissionResult} from '@valtimo/form-link';\nimport {noop, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-supporting-process-start-modal',\n templateUrl: './dossier-supporting-process-start-modal.component.html',\n styleUrls: ['./dossier-supporting-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierSupportingProcessStartModalComponent {\n public processDefinitionKey: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formioSubmission: FormioSubmission;\n private formAssociation: FormAssociation;\n public options: ValtimoFormioOptions;\n public submission: object;\n\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('supportingProcessStartModal', {static: false}) modal: ModalComponent;\n private documentId: string;\n @Output() formSubmit = new EventEmitter();\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private formLinkService: FormLinkService,\n private logger: NGXLogger,\n private readonly userProviderService: UserProviderService\n ) {}\n\n private loadFormDefinition() {\n this.formDefinition = null;\n this.formLinkService\n .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey)\n .subscribe(\n formDefinition => {\n this.formAssociation = formDefinition.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinition;\n this.documentService.getDocument(this.documentId).subscribe(\n document => {\n this.submission = {\n data: document.content,\n };\n },\n () => noop()\n );\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([formDefinition.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.route.params.pipe(take(1)).subscribe(params => {\n const documentId = params?.documentId;\n\n this.router.navigate([formDefinition.formAssociation.formLink.url], {\n state: {...(documentId && {documentId})},\n });\n });\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n },\n errors => {\n this.modal.show();\n }\n );\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition, documentId: string) {\n this.documentId = documentId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadFormDefinition();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n this.formLinkService\n .onSubmit(\n this.processDefinitionKey,\n this.formAssociation.formLink.id,\n submission.data,\n this.documentId\n )\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.modal.hide();\n this.formSubmit.emit();\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"modalTitle\"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {TabLoaderImpl} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Location} from '@angular/common';\nimport {TabService} from '../tab.service';\nimport {ProcessService} from '@valtimo/process';\nimport {DossierSupportingProcessStartModalComponent} from '../dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {ConfigService} from '@valtimo/config';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'valtimo-dossier-detail',\n templateUrl: './dossier-detail.component.html',\n styleUrls: ['./dossier-detail.component.css'],\n})\nexport class DossierDetailComponent implements OnInit {\n @ViewChild('tabContainer', {read: ViewContainerRef, static: true})\n viewContainerRef: ViewContainerRef;\n\n public documentDefinitionName: string;\n public documentDefinitionNameTitle: string;\n public documentId: string;\n public document: Document = null;\n public tabLoader: TabLoaderImpl = null;\n private snapshot: ParamMap;\n public processDefinitionListFields: Array<any> = [];\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n private initialTabName: string;\n public customDossierHeaderItems: Array<any> = [];\n @ViewChild('supportingProcessStartModal')\n supportingProcessStart: DossierSupportingProcessStartModalComponent;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private translateService: TranslateService,\n private documentService: DocumentService,\n private processService: ProcessService,\n private route: ActivatedRoute,\n private router: Router,\n private location: Location,\n private tabService: TabService,\n private configService: ConfigService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.tabService.getConfigurableTabs(this.documentDefinitionName);\n }\n\n ngOnInit() {\n this.tabLoader = new TabLoaderImpl(\n this.tabService.getTabs(),\n this.componentFactoryResolver,\n this.viewContainerRef,\n this.translateService,\n this.router,\n this.location\n );\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe(definition => {\n this.documentDefinitionNameTitle = definition.schema.title;\n });\n this.getCustomDossierHeader();\n this.initialTabName = this.snapshot.get('tab');\n this.tabLoader.initial(this.initialTabName);\n this.getAllAssociatedProcessDefinitions();\n }\n\n public getAllAssociatedProcessDefinitions() {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe(processDocumentDefinitions => {\n this.processDocumentDefinitions = processDocumentDefinitions.filter(\n processDocumentDefinition => processDocumentDefinition.startableByUser\n );\n this.processDefinitionListFields = [\n {\n key: 'processName',\n label: 'Proces',\n },\n ];\n });\n }\n\n startProcess(processDocumentDefinition: ProcessDocumentDefinition) {\n this.supportingProcessStart.openModal(processDocumentDefinition, this.documentId);\n }\n\n private getCustomDossierHeader() {\n if (\n this.configService.config.customDossierHeader?.hasOwnProperty(\n this.documentDefinitionName.toLowerCase()\n )\n ) {\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n this.configService.config.customDossierHeader[\n this.documentDefinitionName.toLowerCase()\n ]?.forEach(item => this.getCustomDossierHeaderItem(item));\n });\n }\n }\n\n private getCustomDossierHeaderItem(item) {\n this.customDossierHeaderItems.push({\n label: item['labelTranslationKey'] || '',\n columnSize: item['columnSize'] || 3,\n textSize: item['textSize'] || 'md',\n customClass: item['customClass'] || '',\n value: item['propertyPaths']?.reduce(\n (prev, curr) => prev + this.getStringFromDocumentPath(item, curr),\n ''\n ),\n });\n }\n\n private getStringFromDocumentPath(item, path) {\n const prefix = item['propertyPaths'].indexOf(path) > 0 ? ' ' : '';\n const string =\n path.split('.').reduce((o, i) => o[i], this.document.content) || item['noValueText'] || '';\n const regex = new RegExp('(T\\\\d\\\\d:\\\\d\\\\d:\\\\d\\\\d[+-])');\n const formattedString = regex.test(string) ? moment(string).format('DD-MM-YYYY') : string;\n return prefix + formattedString;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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\">\n <div class=\"col\">\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 !== '' && item.value !== null\"\n >:\n </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-template #defaultTitle>\n {{ documentDefinitionNameTitle }}\n </ng-template>\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 <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.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 * Copyright 2015-2021 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '@valtimo/contact-moment';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {ModalComponent, TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-contact-moments',\n templateUrl: './contact-moments.component.html',\n styleUrls: ['./contact-moments.component.scss'],\n})\nexport class DossierDetailTabContactMomentsComponent {\n @ViewChild('contactMomentsNoteModal') modal: ModalComponent;\n\n readonly refetchContactMoments$ = new BehaviorSubject('');\n readonly contactMoments$: Observable<Array<TimelineItem>> = this.refetchContactMoments$.pipe(\n switchMap(() => this.contactMomentService.getContactMoments()),\n map(contactMoments =>\n contactMoments.map(contactMoment => {\n const registratieDatum = moment(contactMoment.registratiedatum);\n return new TimelineItemImpl(\n registratieDatum.format('DD MMM YYYY'),\n registratieDatum.format('HH:mm'),\n contactMoment.medewerkerIdentificatie.achternaam,\n contactMoment.kanaal,\n contactMoment.tekst,\n null\n );\n })\n )\n );\n\n readonly text$ = new BehaviorSubject<string>('');\n readonly channel$ = new BehaviorSubject<string>('MAIL');\n readonly requestData$: Observable<Array<string>> = combineLatest([this.text$, this.channel$]);\n readonly valid$: Observable<boolean> = this.requestData$.pipe(\n map(([text, channel]) => !!(text && channel))\n );\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly contactMomentService: ContactMomentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n textChange(text: string): void {\n this.text$.next(text);\n }\n\n buttonClick(): void {\n this.modal.show();\n }\n\n saveNote(): void {\n this.disable();\n\n this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {\n this.contactMomentService.saveContactMoment({kanaal: channel, tekst: text}).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossier.contactMoments.saveSuccess')\n );\n this.enable();\n this.clear();\n this.modal.hide();\n this.refetchContactMoments();\n },\n () => {\n this.enable();\n }\n );\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clear(): void {\n this.text$.next('');\n }\n\n private refetchContactMoments(): void {\n this.refetchContactMoments$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2021 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=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n {{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../models';\nimport {ModalComponent, ModalService, SelectItem, TableColumn} from '@valtimo/user-interface';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\n})\nexport class DossierDetailTabZaakobjectenComponent {\n @ViewChild('viewZaakobjectModal') viewZaakobjectModal: ModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objecttypeSelectItems$: Observable<Array<SelectItem>> = this.objecttypes$.pipe(\n map(objecttypes => objecttypes.map(type => ({id: type.url, text: type.name || '-'})))\n );\n\n readonly selectedObjecttypeUrl$ = new BehaviorSubject<string | null>(null);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService\n .getDocumentObjectsOfType(documentId, selectedObjecttypeUrl)\n .pipe(map(objects => objects.map(object => ({...object, title: object.title || '-'}))))\n : of(null)\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly objectName$ = new BehaviorSubject<string>('');\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n selectObjectType(objectTypeUrl: string): void {\n this.selectedObjecttypeUrl$.next(objectTypeUrl);\n }\n\n rowClicked(object: ZaakObject, objectTypeSelectItems: Array<SelectItem>): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n\n this.setModalData(objectTypeSelectItems, definition);\n },\n () => {\n this.setModalData(objectTypeSelectItems);\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectName$.next('');\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewZaakobjectModal);\n }\n\n private getObjectTypeName(objectTypeSelectItems: Array<SelectItem>): string {\n const selectedObjectTypeUrl = this.selectedObjecttypeUrl$.getValue();\n const currentTypeSelectItem = objectTypeSelectItems.find(\n selectItem => selectItem.id === selectedObjectTypeUrl\n );\n\n return currentTypeSelectItem.text;\n }\n\n private setModalData(objectTypeSelectItems: Array<SelectItem>, definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.objectName$.next(this.getObjectTypeName(objectTypeSelectItems));\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {TaskService} from '@valtimo/task';\nimport {ActivatedRoute} from '@angular/router';\nimport {ToastrService} from 'ngx-toastr';\nimport {Location} from '@angular/common';\nimport moment from 'moment';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierService} from '../dossier.service';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-update',\n templateUrl: './dossier-update.component.html',\n styleUrls: ['./dossier-update.component.css'],\n})\nexport class DossierUpdateComponent implements OnInit {\n public task: any;\n public taskId: string;\n public schema: any;\n public documentId: string;\n public document: any;\n public page: any;\n public documentDefinitionName: string;\n public implementationDefinitions: any;\n public customDefinitions: any = {};\n\n constructor(\n private taskService: TaskService,\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private location: Location,\n dossierService: DossierService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n this.documentId = snapshot.get('documentId') || '';\n this.taskId = snapshot.get('taskId') || '';\n this.implementationDefinitions = dossierService.getImplementationEnvironmentDefinitions(\n this.documentDefinitionName\n );\n this.loadDocumentDefinition(this.documentDefinitionName);\n this.loadDocument(this.documentId);\n }\n\n ngOnInit() {\n this.getTask(this.taskId);\n if (this.implementationDefinitions.definitions.detail.summary) {\n this.customDefinitions = this.implementationDefinitions.definitions.detail.summary;\n }\n }\n\n private loadDocumentDefinition(name: string) {\n this.documentService.getDocumentDefinition(name).subscribe(definition => {\n this.schema = definition.schema;\n });\n }\n\n private loadDocument(id: string) {\n this.documentService.getDocument(id).subscribe(document => {\n this.document = document;\n });\n }\n\n public getTask(id: string) {\n this.taskService.getTask(id).subscribe(task => {\n this.task = task;\n this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');\n this.page = {\n title: this.task.task.name,\n subtitle: `Created ${moment(this.task.task.created).fromNow()}`,\n };\n });\n }\n\n public reset() {\n this.loadDocument(this.documentId);\n }\n\n public back() {\n this.location.back();\n }\n\n public save() {\n const document = {\n documentId: this.document.id,\n content: this.document.content,\n versionBasedOn: this.document.version,\n };\n this.documentService.modifyDocument(document).subscribe(result => {\n this.document = result.document;\n this.toastr.success('Document aangepast');\n this.location.back();\n });\n }\n\n public submit(data: object) {\n // merge document content with formdata\n const mergedData = Object.assign({}, this.document.content, data);\n const documentData = {\n request: {\n documentId: this.document.id,\n content: mergedData,\n versionBasedOn: this.document.version,\n },\n taskId: this.task.task.id,\n };\n\n this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {\n this.toastr.success(this.task.task.name + ' has successfully been completed');\n this.location.back();\n });\n }\n\n public returnZero() {\n return 0;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierListComponent} from './dossier-list/dossier-list.component';\nimport {DossierDetailComponent} from './dossier-detail/dossier-detail.component';\nimport {DossierUpdateComponent} from './dossier-update/dossier-update.component';\nimport {ROLE_USER} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'dossiers/:documentDefinitionName',\n component: DossierListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_USER]},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', parentPath: 'dossiers/:documentDefinitionName', roles: [ROLE_USER]},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab/tasks/:taskId',\n component: DossierUpdateComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Task details',\n parentPath: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n roles: [ROLE_USER],\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DossierRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ANALYZE_FOR_ENTRY_COMPONENTS, ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DossierRoutingModule} from './dossier-routing.module';\nimport {DossierListComponent} from './dossier-list/dossier-list.component';\nimport {DossierService} from './dossier.service';\nimport {TAB_MAP} from './dossier.config';\nimport {ConfigModule, HttpLoaderFactory} from '@valtimo/config';\nimport {\n BpmnJsDiagramModule,\n CamundaFormModule,\n DataListModule,\n DocumentenApiMetadataModalModule,\n DropzoneModule,\n FilterSidebarModule,\n FormIoModule,\n ListModule,\n ModalModule,\n SpinnerModule,\n TimelineModule,\n UploaderModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {DossierDetailComponent} from './dossier-detail/dossier-detail.component';\nimport {DossierDetailTabSummaryComponent} from './dossier-detail/tab/summary/summary.component';\nimport {DossierUpdateComponent} from './dossier-update/dossier-update.component';\nimport {DossierDetailTabProgressComponent} from './dossier-detail/tab/progress/progress.component';\nimport {ProcessModule} from '@valtimo/process';\nimport {DossierDetailTabAuditComponent} from './dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabContactMomentsComponent} from './dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabDocumentsComponent} from './dossier-detail/tab/documents/documents.component';\nimport {NgbButtonsModule, NgbPaginationModule, NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {DossierProcessStartModalComponent} from './dossier-process-start-modal/dossier-process-start-modal.component';\nimport {FormModule} from '@valtimo/form';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpClient} from '@angular/common/http';\nimport {TabService} from './tab.service';\nimport {TaskModule} from '@valtimo/task';\nimport {DossierSupportingProcessStartModalComponent} from './dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {DossierDetailTabZaakobjectenComponent} from './dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {\n ButtonModule,\n InputLabelModule,\n ModalModule as VModalModule,\n ParagraphModule,\n SelectModule,\n TableModule,\n TitleModule,\n} from '@valtimo/user-interface';\nimport {DossierDetailTabObjectTypeComponent} from './dossier-detail/tab/object-type/object-type.component';\nimport {DossierDetailTabDocumentenApiDocumentsComponent} from './dossier-detail/tab/documenten-api-documents/documenten-api-documents.component';\nimport {DossierDetailTabS3DocumentsComponent} from './dossier-detail/tab/s3-documents/s3-documents.component';\n\nexport type TabsFactory = () => Map<string, object>;\n\n@NgModule({\n declarations: [\n DossierListComponent,\n DossierDetailComponent,\n DossierDetailTabSummaryComponent,\n DossierDetailTabProgressComponent,\n DossierDetailTabAuditComponent,\n DossierDetailTabDocumentsComponent,\n DossierDetailTabContactMomentsComponent,\n DossierDetailTabZaakobjectenComponent,\n DossierUpdateComponent,\n DossierProcessStartModalComponent,\n DossierSupportingProcessStartModalComponent,\n DossierDetailTabObjectTypeComponent,\n DossierDetailTabDocumentenApiDocumentsComponent,\n DossierDetailTabS3DocumentsComponent,\n ],\n imports: [\n CommonModule,\n DossierRoutingModule,\n ListModule,\n WidgetModule,\n BpmnJsDiagramModule,\n TimelineModule,\n CamundaFormModule,\n ProcessModule,\n FilterSidebarModule,\n NgbButtonsModule,\n DataListModule,\n FormsModule,\n FormModule,\n FormIoModule,\n ModalModule,\n SpinnerModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n TaskModule,\n ModalModule,\n NgbTooltipModule,\n UploaderModule,\n DropzoneModule,\n NgbPaginationModule,\n ConfigModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n TitleModule,\n ButtonModule,\n DocumentenApiMetadataModalModule,\n ],\n exports: [DossierListComponent, DossierDetailComponent],\n})\nexport class DossierModule {\n static forRoot(tabsFactory: TabsFactory): ModuleWithProviders<DossierModule> {\n return {\n ngModule: DossierModule,\n providers: [\n DossierService,\n TabService,\n {\n provide: TAB_MAP,\n useFactory: tabsFactory,\n },\n {\n provide: ANALYZE_FOR_ENTRY_COMPONENTS,\n useValue: Array.from(tabsFactory().values()),\n multi: true,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier\n */\n\nexport * from './lib/models';\nexport * from './lib/dossier-list/dossier-list.component';\nexport * from './lib/dossier-detail/dossier-detail.component';\nexport * from './lib/dossier-detail/tab/summary/summary.component';\nexport * from './lib/dossier-detail/tab/progress/progress.component';\nexport * from './lib/dossier-detail/tab/audit/audit.component';\nexport * from './lib/dossier-detail/tab/documents/documents.component';\nexport * from './lib/dossier-detail/tab/contact-moments/contact-moments.component';\nexport * from './lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nexport * from './lib/dossier.config';\nexport * from './lib/dossier.service';\nexport * from './lib/dossier.module';\nexport * from './lib/dossier-detail-tab-enum';\nexport * from './lib/tab.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i5","i6","i8","i9","moment","i2","i4.DossierService","i7.DossierProcessStartModalComponent","i10","i4","i7","switchMap","map","take","tap","i2.DossierDetailTabS3DocumentsComponent","i3.DossierDetailTabDocumentenApiDocumentsComponent","i2.ZaakobjectenService","i6.TabService","i9.DossierSupportingProcessStartModalComponent","i6.DossierService","VModalModule"],"mappings":"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"}
|