@valtimo/dossier 12.0.0 → 12.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +11 -7
- package/esm2022/lib/components/dossier-detail/tab/not-found/not-found.component.mjs +1 -1
- package/esm2022/lib/components/dossier-detail/tab/notes/notes.component.mjs +1 -1
- package/esm2022/lib/components/dossier-detail/tab/progress/progress.component.mjs +1 -1
- package/esm2022/lib/components/dossier-detail/tab/summary/summary.component.mjs +13 -78
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.mjs +192 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/custom/widget-custom.component.mjs +80 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.mjs +116 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.mjs +67 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.mjs +126 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.mjs +154 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/widgets-container/widgets-container.component.mjs +74 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/widgets.component.mjs +74 -0
- package/esm2022/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.mjs +131 -0
- package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +4 -4
- package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +47 -7
- package/esm2022/lib/constants/case-widget.constants.mjs +19 -0
- package/esm2022/lib/constants/custom-case-widget-token.mjs +19 -0
- package/esm2022/lib/constants/index.mjs +3 -1
- package/esm2022/lib/dossier.module.mjs +11 -3
- package/esm2022/lib/models/case-widget-content.model.mjs +17 -0
- package/esm2022/lib/models/case-widget-display.model.mjs +13 -0
- package/esm2022/lib/models/case-widget.model.mjs +25 -0
- package/esm2022/lib/models/index.mjs +6 -3
- package/esm2022/lib/models/tab-api.model.mjs +2 -1
- package/esm2022/lib/models/tabs.model.mjs +16 -7
- package/esm2022/lib/services/dossier-tab-api.service.mjs +17 -11
- package/esm2022/lib/services/dossier-tab.service.mjs +39 -11
- package/esm2022/lib/services/dossier-widgets-api.service.mjs +46 -0
- package/esm2022/lib/services/dossier-widgets-layout.service.mjs +97 -0
- package/esm2022/lib/services/index.mjs +3 -1
- package/fesm2022/valtimo-dossier.mjs +1383 -233
- package/fesm2022/valtimo-dossier.mjs.map +1 -1
- package/lib/components/dossier-detail/dossier-detail.component.d.ts +2 -0
- package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/summary/summary.component.d.ts +7 -26
- package/lib/components/dossier-detail/tab/summary/summary.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.d.ts +47 -0
- package/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/custom/widget-custom.component.d.ts +22 -0
- package/lib/components/dossier-detail/tab/widgets/components/custom/widget-custom.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts +31 -0
- package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.d.ts +21 -0
- package/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.d.ts +31 -0
- package/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.d.ts +43 -0
- package/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/widgets-container/widgets-container.component.d.ts +20 -0
- package/lib/components/dossier-detail/tab/widgets/components/widgets-container/widgets-container.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/widgets.component.d.ts +25 -0
- package/lib/components/dossier-detail/tab/widgets/widgets.component.d.ts.map +1 -0
- package/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.d.ts +26 -0
- package/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.d.ts.map +1 -0
- package/lib/components/dossier-list/dossier-list.component.d.ts +1 -1
- package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -1
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +12 -4
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/lib/constants/case-widget.constants.d.ts +4 -0
- package/lib/constants/case-widget.constants.d.ts.map +1 -0
- package/lib/constants/custom-case-widget-token.d.ts +5 -0
- package/lib/constants/custom-case-widget-token.d.ts.map +1 -0
- package/lib/constants/index.d.ts +2 -0
- package/lib/constants/index.d.ts.map +1 -1
- package/lib/dossier.module.d.ts +3 -1
- package/lib/dossier.module.d.ts.map +1 -1
- package/lib/models/case-widget-content.model.d.ts +51 -0
- package/lib/models/case-widget-content.model.d.ts.map +1 -0
- package/lib/models/case-widget-display.model.d.ts +44 -0
- package/lib/models/case-widget-display.model.d.ts.map +1 -0
- package/lib/models/case-widget.model.d.ts +105 -0
- package/lib/models/case-widget.model.d.ts.map +1 -0
- package/lib/models/index.d.ts +5 -2
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/tab-api.model.d.ts +13 -2
- package/lib/models/tab-api.model.d.ts.map +1 -1
- package/lib/models/tabs.model.d.ts +6 -1
- package/lib/models/tabs.model.d.ts.map +1 -1
- package/lib/services/dossier-tab-api.service.d.ts +6 -7
- package/lib/services/dossier-tab-api.service.d.ts.map +1 -1
- package/lib/services/dossier-tab.service.d.ts +12 -2
- package/lib/services/dossier-tab.service.d.ts.map +1 -1
- package/lib/services/dossier-widgets-api.service.d.ts +15 -0
- package/lib/services/dossier-widgets-api.service.d.ts.map +1 -0
- package/lib/services/dossier-widgets-layout.service.d.ts +35 -0
- package/lib/services/dossier-widgets-layout.service.d.ts.map +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.d.ts.map +1 -1
- package/package.json +4 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Component, ViewEncapsulation,
|
|
2
|
+
import { Injectable, Component, ViewEncapsulation, EventEmitter, Output, ViewContainerRef, Optional, Inject, HostBinding, ViewChild, Input, InjectionToken, ChangeDetectionStrategy, signal, Pipe, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2$4 from '@angular/forms';
|
|
4
4
|
import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { BehaviorSubject, take, map, distinctUntilChanged, combineLatest, Subject, switchMap, tap, filter, Subscription, of,
|
|
5
|
+
import { BehaviorSubject, take, map, distinctUntilChanged, combineLatest, Subject, switchMap, tap, filter, Subscription, startWith, of, catchError as catchError$1, delay, debounceTime, repeat, forkJoin, defaultIfEmpty } from 'rxjs';
|
|
6
6
|
import * as i1 from '@valtimo/config';
|
|
7
|
-
import { UploadProvider, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, DossierListTab, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, ROLE_USER, ConfigModule, HttpLoaderFactory } from '@valtimo/config';
|
|
7
|
+
import { UploadProvider, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, DossierListTab, BaseApiService, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, FORM_VIEW_MODEL_TOKEN, ROLE_USER, ConfigModule, HttpLoaderFactory } from '@valtimo/config';
|
|
8
8
|
import * as i2 from '@angular/common/http';
|
|
9
|
-
import { HttpClient } from '@angular/common/http';
|
|
9
|
+
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
10
10
|
import * as i2$1 from '@valtimo/document';
|
|
11
11
|
import { InternalCaseStatusColor, InternalCaseStatusUtils, AdvancedDocumentSearchRequestImpl } from '@valtimo/document';
|
|
12
12
|
import * as i6 from '@ngx-translate/core';
|
|
@@ -14,32 +14,35 @@ import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
|
14
14
|
import * as i1$1 from '@angular/router';
|
|
15
15
|
import { RouterModule } from '@angular/router';
|
|
16
16
|
import * as i1$2 from 'ngx-logger';
|
|
17
|
-
import * as
|
|
18
|
-
import {
|
|
19
|
-
import * as i2$3 from '@valtimo/components';
|
|
20
|
-
import { FormioOptionsImpl, TimelineItemImpl, CASES_WITHOUT_STATUS_KEY, ViewType, CarbonListComponent, ListModule, WidgetModule, BpmnJsDiagramModule, TimelineModule, CamundaFormModule, FilterSidebarModule, DataListModule, FormIoModule, ModalModule, SpinnerModule, UploaderModule, DropzoneModule, SelectModule, InputLabelModule, ParagraphModule, TableModule, VModalModule, TitleModule, ButtonModule, SearchableDropdownSelectModule, SearchFieldsModule, PageModule, InputModule, FormModule as FormModule$1, ConfirmationModalModule, CarbonListModule, IsArrayPipe, StatusSelectorComponent, RenderInPageHeaderDirectiveModule, ValtimoCdsOverflowButtonDirectiveModule } from '@valtimo/components';
|
|
17
|
+
import * as i2$2 from '@valtimo/components';
|
|
18
|
+
import { FormioOptionsImpl, TimelineItemImpl, CASES_WITHOUT_STATUS_KEY, CarbonListModule, FormIoModule, ViewType, CurrentCarbonTheme, CARBON_THEME, WidgetModule, CarbonListComponent, ListModule, BpmnJsDiagramModule, TimelineModule, CamundaFormModule, FilterSidebarModule, DataListModule, ModalModule, SpinnerModule, UploaderModule, DropzoneModule, SelectModule, InputLabelModule, ParagraphModule, TableModule, VModalModule, TitleModule, ButtonModule, SearchableDropdownSelectModule, SearchFieldsModule, PageModule, InputModule as InputModule$1, FormModule as FormModule$1, ConfirmationModalModule, IsArrayPipe, StatusSelectorComponent, RenderInPageHeaderDirectiveModule, ValtimoCdsOverflowButtonDirectiveModule } from '@valtimo/components';
|
|
21
19
|
export { CASES_WITHOUT_STATUS_KEY } from '@valtimo/components';
|
|
22
20
|
import moment from 'moment';
|
|
23
|
-
import * as
|
|
24
|
-
import { ProcessModule } from '@valtimo/process';
|
|
25
|
-
import * as i5 from '@valtimo/form';
|
|
21
|
+
import * as i3 from '@valtimo/form';
|
|
26
22
|
import { FormModule } from '@valtimo/form';
|
|
27
|
-
import * as
|
|
28
|
-
import { AuthGuardService } from '@valtimo/security';
|
|
29
|
-
import * as i7 from '@valtimo/access-control';
|
|
30
|
-
import * as i5$1 from '@angular/common';
|
|
23
|
+
import * as i3$1 from '@angular/common';
|
|
31
24
|
import { CommonModule } from '@angular/common';
|
|
32
|
-
import * as
|
|
33
|
-
import {
|
|
34
|
-
import * as
|
|
35
|
-
import {
|
|
36
|
-
import * as i3$
|
|
25
|
+
import * as i2$3 from '@valtimo/process';
|
|
26
|
+
import { ProcessModule } from '@valtimo/process';
|
|
27
|
+
import * as i4 from 'carbon-components-angular';
|
|
28
|
+
import { InputModule, PaginationModel, PaginationModule, TilesModule, LoadingModule, LayerModule, TagModule, Tabs, ButtonModule as ButtonModule$1, IconModule, ModalModule as ModalModule$1, SelectModule as SelectModule$1, DropdownModule, TabsModule, ComboBoxModule, SkeletonModule, DialogModule } from 'carbon-components-angular';
|
|
29
|
+
import * as i3$2 from 'ngx-spinner';
|
|
30
|
+
import * as i6$1 from '@ng-bootstrap/ng-bootstrap';
|
|
31
|
+
import { NgbTooltipModule, NgbButtonsModule, NgbPaginationModule, NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
37
32
|
import { switchMap as switchMap$1, map as map$1, take as take$1, tap as tap$1, catchError } from 'rxjs/operators';
|
|
38
|
-
import * as i3$
|
|
39
|
-
import * as i4 from '@valtimo/resource';
|
|
33
|
+
import * as i3$3 from 'ngx-toastr';
|
|
34
|
+
import * as i4$1 from '@valtimo/resource';
|
|
35
|
+
import * as i7 from '@valtimo/access-control';
|
|
36
|
+
import * as i4$3 from '@valtimo/security';
|
|
37
|
+
import { InterceptorSkip, AuthGuardService } from '@valtimo/security';
|
|
38
|
+
import { v4 } from 'uuid';
|
|
39
|
+
import Muuri from 'muuri';
|
|
40
40
|
import { ChevronDown16 } from '@carbon/icons';
|
|
41
|
-
import * as i4$
|
|
42
|
-
import
|
|
41
|
+
import * as i4$4 from 'keycloak-angular';
|
|
42
|
+
import moment$1 from 'moment/moment';
|
|
43
|
+
import * as i1$3 from '@valtimo/task';
|
|
44
|
+
import { CAN_VIEW_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, TaskModule } from '@valtimo/task';
|
|
45
|
+
import * as i4$2 from '@valtimo/process-link';
|
|
43
46
|
import { ProcessLinkModule } from '@valtimo/process-link';
|
|
44
47
|
import { isEqual } from 'lodash';
|
|
45
48
|
|
|
@@ -755,6 +758,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
755
758
|
* limitations under the License.
|
|
756
759
|
*/
|
|
757
760
|
|
|
761
|
+
var CaseWidgetDisplayTypeKey;
|
|
762
|
+
(function (CaseWidgetDisplayTypeKey) {
|
|
763
|
+
CaseWidgetDisplayTypeKey["TEXT"] = "text";
|
|
764
|
+
CaseWidgetDisplayTypeKey["BOOLEAN"] = "boolean";
|
|
765
|
+
CaseWidgetDisplayTypeKey["CURRENCY"] = "currency";
|
|
766
|
+
CaseWidgetDisplayTypeKey["DATE"] = "date";
|
|
767
|
+
CaseWidgetDisplayTypeKey["DATE_TIME"] = "datetime";
|
|
768
|
+
CaseWidgetDisplayTypeKey["ENUM"] = "enum";
|
|
769
|
+
CaseWidgetDisplayTypeKey["NUMBER"] = "number";
|
|
770
|
+
CaseWidgetDisplayTypeKey["PERCENT"] = "percent";
|
|
771
|
+
})(CaseWidgetDisplayTypeKey || (CaseWidgetDisplayTypeKey = {}));
|
|
772
|
+
|
|
773
|
+
/*
|
|
774
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
775
|
+
*
|
|
776
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
777
|
+
* you may not use this file except in compliance with the License.
|
|
778
|
+
* You may obtain a copy of the License at
|
|
779
|
+
*
|
|
780
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
781
|
+
*
|
|
782
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
783
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
784
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
785
|
+
* See the License for the specific language governing permissions and
|
|
786
|
+
* limitations under the License.
|
|
787
|
+
*/
|
|
788
|
+
var CaseWidgetType;
|
|
789
|
+
(function (CaseWidgetType) {
|
|
790
|
+
CaseWidgetType["FIELDS"] = "fields";
|
|
791
|
+
CaseWidgetType["TABLE"] = "table";
|
|
792
|
+
CaseWidgetType["CUSTOM"] = "custom";
|
|
793
|
+
CaseWidgetType["COLLECTION"] = "collection";
|
|
794
|
+
CaseWidgetType["FORMIO"] = "formio";
|
|
795
|
+
})(CaseWidgetType || (CaseWidgetType = {}));
|
|
796
|
+
|
|
797
|
+
/*
|
|
798
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
799
|
+
*
|
|
800
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
801
|
+
* you may not use this file except in compliance with the License.
|
|
802
|
+
* You may obtain a copy of the License at
|
|
803
|
+
*
|
|
804
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
805
|
+
*
|
|
806
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
807
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
808
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
809
|
+
* See the License for the specific language governing permissions and
|
|
810
|
+
* limitations under the License.
|
|
811
|
+
*/
|
|
812
|
+
var DefaultTabs;
|
|
813
|
+
(function (DefaultTabs) {
|
|
814
|
+
DefaultTabs["summary"] = "summary";
|
|
815
|
+
DefaultTabs["progress"] = "progress";
|
|
816
|
+
DefaultTabs["audit"] = "audit";
|
|
817
|
+
DefaultTabs["documents"] = "documents";
|
|
818
|
+
DefaultTabs["notes"] = "notes";
|
|
819
|
+
})(DefaultTabs || (DefaultTabs = {}));
|
|
820
|
+
|
|
758
821
|
/*
|
|
759
822
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
760
823
|
*
|
|
@@ -771,6 +834,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
771
834
|
* limitations under the License.
|
|
772
835
|
*/
|
|
773
836
|
|
|
837
|
+
/*
|
|
838
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
839
|
+
*
|
|
840
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
841
|
+
* you may not use this file except in compliance with the License.
|
|
842
|
+
* You may obtain a copy of the License at
|
|
843
|
+
*
|
|
844
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
845
|
+
*
|
|
846
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
847
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
848
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
849
|
+
* See the License for the specific language governing permissions and
|
|
850
|
+
* limitations under the License.
|
|
851
|
+
*/
|
|
852
|
+
|
|
853
|
+
/*
|
|
854
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
855
|
+
*
|
|
856
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
857
|
+
* you may not use this file except in compliance with the License.
|
|
858
|
+
* You may obtain a copy of the License at
|
|
859
|
+
*
|
|
860
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
861
|
+
*
|
|
862
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
863
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
864
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
865
|
+
* See the License for the specific language governing permissions and
|
|
866
|
+
* limitations under the License.
|
|
867
|
+
*/
|
|
868
|
+
var ApiTabType;
|
|
869
|
+
(function (ApiTabType) {
|
|
870
|
+
ApiTabType["STANDARD"] = "standard";
|
|
871
|
+
ApiTabType["FORMIO"] = "formio";
|
|
872
|
+
ApiTabType["CUSTOM"] = "custom";
|
|
873
|
+
ApiTabType["WIDGETS"] = "widgets";
|
|
874
|
+
})(ApiTabType || (ApiTabType = {}));
|
|
875
|
+
|
|
774
876
|
/*
|
|
775
877
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
776
878
|
*
|
|
@@ -788,6 +890,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
788
890
|
*/
|
|
789
891
|
class TabLoaderImpl {
|
|
790
892
|
constructor(tabs, componentFactoryResolver, viewContainerRef, router, route) {
|
|
893
|
+
this._activeTab$ = new BehaviorSubject(null);
|
|
791
894
|
this._tabs = null;
|
|
792
895
|
this._componentFactoryResolver = null;
|
|
793
896
|
this._viewContainerRef = null;
|
|
@@ -802,6 +905,9 @@ class TabLoaderImpl {
|
|
|
802
905
|
get tabs() {
|
|
803
906
|
return this._tabs;
|
|
804
907
|
}
|
|
908
|
+
get activeTab$() {
|
|
909
|
+
return this._activeTab$.pipe(filter(tab => !!tab));
|
|
910
|
+
}
|
|
805
911
|
initial(tabName) {
|
|
806
912
|
let initialTab;
|
|
807
913
|
if (tabName) {
|
|
@@ -845,20 +951,22 @@ class TabLoaderImpl {
|
|
|
845
951
|
setActive(tab) {
|
|
846
952
|
tab.activate();
|
|
847
953
|
this._activeTab = tab;
|
|
954
|
+
this._activeTab$.next(tab);
|
|
848
955
|
}
|
|
849
956
|
}
|
|
850
957
|
class TabImpl {
|
|
851
|
-
constructor(name, sequence, component, contentKey, title) {
|
|
958
|
+
constructor(name, sequence, component, contentKey, title, showTasks = false) {
|
|
852
959
|
this._active = false;
|
|
960
|
+
this._showTasks = false;
|
|
853
961
|
this._name = name;
|
|
854
962
|
this._sequence = sequence;
|
|
855
963
|
this._component = component;
|
|
856
|
-
if (contentKey)
|
|
964
|
+
if (contentKey)
|
|
857
965
|
this._contentKey = contentKey;
|
|
858
|
-
|
|
859
|
-
if (title) {
|
|
966
|
+
if (title)
|
|
860
967
|
this._title = title;
|
|
861
|
-
|
|
968
|
+
if (showTasks)
|
|
969
|
+
this._showTasks = showTasks;
|
|
862
970
|
}
|
|
863
971
|
get name() {
|
|
864
972
|
return this._name;
|
|
@@ -875,6 +983,9 @@ class TabImpl {
|
|
|
875
983
|
get title() {
|
|
876
984
|
return this._title;
|
|
877
985
|
}
|
|
986
|
+
get showTasks() {
|
|
987
|
+
return this._showTasks;
|
|
988
|
+
}
|
|
878
989
|
activate() {
|
|
879
990
|
this._active = true;
|
|
880
991
|
}
|
|
@@ -886,52 +997,6 @@ class TabImpl {
|
|
|
886
997
|
}
|
|
887
998
|
}
|
|
888
999
|
|
|
889
|
-
/*
|
|
890
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
891
|
-
*
|
|
892
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
893
|
-
* you may not use this file except in compliance with the License.
|
|
894
|
-
* You may obtain a copy of the License at
|
|
895
|
-
*
|
|
896
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
897
|
-
*
|
|
898
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
899
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
900
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
901
|
-
* See the License for the specific language governing permissions and
|
|
902
|
-
* limitations under the License.
|
|
903
|
-
*/
|
|
904
|
-
var DefaultTabs;
|
|
905
|
-
(function (DefaultTabs) {
|
|
906
|
-
DefaultTabs["summary"] = "summary";
|
|
907
|
-
DefaultTabs["progress"] = "progress";
|
|
908
|
-
DefaultTabs["audit"] = "audit";
|
|
909
|
-
DefaultTabs["documents"] = "documents";
|
|
910
|
-
DefaultTabs["notes"] = "notes";
|
|
911
|
-
})(DefaultTabs || (DefaultTabs = {}));
|
|
912
|
-
|
|
913
|
-
/*
|
|
914
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
915
|
-
*
|
|
916
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
917
|
-
* you may not use this file except in compliance with the License.
|
|
918
|
-
* You may obtain a copy of the License at
|
|
919
|
-
*
|
|
920
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
921
|
-
*
|
|
922
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
923
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
924
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
925
|
-
* See the License for the specific language governing permissions and
|
|
926
|
-
* limitations under the License.
|
|
927
|
-
*/
|
|
928
|
-
var ApiTabType;
|
|
929
|
-
(function (ApiTabType) {
|
|
930
|
-
ApiTabType["STANDARD"] = "standard";
|
|
931
|
-
ApiTabType["FORMIO"] = "formio";
|
|
932
|
-
ApiTabType["CUSTOM"] = "custom";
|
|
933
|
-
})(ApiTabType || (ApiTabType = {}));
|
|
934
|
-
|
|
935
1000
|
/*
|
|
936
1001
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
937
1002
|
*
|
|
@@ -966,22 +1031,11 @@ var ApiTabType;
|
|
|
966
1031
|
moment.locale(localStorage.getItem('langKey') || '');
|
|
967
1032
|
moment.defaultFormat = 'DD MMM YYYY HH:mm';
|
|
968
1033
|
class DossierDetailTabSummaryComponent {
|
|
969
|
-
constructor(
|
|
970
|
-
this.router = router;
|
|
1034
|
+
constructor(documentService, route, formService) {
|
|
971
1035
|
this.documentService = documentService;
|
|
972
|
-
this.taskService = taskService;
|
|
973
|
-
this.processService = processService;
|
|
974
|
-
this.el = el;
|
|
975
|
-
this.renderer = renderer;
|
|
976
1036
|
this.route = route;
|
|
977
1037
|
this.formService = formService;
|
|
978
|
-
this.userProviderService = userProviderService;
|
|
979
|
-
this.permissionService = permissionService;
|
|
980
|
-
this.processDocumentInstances = [];
|
|
981
|
-
this.tasks = [];
|
|
982
1038
|
this.formDefinition = null;
|
|
983
|
-
this.roles = [];
|
|
984
|
-
this.loadingTasks$ = new BehaviorSubject(true);
|
|
985
1039
|
this._subscriptions = new Subscription();
|
|
986
1040
|
this.snapshot = this.route.snapshot.paramMap;
|
|
987
1041
|
this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';
|
|
@@ -1005,60 +1059,14 @@ class DossierDetailTabSummaryComponent {
|
|
|
1005
1059
|
.subscribe(formDefinition => {
|
|
1006
1060
|
this.formDefinition = formDefinition;
|
|
1007
1061
|
}));
|
|
1008
|
-
this._subscriptions.add(this.userProviderService.getUserSubject().subscribe(user => {
|
|
1009
|
-
this.roles = user.roles;
|
|
1010
|
-
this.tasks = [];
|
|
1011
|
-
this.loadProcessDocumentInstances(this.documentId);
|
|
1012
|
-
}));
|
|
1013
|
-
}
|
|
1014
|
-
loadProcessDocumentInstances(documentId) {
|
|
1015
|
-
this._subscriptions.add(this.documentService
|
|
1016
|
-
.findProcessDocumentInstances(documentId)
|
|
1017
|
-
.subscribe(processDocumentInstances => {
|
|
1018
|
-
this.processDocumentInstances = processDocumentInstances;
|
|
1019
|
-
this.processDocumentInstances.forEach(instance => {
|
|
1020
|
-
this.loadProcessInstanceTasks(instance.id.processInstanceId);
|
|
1021
|
-
});
|
|
1022
|
-
}));
|
|
1023
|
-
}
|
|
1024
|
-
rowTaskClick(task) {
|
|
1025
|
-
this.taskDetail.openTaskDetails(task);
|
|
1026
|
-
}
|
|
1027
|
-
loadProcessInstanceTasks(processInstanceId) {
|
|
1028
|
-
this._subscriptions.add(this.processService
|
|
1029
|
-
.getProcessInstanceTasks(processInstanceId)
|
|
1030
|
-
.pipe(switchMap(tasks => combineLatest([
|
|
1031
|
-
of(tasks),
|
|
1032
|
-
...(tasks || []).map(task => this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {
|
|
1033
|
-
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
1034
|
-
identifier: task.id,
|
|
1035
|
-
})),
|
|
1036
|
-
])))
|
|
1037
|
-
.subscribe(res => {
|
|
1038
|
-
const tasks = res?.[0];
|
|
1039
|
-
const permissions = res?.filter((_, index) => index !== 0);
|
|
1040
|
-
if (!!tasks) {
|
|
1041
|
-
tasks.forEach((task, taskIndex) => {
|
|
1042
|
-
task.createdUnix = this.moment(task.created).unix();
|
|
1043
|
-
task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');
|
|
1044
|
-
task.isLocked = !permissions[taskIndex];
|
|
1045
|
-
});
|
|
1046
|
-
this.tasks = this.tasks.concat(tasks);
|
|
1047
|
-
this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);
|
|
1048
|
-
}
|
|
1049
|
-
this.loadingTasks$.next(false);
|
|
1050
|
-
}));
|
|
1051
1062
|
}
|
|
1052
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabSummaryComponent, deps: [{ token:
|
|
1053
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabSummaryComponent, selector: "valtimo-dossier-detail-tab-summary",
|
|
1063
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabSummaryComponent, deps: [{ token: i2$1.DocumentService }, { token: i1$1.ActivatedRoute }, { token: i3.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1064
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabSummaryComponent, selector: "valtimo-dossier-detail-tab-summary", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 </div>\n</div>\n", styles: [".hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{height:24px!important;background-color:#fff;border:0px;margin:0;padding:0!important;font-size:13px}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1054
1065
|
}
|
|
1055
1066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabSummaryComponent, decorators: [{
|
|
1056
1067
|
type: Component,
|
|
1057
|
-
args: [{ selector: 'valtimo-dossier-detail-tab-summary', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 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\"
|
|
1058
|
-
}], ctorParameters: () => [{ type:
|
|
1059
|
-
type: ViewChild,
|
|
1060
|
-
args: ['taskDetail']
|
|
1061
|
-
}] } });
|
|
1068
|
+
args: [{ selector: 'valtimo-dossier-detail-tab-summary', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 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 </div>\n</div>\n", styles: [".hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{height:24px!important;background-color:#fff;border:0px;margin:0;padding:0!important;font-size:13px}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1069
|
+
}], ctorParameters: () => [{ type: i2$1.DocumentService }, { type: i1$1.ActivatedRoute }, { type: i3.FormService }] });
|
|
1062
1070
|
|
|
1063
1071
|
/*
|
|
1064
1072
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -1107,7 +1115,7 @@ class DossierDetailTabProgressComponent {
|
|
|
1107
1115
|
}
|
|
1108
1116
|
}
|
|
1109
1117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabProgressComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabProgressComponent, selector: "valtimo-dossier-detail-tab-progress", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n <div class=\"process-info-row\">\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'progress.process' | translate\"\n [skeleton]=\"obs.processInstanceItems.isLoading\"\n [style.width.px]=\"350\"\n (selected)=\"loadProcessInstance($event.item.processInstanceId)\"\n >\n <cds-dropdown-list [items]=\"obs.processInstanceItems.value || []\"></cds-dropdown-list>\n </cds-dropdown>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n ></valtimo-process-diagram>\n </div>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-info-text{color:var(--v-color-black);font-size:var(--v-font-size-default)}.process-info-text{display:flex;height:40px;align-items:center}\n"], dependencies: [{ kind: "directive", type:
|
|
1118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabProgressComponent, selector: "valtimo-dossier-detail-tab-progress", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n <div class=\"process-info-row\">\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'progress.process' | translate\"\n [skeleton]=\"obs.processInstanceItems.isLoading\"\n [style.width.px]=\"350\"\n (selected)=\"loadProcessInstance($event.item.processInstanceId)\"\n >\n <cds-dropdown-list [items]=\"obs.processInstanceItems.value || []\"></cds-dropdown-list>\n </cds-dropdown>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n ></valtimo-process-diagram>\n </div>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-info-text{color:var(--v-color-black);font-size:var(--v-font-size-default)}.process-info-text{display:flex;height:40px;align-items:center}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.ProcessDiagramComponent, selector: "valtimo-process-diagram", inputs: ["processDefinitionKey", "processInstanceId"], outputs: ["importDone"] }, { kind: "component", type: i2$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i4.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4.SkeletonText, selector: "cds-skeleton-text, ibm-skeleton-text", inputs: ["lines", "minLineWidth", "maxLineWidth"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
1111
1119
|
}
|
|
1112
1120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabProgressComponent, decorators: [{
|
|
1113
1121
|
type: Component,
|
|
@@ -1169,13 +1177,13 @@ class DossierDetailTabAuditComponent {
|
|
|
1169
1177
|
this.currentAuditPage = page - 1;
|
|
1170
1178
|
this.loadAuditPage(this.currentAuditPage);
|
|
1171
1179
|
}
|
|
1172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabAuditComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.DocumentService }, { token: i3$
|
|
1173
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabAuditComponent, selector: "valtimo-dossier-detail-tab-audit", outputs: { paginationClicked: "paginationClicked" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"], dependencies: [{ kind: "directive", type:
|
|
1180
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabAuditComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.DocumentService }, { token: i3$2.NgxSpinnerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1181
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabAuditComponent, selector: "valtimo-dossier-detail-tab-audit", outputs: { paginationClicked: "paginationClicked" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }, { kind: "component", type: i2$2.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i6$1.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
1174
1182
|
}
|
|
1175
1183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabAuditComponent, decorators: [{
|
|
1176
1184
|
type: Component,
|
|
1177
1185
|
args: [{ selector: 'valtimo-dossier-detail-tab-audit', template: "<!--\n ~ Copyright 2015-2024 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", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"] }]
|
|
1178
|
-
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i2$1.DocumentService }, { type: i3$
|
|
1186
|
+
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i2$1.DocumentService }, { type: i3$2.NgxSpinnerService }], propDecorators: { paginationClicked: [{
|
|
1179
1187
|
type: Output
|
|
1180
1188
|
}] } });
|
|
1181
1189
|
|
|
@@ -1196,7 +1204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
1196
1204
|
*/
|
|
1197
1205
|
class DossierDetailTabNotFoundComponent {
|
|
1198
1206
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabNotFoundComponent, selector: "valtimo-dossier-detail-not-found", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-no-results\n [title]=\"'dossier.tabs.componentNotFound' | translate\"\n [description]=\"'dossier.tabs.componentNotFoundMessage' | translate\"\n illustration=\"valtimo-layout/img/emptystate-error.svg\"\n></valtimo-no-results>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "component", type: i2$
|
|
1207
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabNotFoundComponent, selector: "valtimo-dossier-detail-not-found", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-no-results\n [title]=\"'dossier.tabs.componentNotFound' | translate\"\n [description]=\"'dossier.tabs.componentNotFoundMessage' | translate\"\n illustration=\"valtimo-layout/img/emptystate-error.svg\"\n></valtimo-no-results>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
1200
1208
|
}
|
|
1201
1209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabNotFoundComponent, decorators: [{
|
|
1202
1210
|
type: Component,
|
|
@@ -1318,13 +1326,13 @@ class DossierDetailTabS3DocumentsComponent {
|
|
|
1318
1326
|
refetchDocuments() {
|
|
1319
1327
|
this.refetch$.next(null);
|
|
1320
1328
|
}
|
|
1321
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabS3DocumentsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.DocumentService }, { token: i3$
|
|
1322
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabS3DocumentsComponent, selector: "valtimo-dossier-detail-tab-s3-documents", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "component", type: i2$
|
|
1329
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabS3DocumentsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.DocumentService }, { token: i3$3.ToastrService }, { token: i4$1.UploadProviderService }, { token: i4$1.DownloadService }, { token: i2$2.PromptService }, { token: i6.TranslateService }, { token: i1.ConfigService }, { token: i2$1.FileSortService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1330
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabS3DocumentsComponent, selector: "valtimo-dossier-detail-tab-s3-documents", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "component", type: i2$2.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i2$2.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i2$2.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
1323
1331
|
}
|
|
1324
1332
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabS3DocumentsComponent, decorators: [{
|
|
1325
1333
|
type: Component,
|
|
1326
1334
|
args: [{ selector: 'valtimo-dossier-detail-tab-s3-documents', template: "<!--\n ~ Copyright 2015-2024 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", styles: ["/*!\n * Copyright 2015-2024 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"] }]
|
|
1327
|
-
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i2$1.DocumentService }, { type: i3$
|
|
1335
|
+
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i2$1.DocumentService }, { type: i3$3.ToastrService }, { type: i4$1.UploadProviderService }, { type: i4$1.DownloadService }, { type: i2$2.PromptService }, { type: i6.TranslateService }, { type: i1.ConfigService }, { type: i2$1.FileSortService }] });
|
|
1328
1336
|
|
|
1329
1337
|
/*
|
|
1330
1338
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -1374,7 +1382,7 @@ class DossierDetailTabDocumentsComponent {
|
|
|
1374
1382
|
this.documentenApiUploadProvider$.next(uploadProvider === UploadProvider.DOCUMENTEN_API);
|
|
1375
1383
|
}
|
|
1376
1384
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabDocumentsComponent, deps: [{ token: i1.ConfigService }, { token: ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1377
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabDocumentsComponent, selector: "valtimo-dossier-detail-tab-documents", host: { properties: { "class.tab--no-margin": "this.noMargin", "class.tab--no-min-height": "this.noMinHeight" } }, viewQueries: [{ propertyName: "_externalDocumentsTab", first: true, predicate: ["externalDocumentsTab"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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$ | async) || (openZaakUploadProvider$ | async)\"\n></valtimo-dossier-detail-tab-s3-documents>\n\n<ng-template #externalDocumentsTab></ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
1385
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabDocumentsComponent, selector: "valtimo-dossier-detail-tab-documents", host: { properties: { "class.tab--no-margin": "this.noMargin", "class.tab--no-min-height": "this.noMinHeight" } }, viewQueries: [{ propertyName: "_externalDocumentsTab", first: true, predicate: ["externalDocumentsTab"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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$ | async) || (openZaakUploadProvider$ | async)\"\n></valtimo-dossier-detail-tab-s3-documents>\n\n<ng-template #externalDocumentsTab></ng-template>\n", dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DossierDetailTabS3DocumentsComponent, selector: "valtimo-dossier-detail-tab-s3-documents" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] }); }
|
|
1378
1386
|
}
|
|
1379
1387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabDocumentsComponent, decorators: [{
|
|
1380
1388
|
type: Component,
|
|
@@ -1629,13 +1637,13 @@ class NoteModalComponent {
|
|
|
1629
1637
|
setValid(data) {
|
|
1630
1638
|
this.valid$.next(!!data.content);
|
|
1631
1639
|
}
|
|
1632
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NoteModalComponent, deps: [{ token: NotesService }, { token: i2$
|
|
1633
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: NoteModalComponent, selector: "valtimo-note-modal", inputs: { customData: "customData" }, outputs: { createNoteEvent: "createNoteEvent", editNoteEvent: "editNoteEvent" }, viewQueries: [{ propertyName: "noteModal", first: true, predicate: ["noteModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #noteModal\n *ngIf=\"{disabled: disabled$ | async, valid: valid$ | async, modalType: modalType$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add' ? 'dossier.notes.addNote' : 'dossier.notes.modifyNote') | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <ng-container\n *ngTemplateOutlet=\"\n obs.modalType === 'add' ? addNoteButton : editNoteButton;\n context: {obs: obs}\n \"\n ></ng-container>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addNoteButton let-obs=\"obs\">\n <v-button\n (clickEvent)=\"emitNoteData()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n</ng-template>\n<ng-template #editNoteButton let-obs=\"obs\">\n <v-button\n [disabled]=\"obs.disabled || !obs.valid\"\n (clickEvent)=\"emitNoteData()\"\n mdiIcon=\"pencil\"\n type=\"success\"\n >\n {{ 'dossier.notes.modifyNote' | translate }}\n </v-button>\n</ng-template>\n\n<ng-template #form>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n [defaultValue]=\"customData?.summaryTranslationKey || ''\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", styles: [".buttons,.add-note-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.add-note-title{justify-content:center}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type:
|
|
1640
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NoteModalComponent, deps: [{ token: NotesService }, { token: i2$2.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1641
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: NoteModalComponent, selector: "valtimo-note-modal", inputs: { customData: "customData" }, outputs: { createNoteEvent: "createNoteEvent", editNoteEvent: "editNoteEvent" }, viewQueries: [{ propertyName: "noteModal", first: true, predicate: ["noteModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #noteModal\n *ngIf=\"{disabled: disabled$ | async, valid: valid$ | async, modalType: modalType$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add' ? 'dossier.notes.addNote' : 'dossier.notes.modifyNote') | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <ng-container\n *ngTemplateOutlet=\"\n obs.modalType === 'add' ? addNoteButton : editNoteButton;\n context: {obs: obs}\n \"\n ></ng-container>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addNoteButton let-obs=\"obs\">\n <v-button\n (clickEvent)=\"emitNoteData()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n</ng-template>\n<ng-template #editNoteButton let-obs=\"obs\">\n <v-button\n [disabled]=\"obs.disabled || !obs.valid\"\n (clickEvent)=\"emitNoteData()\"\n mdiIcon=\"pencil\"\n type=\"success\"\n >\n {{ 'dossier.notes.modifyNote' | translate }}\n </v-button>\n</ng-template>\n\n<ng-template #form>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n [defaultValue]=\"customData?.summaryTranslationKey || ''\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", styles: [".buttons,.add-note-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.add-note-title{justify-content:center}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$2.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "component", type: i2$2.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "component", type: i2$2.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "component", type: i2$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder"], outputs: ["valueChange"] }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
1634
1642
|
}
|
|
1635
1643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NoteModalComponent, decorators: [{
|
|
1636
1644
|
type: Component,
|
|
1637
1645
|
args: [{ selector: 'valtimo-note-modal', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #noteModal\n *ngIf=\"{disabled: disabled$ | async, valid: valid$ | async, modalType: modalType$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add' ? 'dossier.notes.addNote' : 'dossier.notes.modifyNote') | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <ng-container\n *ngTemplateOutlet=\"\n obs.modalType === 'add' ? addNoteButton : editNoteButton;\n context: {obs: obs}\n \"\n ></ng-container>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addNoteButton let-obs=\"obs\">\n <v-button\n (clickEvent)=\"emitNoteData()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n</ng-template>\n<ng-template #editNoteButton let-obs=\"obs\">\n <v-button\n [disabled]=\"obs.disabled || !obs.valid\"\n (clickEvent)=\"emitNoteData()\"\n mdiIcon=\"pencil\"\n type=\"success\"\n >\n {{ 'dossier.notes.modifyNote' | translate }}\n </v-button>\n</ng-template>\n\n<ng-template #form>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n [defaultValue]=\"customData?.summaryTranslationKey || ''\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", styles: [".buttons,.add-note-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.add-note-title{justify-content:center}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1638
|
-
}], ctorParameters: () => [{ type: NotesService }, { type: i2$
|
|
1646
|
+
}], ctorParameters: () => [{ type: NotesService }, { type: i2$2.ModalService }], propDecorators: { noteModal: [{
|
|
1639
1647
|
type: ViewChild,
|
|
1640
1648
|
args: ['noteModal']
|
|
1641
1649
|
}], customData: [{
|
|
@@ -1789,13 +1797,13 @@ class DossierDetailTabNotesComponent {
|
|
|
1789
1797
|
},
|
|
1790
1798
|
});
|
|
1791
1799
|
}
|
|
1792
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabNotesComponent, deps: [{ token: NotesService }, { token: i7.PermissionService }, { token: i2$
|
|
1793
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabNotesComponent, selector: "valtimo-dossier-detail-tab-notes", host: { properties: { "class.tab--no-margin": "this.noMargin" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type:
|
|
1800
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabNotesComponent, deps: [{ token: NotesService }, { token: i7.PermissionService }, { token: i2$2.PromptService }, { token: i1$1.ActivatedRoute }, { token: i3$3.ToastrService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1801
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabNotesComponent, selector: "valtimo-dossier-detail-tab-notes", host: { properties: { "class.tab--no-margin": "this.noMargin" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }, { kind: "component", type: i2$2.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i6$1.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: NoteModalComponent, selector: "valtimo-note-modal", inputs: ["customData"], outputs: ["createNoteEvent", "editNoteEvent"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
1794
1802
|
}
|
|
1795
1803
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabNotesComponent, decorators: [{
|
|
1796
1804
|
type: Component,
|
|
1797
1805
|
args: [{ selector: 'valtimo-dossier-detail-tab-notes', template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1798
|
-
}], ctorParameters: () => [{ type: NotesService }, { type: i7.PermissionService }, { type: i2$
|
|
1806
|
+
}], ctorParameters: () => [{ type: NotesService }, { type: i7.PermissionService }, { type: i2$2.PromptService }, { type: i1$1.ActivatedRoute }, { type: i3$3.ToastrService }, { type: i6.TranslateService }], propDecorators: { noMargin: [{
|
|
1799
1807
|
type: HostBinding,
|
|
1800
1808
|
args: ['class.tab--no-margin']
|
|
1801
1809
|
}] } });
|
|
@@ -1899,13 +1907,774 @@ const DOSSIER_LIST_NO_RESULTS_MESSAGE = {
|
|
|
1899
1907
|
* See the License for the specific language governing permissions and
|
|
1900
1908
|
* limitations under the License.
|
|
1901
1909
|
*/
|
|
1902
|
-
const CASE_WITHOUT_STATUS_STATUS = {
|
|
1903
|
-
key: CASES_WITHOUT_STATUS_KEY,
|
|
1904
|
-
documentDefinitionName: '',
|
|
1905
|
-
title: '',
|
|
1906
|
-
color: InternalCaseStatusColor.Gray,
|
|
1907
|
-
visibleInCaseListByDefault: false,
|
|
1908
|
-
};
|
|
1910
|
+
const CASE_WITHOUT_STATUS_STATUS = {
|
|
1911
|
+
key: CASES_WITHOUT_STATUS_KEY,
|
|
1912
|
+
documentDefinitionName: '',
|
|
1913
|
+
title: '',
|
|
1914
|
+
color: InternalCaseStatusColor.Gray,
|
|
1915
|
+
visibleInCaseListByDefault: false,
|
|
1916
|
+
};
|
|
1917
|
+
|
|
1918
|
+
/*
|
|
1919
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1920
|
+
*
|
|
1921
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1922
|
+
* you may not use this file except in compliance with the License.
|
|
1923
|
+
* You may obtain a copy of the License at
|
|
1924
|
+
*
|
|
1925
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1926
|
+
*
|
|
1927
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1928
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1929
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1930
|
+
* See the License for the specific language governing permissions and
|
|
1931
|
+
* limitations under the License.
|
|
1932
|
+
*/
|
|
1933
|
+
const WIDGET_WIDTH_1X = 320;
|
|
1934
|
+
const WIDGET_HEIGHT_1X = 200;
|
|
1935
|
+
|
|
1936
|
+
/*
|
|
1937
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1938
|
+
*
|
|
1939
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1940
|
+
* you may not use this file except in compliance with the License.
|
|
1941
|
+
* You may obtain a copy of the License at
|
|
1942
|
+
*
|
|
1943
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1944
|
+
*
|
|
1945
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1946
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1947
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1948
|
+
* See the License for the specific language governing permissions and
|
|
1949
|
+
* limitations under the License.
|
|
1950
|
+
*/
|
|
1951
|
+
const CUSTOM_CASE_WIDGET_TOKEN = new InjectionToken('Specify a component to display per configured custom case widget component key.');
|
|
1952
|
+
|
|
1953
|
+
/*
|
|
1954
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1955
|
+
*
|
|
1956
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1957
|
+
* you may not use this file except in compliance with the License.
|
|
1958
|
+
* You may obtain a copy of the License at
|
|
1959
|
+
*
|
|
1960
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1961
|
+
*
|
|
1962
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1963
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1964
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1965
|
+
* See the License for the specific language governing permissions and
|
|
1966
|
+
* limitations under the License.
|
|
1967
|
+
*/
|
|
1968
|
+
|
|
1969
|
+
/*
|
|
1970
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1971
|
+
*
|
|
1972
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1973
|
+
* you may not use this file except in compliance with the License.
|
|
1974
|
+
* You may obtain a copy of the License at
|
|
1975
|
+
*
|
|
1976
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1977
|
+
*
|
|
1978
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1979
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1980
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1981
|
+
* See the License for the specific language governing permissions and
|
|
1982
|
+
* limitations under the License.
|
|
1983
|
+
*/
|
|
1984
|
+
class DossierDetailTabFormioComponent {
|
|
1985
|
+
constructor(tabService, route, formService) {
|
|
1986
|
+
this.tabService = tabService;
|
|
1987
|
+
this.route = route;
|
|
1988
|
+
this.formService = formService;
|
|
1989
|
+
this.loading$ = new BehaviorSubject(true);
|
|
1990
|
+
this.formNotFound$ = new BehaviorSubject('');
|
|
1991
|
+
this.noFormSpecified$ = new BehaviorSubject(false);
|
|
1992
|
+
this.prefilledForm$ = combineLatest([
|
|
1993
|
+
this.tabService.tabs$,
|
|
1994
|
+
this.route.params,
|
|
1995
|
+
]).pipe(switchMap(([tabs, params]) => {
|
|
1996
|
+
const currentTabName = params?.tab;
|
|
1997
|
+
const documentId = params?.documentId;
|
|
1998
|
+
const currentTab = tabs.find(tab => tab.name === currentTabName);
|
|
1999
|
+
if (!documentId || !currentTab?.contentKey) {
|
|
2000
|
+
this.noFormSpecified$.next(true);
|
|
2001
|
+
return of(null);
|
|
2002
|
+
}
|
|
2003
|
+
this._formDefinitionName = currentTab.contentKey;
|
|
2004
|
+
return this.formService.getFormDefinitionByNamePreFilled(currentTab.contentKey, documentId);
|
|
2005
|
+
}), tap(() => this.loading$.next(false)), catchError(() => {
|
|
2006
|
+
this.formNotFound$.next(this._formDefinitionName);
|
|
2007
|
+
this.loading$.next(false);
|
|
2008
|
+
return of(null);
|
|
2009
|
+
}));
|
|
2010
|
+
}
|
|
2011
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabFormioComponent, deps: [{ token: DossierTabService }, { token: i1$1.ActivatedRoute }, { token: i3.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2012
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabFormioComponent, selector: "ng-component", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 prefilledForm: prefilledForm$ | async,\n loading: loading$ | async,\n formNotFound: formNotFound$ | async,\n noFormSpecified: noFormSpecified$ | async\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <p *ngIf=\"obs.formNotFound\" class=\"error-message\">\n {{ 'dossier.formio.formNotFound' | translate: {formDefinitionName: obs.formNotFound} }}\n </p>\n\n <p *ngIf=\"obs.noFormSpecified\" class=\"error-message\">\n {{ 'dossier.formio.noFormSpecified' | translate }}\n </p>\n\n <valtimo-form-io *ngIf=\"obs.prefilledForm\" [form]=\"obs.prefilledForm\"> </valtimo-form-io>\n</ng-container>\n", styles: [".loading-container{display:flex;width:100%;flex-direction:row;justify-content:center}.error-message{text-align:center}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2013
|
+
}
|
|
2014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabFormioComponent, decorators: [{
|
|
2015
|
+
type: Component,
|
|
2016
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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 prefilledForm: prefilledForm$ | async,\n loading: loading$ | async,\n formNotFound: formNotFound$ | async,\n noFormSpecified: noFormSpecified$ | async\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <p *ngIf=\"obs.formNotFound\" class=\"error-message\">\n {{ 'dossier.formio.formNotFound' | translate: {formDefinitionName: obs.formNotFound} }}\n </p>\n\n <p *ngIf=\"obs.noFormSpecified\" class=\"error-message\">\n {{ 'dossier.formio.noFormSpecified' | translate }}\n </p>\n\n <valtimo-form-io *ngIf=\"obs.prefilledForm\" [form]=\"obs.prefilledForm\"> </valtimo-form-io>\n</ng-container>\n", styles: [".loading-container{display:flex;width:100%;flex-direction:row;justify-content:center}.error-message{text-align:center}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2017
|
+
}], ctorParameters: () => [{ type: DossierTabService }, { type: i1$1.ActivatedRoute }, { type: i3.FormService }] });
|
|
2018
|
+
|
|
2019
|
+
/*
|
|
2020
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2021
|
+
*
|
|
2022
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2023
|
+
* you may not use this file except in compliance with the License.
|
|
2024
|
+
* You may obtain a copy of the License at
|
|
2025
|
+
*
|
|
2026
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2027
|
+
*
|
|
2028
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2029
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2030
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2031
|
+
* See the License for the specific language governing permissions and
|
|
2032
|
+
* limitations under the License.
|
|
2033
|
+
*/
|
|
2034
|
+
class WidgetCustomComponent {
|
|
2035
|
+
set widgetConfig(value) {
|
|
2036
|
+
if (value)
|
|
2037
|
+
this._widgetConfigSubject$.next(value);
|
|
2038
|
+
}
|
|
2039
|
+
get widgetConfig$() {
|
|
2040
|
+
return this._widgetConfigSubject$.pipe(filter(config => config !== null));
|
|
2041
|
+
}
|
|
2042
|
+
constructor(customCaseWidgetConfig, cdr) {
|
|
2043
|
+
this.customCaseWidgetConfig = customCaseWidgetConfig;
|
|
2044
|
+
this.cdr = cdr;
|
|
2045
|
+
this._customCaseWidgetConfig$ = new BehaviorSubject({});
|
|
2046
|
+
this._widgetConfigSubject$ = new BehaviorSubject(null);
|
|
2047
|
+
this.noCustomComponentAvailable = signal(false);
|
|
2048
|
+
this._subscriptions = new Subscription();
|
|
2049
|
+
if (customCaseWidgetConfig)
|
|
2050
|
+
this._customCaseWidgetConfig$.next(customCaseWidgetConfig);
|
|
2051
|
+
}
|
|
2052
|
+
ngAfterViewInit() {
|
|
2053
|
+
this.openCustomWidgetSubscription();
|
|
2054
|
+
}
|
|
2055
|
+
ngOnDestroy() {
|
|
2056
|
+
this._subscriptions.unsubscribe();
|
|
2057
|
+
}
|
|
2058
|
+
openCustomWidgetSubscription() {
|
|
2059
|
+
this._subscriptions.add(combineLatest([this.widgetConfig$, this._customCaseWidgetConfig$]).subscribe(([widgetConfig, customCaseWidgetConfig]) => {
|
|
2060
|
+
const customWidgetComponentKey = widgetConfig?.properties?.componentKey;
|
|
2061
|
+
const customComponent = customCaseWidgetConfig[customWidgetComponentKey];
|
|
2062
|
+
if (!customComponent) {
|
|
2063
|
+
this.noCustomComponentAvailable.set(true);
|
|
2064
|
+
return;
|
|
2065
|
+
}
|
|
2066
|
+
const componentRef = this._customWidgetContainerRef.createComponent(customComponent);
|
|
2067
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
2068
|
+
this.cdr.detectChanges();
|
|
2069
|
+
}));
|
|
2070
|
+
}
|
|
2071
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetCustomComponent, deps: [{ token: CUSTOM_CASE_WIDGET_TOKEN, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2072
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetCustomComponent, isStandalone: true, selector: "valtimo-widget-custom", inputs: { widgetConfig: "widgetConfig" }, viewQueries: [{ propertyName: "_customWidgetContainerRef", first: true, predicate: ["customWidgetContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"custom-widget\">\n <h4 class=\"custom-widget__title\">{{ (widgetConfig$ | async)?.title || '-' }}</h4>\n\n <div class=\"custom-widget__content\">\n <ng-template #customWidgetContainer></ng-template>\n\n @if (noCustomComponentAvailable()) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noCustomComponentDescription' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n </div>\n</div>\n", styles: [".custom-widget{padding:24px}.custom-widget__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2073
|
+
}
|
|
2074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetCustomComponent, decorators: [{
|
|
2075
|
+
type: Component,
|
|
2076
|
+
args: [{ selector: 'valtimo-widget-custom', standalone: true, imports: [CommonModule, CarbonListModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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=\"custom-widget\">\n <h4 class=\"custom-widget__title\">{{ (widgetConfig$ | async)?.title || '-' }}</h4>\n\n <div class=\"custom-widget__content\">\n <ng-template #customWidgetContainer></ng-template>\n\n @if (noCustomComponentAvailable()) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noCustomComponentDescription' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n </div>\n</div>\n", styles: [".custom-widget{padding:24px}.custom-widget__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2077
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2078
|
+
type: Optional
|
|
2079
|
+
}, {
|
|
2080
|
+
type: Inject,
|
|
2081
|
+
args: [CUSTOM_CASE_WIDGET_TOKEN]
|
|
2082
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { _customWidgetContainerRef: [{
|
|
2083
|
+
type: ViewChild,
|
|
2084
|
+
args: ['customWidgetContainer', { read: ViewContainerRef }]
|
|
2085
|
+
}], widgetConfig: [{
|
|
2086
|
+
type: Input
|
|
2087
|
+
}] } });
|
|
2088
|
+
|
|
2089
|
+
/*
|
|
2090
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2091
|
+
*
|
|
2092
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2093
|
+
* you may not use this file except in compliance with the License.
|
|
2094
|
+
* You may obtain a copy of the License at
|
|
2095
|
+
*
|
|
2096
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2097
|
+
*
|
|
2098
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2099
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2100
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2101
|
+
* See the License for the specific language governing permissions and
|
|
2102
|
+
* limitations under the License.
|
|
2103
|
+
*/
|
|
2104
|
+
class WidgetFieldComponent {
|
|
2105
|
+
set widgetConfiguration(value) {
|
|
2106
|
+
if (!value)
|
|
2107
|
+
return;
|
|
2108
|
+
this.widgetConfiguration$.next(value);
|
|
2109
|
+
}
|
|
2110
|
+
set widgetData(value) {
|
|
2111
|
+
if (!value)
|
|
2112
|
+
return;
|
|
2113
|
+
this.widgetData$.next(value);
|
|
2114
|
+
this.isEmptyWidgetData$.next(this.checkEmptyWidgetData(value));
|
|
2115
|
+
}
|
|
2116
|
+
constructor(viewContentService) {
|
|
2117
|
+
this.viewContentService = viewContentService;
|
|
2118
|
+
this.class = 'widget-field';
|
|
2119
|
+
this.collapseVertically = false;
|
|
2120
|
+
this.isEmptyWidgetData$ = new BehaviorSubject(false);
|
|
2121
|
+
this.renderVertically = signal(0);
|
|
2122
|
+
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
2123
|
+
this.widgetData$ = new BehaviorSubject(null);
|
|
2124
|
+
this.widgetPropertyValue$ = combineLatest([this.widgetConfiguration$, this.widgetData$]).pipe(map(([widget, widgetData]) => widget?.properties.columns.map(column => column.reduce((columnFields, property) => [
|
|
2125
|
+
...columnFields,
|
|
2126
|
+
...(widgetData?.hasOwnProperty(property.key)
|
|
2127
|
+
? [
|
|
2128
|
+
{
|
|
2129
|
+
title: property.title,
|
|
2130
|
+
value: widgetData[property.key] !== null && widgetData[property.key] !== undefined
|
|
2131
|
+
? this.viewContentService.get(widgetData[property.key], {
|
|
2132
|
+
...property.displayProperties,
|
|
2133
|
+
viewType: property.displayProperties?.type ?? 'text',
|
|
2134
|
+
})
|
|
2135
|
+
: '-',
|
|
2136
|
+
},
|
|
2137
|
+
]
|
|
2138
|
+
: []),
|
|
2139
|
+
], []))));
|
|
2140
|
+
}
|
|
2141
|
+
ngAfterViewInit() {
|
|
2142
|
+
if (this.collapseVertically && this._widgetFieldRef)
|
|
2143
|
+
this.openWidthObserver();
|
|
2144
|
+
}
|
|
2145
|
+
ngOnDestroy() {
|
|
2146
|
+
this._observer?.disconnect();
|
|
2147
|
+
}
|
|
2148
|
+
openWidthObserver() {
|
|
2149
|
+
this._observer = new ResizeObserver(event => {
|
|
2150
|
+
this.observerMutation(event);
|
|
2151
|
+
});
|
|
2152
|
+
this._observer.observe(this._widgetFieldRef.nativeElement);
|
|
2153
|
+
}
|
|
2154
|
+
observerMutation(event) {
|
|
2155
|
+
const elementWidth = event[0]?.borderBoxSize[0]?.inlineSize;
|
|
2156
|
+
if (typeof elementWidth === 'number' && elementWidth !== 0) {
|
|
2157
|
+
if (elementWidth < 640) {
|
|
2158
|
+
this.renderVertically.set(1);
|
|
2159
|
+
}
|
|
2160
|
+
else if (elementWidth > 640 && elementWidth <= 768) {
|
|
2161
|
+
this.renderVertically.set(2);
|
|
2162
|
+
}
|
|
2163
|
+
else if (elementWidth > 768 && elementWidth <= 1080) {
|
|
2164
|
+
this.renderVertically.set(3);
|
|
2165
|
+
}
|
|
2166
|
+
else if (elementWidth > 1080) {
|
|
2167
|
+
this.renderVertically.set(4);
|
|
2168
|
+
}
|
|
2169
|
+
}
|
|
2170
|
+
}
|
|
2171
|
+
checkEmptyWidgetData(widgetData) {
|
|
2172
|
+
return widgetData && Object.keys(widgetData).length === 0;
|
|
2173
|
+
}
|
|
2174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetFieldComponent, deps: [{ token: i2$2.ViewContentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n {{ property?.title }}\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;grid-gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2176
|
+
}
|
|
2177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetFieldComponent, decorators: [{
|
|
2178
|
+
type: Component,
|
|
2179
|
+
args: [{ selector: 'valtimo-widget-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, WidgetFieldComponent, InputModule, TranslateModule, CarbonListModule], template: "<!--\n ~ Copyright 2015-2024 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 widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n {{ property?.title }}\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;grid-gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2180
|
+
}], ctorParameters: () => [{ type: i2$2.ViewContentService }], propDecorators: { class: [{
|
|
2181
|
+
type: HostBinding,
|
|
2182
|
+
args: ['class']
|
|
2183
|
+
}], _widgetFieldRef: [{
|
|
2184
|
+
type: ViewChild,
|
|
2185
|
+
args: ['widgetField']
|
|
2186
|
+
}], collapseVertically: [{
|
|
2187
|
+
type: Input
|
|
2188
|
+
}], widgetConfiguration: [{
|
|
2189
|
+
type: Input
|
|
2190
|
+
}], widgetData: [{
|
|
2191
|
+
type: Input
|
|
2192
|
+
}] } });
|
|
2193
|
+
|
|
2194
|
+
/*
|
|
2195
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2196
|
+
*
|
|
2197
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2198
|
+
* you may not use this file except in compliance with the License.
|
|
2199
|
+
* You may obtain a copy of the License at
|
|
2200
|
+
*
|
|
2201
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2202
|
+
*
|
|
2203
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2204
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2205
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2206
|
+
* See the License for the specific language governing permissions and
|
|
2207
|
+
* limitations under the License.
|
|
2208
|
+
*/
|
|
2209
|
+
class WidgetFormioComponent {
|
|
2210
|
+
set documentId(value) {
|
|
2211
|
+
if (value)
|
|
2212
|
+
this._documentIdSubject$.next(value);
|
|
2213
|
+
}
|
|
2214
|
+
set widgetConfiguration(value) {
|
|
2215
|
+
if (!value)
|
|
2216
|
+
return;
|
|
2217
|
+
this.layoutService.setWidgetWithExternalData(value.uuid);
|
|
2218
|
+
this._widgetConfigurationSubject$.next(value);
|
|
2219
|
+
}
|
|
2220
|
+
get widgetConfiguration$() {
|
|
2221
|
+
return this._widgetConfigurationSubject$.pipe(filter(config => !!config));
|
|
2222
|
+
}
|
|
2223
|
+
get _documentId$() {
|
|
2224
|
+
return this._documentIdSubject$.pipe(filter(id => !!id));
|
|
2225
|
+
}
|
|
2226
|
+
constructor(formService, layoutService) {
|
|
2227
|
+
this.formService = formService;
|
|
2228
|
+
this.layoutService = layoutService;
|
|
2229
|
+
this._widgetConfigurationSubject$ = new BehaviorSubject(null);
|
|
2230
|
+
this._documentIdSubject$ = new BehaviorSubject('');
|
|
2231
|
+
this.prefilledFormDefinition$ = combineLatest([
|
|
2232
|
+
this.widgetConfiguration$,
|
|
2233
|
+
this._documentId$,
|
|
2234
|
+
]).pipe(switchMap(([config, documentId]) => combineLatest([
|
|
2235
|
+
this.formService.getFormDefinitionByNamePreFilled(config.properties.formDefinitionName, documentId),
|
|
2236
|
+
of(config),
|
|
2237
|
+
])), tap(([_, config]) => this.layoutService.setWidgetWithExternalDataReady(config.uuid)), map(([formDef]) => formDef));
|
|
2238
|
+
}
|
|
2239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetFormioComponent, deps: [{ token: i3.FormService }, { token: DossierWidgetsLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2240
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: WidgetFormioComponent, isStandalone: true, selector: "valtimo-widget-formio", inputs: { documentId: "documentId", widgetConfiguration: "widgetConfiguration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"formio-widget\" *ngIf=\"prefilledFormDefinition$ | async as prefilledFormDefinition\">\n <h4 class=\"formio-widget__title\">{{ (widgetConfiguration$ | async)?.title || '-' }}</h4>\n\n <valtimo-form-io [form]=\"prefilledFormDefinition\"></valtimo-form-io>\n</div>\n", styles: [".formio-widget{padding:24px}.formio-widget__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px;margin-bottom:16px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i2$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2241
|
+
}
|
|
2242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetFormioComponent, decorators: [{
|
|
2243
|
+
type: Component,
|
|
2244
|
+
args: [{ selector: 'valtimo-widget-formio', standalone: true, imports: [CommonModule, TranslateModule, FormIoModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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=\"formio-widget\" *ngIf=\"prefilledFormDefinition$ | async as prefilledFormDefinition\">\n <h4 class=\"formio-widget__title\">{{ (widgetConfiguration$ | async)?.title || '-' }}</h4>\n\n <valtimo-form-io [form]=\"prefilledFormDefinition\"></valtimo-form-io>\n</div>\n", styles: [".formio-widget{padding:24px}.formio-widget__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px;margin-bottom:16px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2245
|
+
}], ctorParameters: () => [{ type: i3.FormService }, { type: DossierWidgetsLayoutService }], propDecorators: { documentId: [{
|
|
2246
|
+
type: Input
|
|
2247
|
+
}], widgetConfiguration: [{
|
|
2248
|
+
type: Input
|
|
2249
|
+
}] } });
|
|
2250
|
+
|
|
2251
|
+
/*
|
|
2252
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2253
|
+
*
|
|
2254
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2255
|
+
* you may not use this file except in compliance with the License.
|
|
2256
|
+
* You may obtain a copy of the License at
|
|
2257
|
+
*
|
|
2258
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2259
|
+
*
|
|
2260
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2261
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2262
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2263
|
+
* See the License for the specific language governing permissions and
|
|
2264
|
+
* limitations under the License.
|
|
2265
|
+
*/
|
|
2266
|
+
class WidgetTableComponent {
|
|
2267
|
+
set widgetConfiguration(value) {
|
|
2268
|
+
this._widgetConfiguration = value;
|
|
2269
|
+
this.fields$.next(value.properties.columns.map((column, index) => ({
|
|
2270
|
+
key: column.key,
|
|
2271
|
+
label: column.title,
|
|
2272
|
+
viewType: column.displayProperties?.type ?? ViewType.TEXT,
|
|
2273
|
+
className: `valtimo-widget-table--transparent ${index === 0 && value.properties.firstColumnAsTitle ? 'valtimo-widget-table--title' : ''}`,
|
|
2274
|
+
...(!!column.displayProperties?.['format'] && {
|
|
2275
|
+
format: column.displayProperties['format'],
|
|
2276
|
+
}),
|
|
2277
|
+
...(!!column.displayProperties?.['digitsInfo'] && {
|
|
2278
|
+
digitsInfo: column.displayProperties['digitsInfo'],
|
|
2279
|
+
}),
|
|
2280
|
+
...(!!column.displayProperties?.['display'] && {
|
|
2281
|
+
display: column.displayProperties['display'],
|
|
2282
|
+
}),
|
|
2283
|
+
...(!!column.displayProperties?.['currencyCode'] && {
|
|
2284
|
+
currencyCode: column.displayProperties['currencyCode'],
|
|
2285
|
+
}),
|
|
2286
|
+
})));
|
|
2287
|
+
this.cdr.detectChanges();
|
|
2288
|
+
}
|
|
2289
|
+
get widgetConfiguration() {
|
|
2290
|
+
return this._widgetConfiguration;
|
|
2291
|
+
}
|
|
2292
|
+
get _initialNumberOfElements$() {
|
|
2293
|
+
return this._initialNumberOfElementsSubject$.pipe(filter(numberOfElements => numberOfElements !== null));
|
|
2294
|
+
}
|
|
2295
|
+
set widgetData(value) {
|
|
2296
|
+
if (!value)
|
|
2297
|
+
return;
|
|
2298
|
+
this.showPagination$.next(value.totalElements > value.size);
|
|
2299
|
+
this._initialNumberOfElementsSubject$.next(value.numberOfElements);
|
|
2300
|
+
this._widgetData$.next(value.content);
|
|
2301
|
+
this.paginationModel.set(value.totalPages < 2
|
|
2302
|
+
? null
|
|
2303
|
+
: {
|
|
2304
|
+
currentPage: 1,
|
|
2305
|
+
totalDataLength: Math.ceil(value.totalElements / value.size),
|
|
2306
|
+
pageLength: value.size,
|
|
2307
|
+
});
|
|
2308
|
+
this.cdr.detectChanges();
|
|
2309
|
+
}
|
|
2310
|
+
constructor(dossierWidgetsApiService, cdr) {
|
|
2311
|
+
this.dossierWidgetsApiService = dossierWidgetsApiService;
|
|
2312
|
+
this.cdr = cdr;
|
|
2313
|
+
this._initialNumberOfElementsSubject$ = new BehaviorSubject(null);
|
|
2314
|
+
this.showPagination$ = new BehaviorSubject(false);
|
|
2315
|
+
this._widgetData$ = new BehaviorSubject(null);
|
|
2316
|
+
this.fields$ = new BehaviorSubject([]);
|
|
2317
|
+
this._queryParams$ = new BehaviorSubject(null);
|
|
2318
|
+
this.paginationModel = signal(new PaginationModel());
|
|
2319
|
+
this.widgetData$ = combineLatest([
|
|
2320
|
+
this._widgetData$,
|
|
2321
|
+
this._queryParams$,
|
|
2322
|
+
this._initialNumberOfElements$,
|
|
2323
|
+
]).pipe(switchMap(([data, queryParams, initialNumberOfElements]) => combineLatest([
|
|
2324
|
+
!queryParams
|
|
2325
|
+
? of(data)
|
|
2326
|
+
: this.dossierWidgetsApiService
|
|
2327
|
+
.getWidgetData(this.documentId, this.tabKey, this.widgetConfiguration.key, queryParams)
|
|
2328
|
+
.pipe(map((res) => res.content)),
|
|
2329
|
+
of(initialNumberOfElements),
|
|
2330
|
+
])), filter(([items]) => !!items), map(([items, initialNumberOfElements]) => {
|
|
2331
|
+
if (items.length === initialNumberOfElements) {
|
|
2332
|
+
return items;
|
|
2333
|
+
}
|
|
2334
|
+
const rows = new Array(initialNumberOfElements).fill(null);
|
|
2335
|
+
return rows.map((_, index) => items[index] || {});
|
|
2336
|
+
}));
|
|
2337
|
+
}
|
|
2338
|
+
onSelectPage(page) {
|
|
2339
|
+
this._queryParams$.next(`page=${page - 1}&size=${this.paginationModel().pageLength}`);
|
|
2340
|
+
this.paginationModel.update((model) => ({
|
|
2341
|
+
...model,
|
|
2342
|
+
currentPage: page,
|
|
2343
|
+
}));
|
|
2344
|
+
}
|
|
2345
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTableComponent, deps: [{ token: DossierWidgetsApiService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2346
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetTableComponent, isStandalone: true, selector: "valtimo-widget-table", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-tile\n *ngIf=\"{\n fields: fields$ | async,\n widgetData: widgetData$ | async\n } as obs\"\n class=\"valtimo-widget-table\"\n>\n <span class=\"widget-title\">{{ widgetConfiguration?.title }}</span>\n\n @if (obs.widgetData && obs.fields && obs.widgetData.length) {\n <section class=\"valtimo-widget-table__content\">\n <valtimo-carbon-list\n [header]=\"false\"\n [hideToolbar]=\"true\"\n [fields]=\"obs.fields\"\n [items]=\"obs.widgetData\"\n >\n </valtimo-carbon-list>\n\n <cds-pagination-nav\n *ngIf=\"paginationModel()\"\n class=\"valtimo-widget-table__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n </section>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n</cds-tile>\n", styles: [".valtimo-widget-table{padding:24px;display:flex;flex-direction:column;gap:16px}.valtimo-widget-table__content{display:flex;align-items:center;flex-direction:column}.valtimo-widget-table__content valtimo-carbon-list{width:100%}.valtimo-widget-table__pagination{padding:8px 0}.valtimo-widget-table .cds--data-table>thead{background:transparent!important}.valtimo-widget-table .cds--data-table td,.valtimo-widget-table .cds--data-table tr,.valtimo-widget-table .cds--data-table th{display:flex;width:100%}.valtimo-widget-table .cds--data-table td{white-space:nowrap;overflow:hidden}.valtimo-widget-table .cds--data-table td span{text-overflow:ellipsis;overflow:hidden}.valtimo-widget-table .cds--data-table tr{gap:16px}.valtimo-widget-table .cds--table-header-label>span{font-weight:400;font-size:12px;color:var(--cds-text-secondary)}.valtimo-widget-table--transparent{background:transparent!important}.valtimo-widget-table--title{border:none!important;font-style:italic}.valtimo-widget-table .widget-title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i4.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i4.Tile, selector: "cds-tile, ibm-tile", inputs: ["theme"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2347
|
+
}
|
|
2348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTableComponent, decorators: [{
|
|
2349
|
+
type: Component,
|
|
2350
|
+
args: [{ selector: 'valtimo-widget-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, CarbonListModule, PaginationModule, TilesModule, TranslateModule], template: "<!--\n ~ Copyright 2015-2024 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<cds-tile\n *ngIf=\"{\n fields: fields$ | async,\n widgetData: widgetData$ | async\n } as obs\"\n class=\"valtimo-widget-table\"\n>\n <span class=\"widget-title\">{{ widgetConfiguration?.title }}</span>\n\n @if (obs.widgetData && obs.fields && obs.widgetData.length) {\n <section class=\"valtimo-widget-table__content\">\n <valtimo-carbon-list\n [header]=\"false\"\n [hideToolbar]=\"true\"\n [fields]=\"obs.fields\"\n [items]=\"obs.widgetData\"\n >\n </valtimo-carbon-list>\n\n <cds-pagination-nav\n *ngIf=\"paginationModel()\"\n class=\"valtimo-widget-table__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n </section>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n</cds-tile>\n", styles: [".valtimo-widget-table{padding:24px;display:flex;flex-direction:column;gap:16px}.valtimo-widget-table__content{display:flex;align-items:center;flex-direction:column}.valtimo-widget-table__content valtimo-carbon-list{width:100%}.valtimo-widget-table__pagination{padding:8px 0}.valtimo-widget-table .cds--data-table>thead{background:transparent!important}.valtimo-widget-table .cds--data-table td,.valtimo-widget-table .cds--data-table tr,.valtimo-widget-table .cds--data-table th{display:flex;width:100%}.valtimo-widget-table .cds--data-table td{white-space:nowrap;overflow:hidden}.valtimo-widget-table .cds--data-table td span{text-overflow:ellipsis;overflow:hidden}.valtimo-widget-table .cds--data-table tr{gap:16px}.valtimo-widget-table .cds--table-header-label>span{font-weight:400;font-size:12px;color:var(--cds-text-secondary)}.valtimo-widget-table--transparent{background:transparent!important}.valtimo-widget-table--title{border:none!important;font-style:italic}.valtimo-widget-table .widget-title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}\n"] }]
|
|
2351
|
+
}], ctorParameters: () => [{ type: DossierWidgetsApiService }, { type: i0.ChangeDetectorRef }], propDecorators: { documentId: [{
|
|
2352
|
+
type: Input,
|
|
2353
|
+
args: [{ required: true }]
|
|
2354
|
+
}], tabKey: [{
|
|
2355
|
+
type: Input,
|
|
2356
|
+
args: [{ required: true }]
|
|
2357
|
+
}], widgetConfiguration: [{
|
|
2358
|
+
type: Input,
|
|
2359
|
+
args: [{ required: true }]
|
|
2360
|
+
}], widgetData: [{
|
|
2361
|
+
type: Input,
|
|
2362
|
+
args: [{ required: true }]
|
|
2363
|
+
}] } });
|
|
2364
|
+
|
|
2365
|
+
/*
|
|
2366
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2367
|
+
*
|
|
2368
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2369
|
+
* you may not use this file except in compliance with the License.
|
|
2370
|
+
* You may obtain a copy of the License at
|
|
2371
|
+
*
|
|
2372
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2373
|
+
*
|
|
2374
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2375
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2376
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2377
|
+
* See the License for the specific language governing permissions and
|
|
2378
|
+
* limitations under the License.
|
|
2379
|
+
*/
|
|
2380
|
+
class WidgetCollectionComponent {
|
|
2381
|
+
set widgetConfiguration(value) {
|
|
2382
|
+
if (!value)
|
|
2383
|
+
return;
|
|
2384
|
+
this.widgetConfiguration$.next(value);
|
|
2385
|
+
}
|
|
2386
|
+
get _initialNumberOfElements$() {
|
|
2387
|
+
return this._initialNumberOfElementsSubject$.pipe(filter(numberOfElements => numberOfElements !== null));
|
|
2388
|
+
}
|
|
2389
|
+
set widgetData(value) {
|
|
2390
|
+
if (!value)
|
|
2391
|
+
return;
|
|
2392
|
+
this.showPagination$.next(value.totalElements > value.size);
|
|
2393
|
+
this._initialNumberOfElementsSubject$.next(value.numberOfElements);
|
|
2394
|
+
this._widgetDataSubject$.next(value.content);
|
|
2395
|
+
this.paginationModel.set(value.totalPages < 0
|
|
2396
|
+
? null
|
|
2397
|
+
: {
|
|
2398
|
+
currentPage: 1,
|
|
2399
|
+
totalDataLength: Math.ceil(value.totalElements / value.size),
|
|
2400
|
+
pageLength: value.size,
|
|
2401
|
+
});
|
|
2402
|
+
this.cdr.detectChanges();
|
|
2403
|
+
}
|
|
2404
|
+
constructor(viewContentService, cdr, widgetApiService) {
|
|
2405
|
+
this.viewContentService = viewContentService;
|
|
2406
|
+
this.cdr = cdr;
|
|
2407
|
+
this.widgetApiService = widgetApiService;
|
|
2408
|
+
this.class = 'valtimo-widget-collection';
|
|
2409
|
+
this.showPagination$ = new BehaviorSubject(false);
|
|
2410
|
+
this._initialNumberOfElementsSubject$ = new BehaviorSubject(null);
|
|
2411
|
+
this.widgetTitle = signal('-');
|
|
2412
|
+
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
2413
|
+
this.paginationModel = signal(new PaginationModel());
|
|
2414
|
+
this.amountOfColumns = signal(0);
|
|
2415
|
+
this._widgetDataSubject$ = new BehaviorSubject(null);
|
|
2416
|
+
this._queryParams$ = new BehaviorSubject(null);
|
|
2417
|
+
this._widgetData$ = combineLatest([
|
|
2418
|
+
this._widgetDataSubject$,
|
|
2419
|
+
this._queryParams$,
|
|
2420
|
+
this._initialNumberOfElements$,
|
|
2421
|
+
this.widgetConfiguration$,
|
|
2422
|
+
]).pipe(switchMap(([data, queryParams, initialNumberOfElements, widgetConfiguration]) => combineLatest([
|
|
2423
|
+
!queryParams
|
|
2424
|
+
? of(data)
|
|
2425
|
+
: this.widgetApiService
|
|
2426
|
+
.getWidgetData(this.documentId, this.tabKey, widgetConfiguration.key, queryParams)
|
|
2427
|
+
.pipe(map((res) => res.content)),
|
|
2428
|
+
of(initialNumberOfElements),
|
|
2429
|
+
])), filter(([items]) => !!items), map(([items, initialNumberOfElements]) => {
|
|
2430
|
+
if (items.length === initialNumberOfElements) {
|
|
2431
|
+
return items;
|
|
2432
|
+
}
|
|
2433
|
+
const rows = new Array(initialNumberOfElements).fill(null);
|
|
2434
|
+
return rows.map((_, index) => items[index] || { ...items[0], hidden: true });
|
|
2435
|
+
}));
|
|
2436
|
+
this.collectionWidgetCards$ = combineLatest([this.widgetConfiguration$, this._widgetData$]).pipe(filter(([widgetConfig, widgetData]) => !!widgetConfig && !!widgetData), tap(([widgetConfig]) => this.widgetTitle.set(widgetConfig.title)), map(([widgetConfig, widgetData]) => widgetData.map((cardData, index) => ({
|
|
2437
|
+
hidden: cardData.hidden,
|
|
2438
|
+
key: index,
|
|
2439
|
+
title: this.getCardTitle({
|
|
2440
|
+
value: cardData.title,
|
|
2441
|
+
displayProperties: widgetConfig?.properties?.title?.displayProperties,
|
|
2442
|
+
}),
|
|
2443
|
+
fields: widgetConfig?.properties.fields.reduce((cardFieldsAccumulator, currentField) => [
|
|
2444
|
+
...cardFieldsAccumulator,
|
|
2445
|
+
this.getCardField(currentField, cardData),
|
|
2446
|
+
], []),
|
|
2447
|
+
}))));
|
|
2448
|
+
}
|
|
2449
|
+
ngAfterViewInit() {
|
|
2450
|
+
this.openWidthObserver();
|
|
2451
|
+
}
|
|
2452
|
+
ngOnDestroy() {
|
|
2453
|
+
this._observer?.disconnect();
|
|
2454
|
+
}
|
|
2455
|
+
onSelectPage(page) {
|
|
2456
|
+
this._queryParams$.next(`page=${page - 1}&size=${this.paginationModel().pageLength}`);
|
|
2457
|
+
this.paginationModel.update((model) => ({
|
|
2458
|
+
...model,
|
|
2459
|
+
currentPage: page,
|
|
2460
|
+
}));
|
|
2461
|
+
}
|
|
2462
|
+
getCardField(field, data) {
|
|
2463
|
+
const resolvedValue = this.viewContentService.get(data.fields[field.key], {
|
|
2464
|
+
...field.displayProperties,
|
|
2465
|
+
viewType: field.displayProperties?.type ?? CaseWidgetDisplayTypeKey.TEXT,
|
|
2466
|
+
});
|
|
2467
|
+
return {
|
|
2468
|
+
key: field.key,
|
|
2469
|
+
title: field.title,
|
|
2470
|
+
width: field.width,
|
|
2471
|
+
value: resolvedValue || data.fields[field.key],
|
|
2472
|
+
};
|
|
2473
|
+
}
|
|
2474
|
+
openWidthObserver() {
|
|
2475
|
+
this._observer = new ResizeObserver(event => {
|
|
2476
|
+
this.observerMutation(event);
|
|
2477
|
+
});
|
|
2478
|
+
this._observer.observe(this._widgetCollectionRef.nativeElement);
|
|
2479
|
+
}
|
|
2480
|
+
observerMutation(event) {
|
|
2481
|
+
const elementWidth = event[0]?.borderBoxSize[0]?.inlineSize;
|
|
2482
|
+
if (typeof elementWidth === 'number' && elementWidth !== 0) {
|
|
2483
|
+
if (elementWidth < 640) {
|
|
2484
|
+
this.amountOfColumns.set(1);
|
|
2485
|
+
}
|
|
2486
|
+
else if (elementWidth > 640 && elementWidth <= 768) {
|
|
2487
|
+
this.amountOfColumns.set(2);
|
|
2488
|
+
}
|
|
2489
|
+
else if (elementWidth > 768 && elementWidth <= 1080) {
|
|
2490
|
+
this.amountOfColumns.set(3);
|
|
2491
|
+
}
|
|
2492
|
+
else if (elementWidth > 1080) {
|
|
2493
|
+
this.amountOfColumns.set(4);
|
|
2494
|
+
}
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
getCardTitle(collectionCaseWidgetTitle) {
|
|
2498
|
+
const widgetTitleValue = collectionCaseWidgetTitle.value;
|
|
2499
|
+
const widgetTitleDisplayProperties = collectionCaseWidgetTitle.displayProperties;
|
|
2500
|
+
if (!widgetTitleDisplayProperties && widgetTitleValue) {
|
|
2501
|
+
return widgetTitleValue;
|
|
2502
|
+
}
|
|
2503
|
+
else if (widgetTitleDisplayProperties && widgetTitleValue) {
|
|
2504
|
+
const convertedTitle = this.viewContentService.get(widgetTitleValue, {
|
|
2505
|
+
...widgetTitleDisplayProperties,
|
|
2506
|
+
viewType: widgetTitleDisplayProperties.type,
|
|
2507
|
+
});
|
|
2508
|
+
if (convertedTitle)
|
|
2509
|
+
return convertedTitle;
|
|
2510
|
+
}
|
|
2511
|
+
return '-';
|
|
2512
|
+
}
|
|
2513
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetCollectionComponent, deps: [{ token: i2$2.ViewContentService }, { token: i0.ChangeDetectorRef }, { token: DossierWidgetsApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2514
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetCollectionComponent, isStandalone: true, selector: "valtimo-widget-collection", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetCollectionRef", first: true, predicate: ["widgetCollection"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async\n } as obs\"\n>\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half'\n }\"\n >\n <cds-label>\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{display:grid;grid-gap:16px}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i4.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2515
|
+
}
|
|
2516
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetCollectionComponent, decorators: [{
|
|
2517
|
+
type: Component,
|
|
2518
|
+
args: [{ selector: 'valtimo-widget-collection', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
2519
|
+
CommonModule,
|
|
2520
|
+
InputModule,
|
|
2521
|
+
PaginationModule,
|
|
2522
|
+
TilesModule,
|
|
2523
|
+
CarbonListModule,
|
|
2524
|
+
TranslateModule,
|
|
2525
|
+
], template: "<!--\n ~ Copyright 2015-2024 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 widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async\n } as obs\"\n>\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half'\n }\"\n >\n <cds-label>\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{display:grid;grid-gap:16px}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2526
|
+
}], ctorParameters: () => [{ type: i2$2.ViewContentService }, { type: i0.ChangeDetectorRef }, { type: DossierWidgetsApiService }], propDecorators: { class: [{
|
|
2527
|
+
type: HostBinding,
|
|
2528
|
+
args: ['class']
|
|
2529
|
+
}], _widgetCollectionRef: [{
|
|
2530
|
+
type: ViewChild,
|
|
2531
|
+
args: ['widgetCollection']
|
|
2532
|
+
}], documentId: [{
|
|
2533
|
+
type: Input,
|
|
2534
|
+
args: [{ required: true }]
|
|
2535
|
+
}], tabKey: [{
|
|
2536
|
+
type: Input,
|
|
2537
|
+
args: [{ required: true }]
|
|
2538
|
+
}], widgetConfiguration: [{
|
|
2539
|
+
type: Input
|
|
2540
|
+
}], widgetData: [{
|
|
2541
|
+
type: Input
|
|
2542
|
+
}] } });
|
|
2543
|
+
|
|
2544
|
+
/*
|
|
2545
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2546
|
+
*
|
|
2547
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2548
|
+
* you may not use this file except in compliance with the License.
|
|
2549
|
+
* You may obtain a copy of the License at
|
|
2550
|
+
*
|
|
2551
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2552
|
+
*
|
|
2553
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2554
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2555
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2556
|
+
* See the License for the specific language governing permissions and
|
|
2557
|
+
* limitations under the License.
|
|
2558
|
+
*/
|
|
2559
|
+
class WidgetBlockComponent {
|
|
2560
|
+
set widget(value) {
|
|
2561
|
+
this._widgetUuid = value.uuid;
|
|
2562
|
+
this._widget$.next(value);
|
|
2563
|
+
}
|
|
2564
|
+
get widget$() {
|
|
2565
|
+
return this._widget$.pipe(filter(widget => widget !== null));
|
|
2566
|
+
}
|
|
2567
|
+
get _viewContainerRef$() {
|
|
2568
|
+
return this._viewContainerRefSubject$.pipe(filter(ref => !!ref));
|
|
2569
|
+
}
|
|
2570
|
+
constructor(dossierWidgetsLayoutService, dossierTabService, route, widgetsApiService, cdsThemeService, renderer, viewRef) {
|
|
2571
|
+
this.dossierWidgetsLayoutService = dossierWidgetsLayoutService;
|
|
2572
|
+
this.dossierTabService = dossierTabService;
|
|
2573
|
+
this.route = route;
|
|
2574
|
+
this.widgetsApiService = widgetsApiService;
|
|
2575
|
+
this.cdsThemeService = cdsThemeService;
|
|
2576
|
+
this.renderer = renderer;
|
|
2577
|
+
this.viewRef = viewRef;
|
|
2578
|
+
this._widget$ = new BehaviorSubject(null);
|
|
2579
|
+
this._viewContainerRefSubject$ = new BehaviorSubject(null);
|
|
2580
|
+
this._contentHeight$ = new BehaviorSubject(0);
|
|
2581
|
+
this.blockHeightPx$ = combineLatest([
|
|
2582
|
+
this._contentHeight$,
|
|
2583
|
+
this._viewContainerRef$,
|
|
2584
|
+
]).pipe(filter(([contentHeight]) => contentHeight !== 0), tap(([contentHeight, viewRef]) => {
|
|
2585
|
+
const blockHeight = Math.ceil((contentHeight + 16) / WIDGET_HEIGHT_1X) * WIDGET_HEIGHT_1X;
|
|
2586
|
+
this.renderer.setStyle(viewRef.element.nativeElement, 'height', `${blockHeight}px`);
|
|
2587
|
+
this.dossierWidgetsLayoutService.triggerMuuriLayout();
|
|
2588
|
+
}));
|
|
2589
|
+
this.blockWidthPercentage$ = combineLatest([
|
|
2590
|
+
this.dossierWidgetsLayoutService.amountOfColumns$,
|
|
2591
|
+
this.widget$,
|
|
2592
|
+
this._viewContainerRef$,
|
|
2593
|
+
]).pipe(tap(([amountOfColumns, widget, viewRef]) => {
|
|
2594
|
+
const percentage = widget.width > amountOfColumns ? 100 : (widget.width / amountOfColumns) * 100;
|
|
2595
|
+
this.renderer.setStyle(viewRef.element.nativeElement, 'width', `${percentage}%`);
|
|
2596
|
+
this.dossierWidgetsLayoutService.triggerMuuriLayout();
|
|
2597
|
+
}));
|
|
2598
|
+
this.CaseWidgetType = CaseWidgetType;
|
|
2599
|
+
this.documentId$ = this.route.params.pipe(map(params => params?.documentId), filter(documentId => !!documentId));
|
|
2600
|
+
this.tabKey$ = this.dossierTabService.activeTabKey$;
|
|
2601
|
+
this.widgetData$ = combineLatest([
|
|
2602
|
+
this.widget$,
|
|
2603
|
+
this.tabKey$,
|
|
2604
|
+
this.documentId$,
|
|
2605
|
+
]).pipe(switchMap(([widget, tabkey, documentId]) =>
|
|
2606
|
+
// custom component and formio widgets do not fetch additional data
|
|
2607
|
+
widget.type === CaseWidgetType.CUSTOM || widget.type === CaseWidgetType.FORMIO
|
|
2608
|
+
? of({})
|
|
2609
|
+
: this.widgetsApiService.getWidgetData(documentId, tabkey, widget.key, widget.type === CaseWidgetType.TABLE || widget.type === CaseWidgetType.COLLECTION
|
|
2610
|
+
? this.getPageSizeParam(widget)
|
|
2611
|
+
: undefined)), tap(() => {
|
|
2612
|
+
this.dossierWidgetsLayoutService.setCaseWidgetDataLoaded(this._widgetUuid);
|
|
2613
|
+
}), catchError$1((error) => {
|
|
2614
|
+
if (error.status === 404)
|
|
2615
|
+
this.dossierWidgetsLayoutService.setCaseWidgetDataLoaded(this._widgetUuid);
|
|
2616
|
+
return of(null);
|
|
2617
|
+
}));
|
|
2618
|
+
this.theme$ = combineLatest([this.cdsThemeService.currentTheme$, this.widget$]).pipe(map(([currentTheme, widgetConfiguration]) => {
|
|
2619
|
+
return currentTheme === CurrentCarbonTheme.G10
|
|
2620
|
+
? widgetConfiguration.highContrast
|
|
2621
|
+
? CARBON_THEME.G100
|
|
2622
|
+
: CARBON_THEME.G10
|
|
2623
|
+
: widgetConfiguration.highContrast
|
|
2624
|
+
? CARBON_THEME.WHITE
|
|
2625
|
+
: CARBON_THEME.G90;
|
|
2626
|
+
}));
|
|
2627
|
+
this._subscriptions = new Subscription();
|
|
2628
|
+
}
|
|
2629
|
+
ngAfterViewInit() {
|
|
2630
|
+
this._viewContainerRefSubject$.next(this.viewRef);
|
|
2631
|
+
this.openContentHeightObserver();
|
|
2632
|
+
}
|
|
2633
|
+
ngOnDestroy() {
|
|
2634
|
+
this._subscriptions.unsubscribe();
|
|
2635
|
+
this._observer?.disconnect();
|
|
2636
|
+
}
|
|
2637
|
+
openContentHeightObserver() {
|
|
2638
|
+
this._observer = new ResizeObserver(event => {
|
|
2639
|
+
this.observerMutation(event);
|
|
2640
|
+
});
|
|
2641
|
+
this._observer.observe(this._widgetBlockContentRef.nativeElement);
|
|
2642
|
+
}
|
|
2643
|
+
observerMutation(event) {
|
|
2644
|
+
const widgetContentHeight = event[0]?.borderBoxSize[0]?.blockSize;
|
|
2645
|
+
if (typeof widgetContentHeight === 'number' && widgetContentHeight !== 0) {
|
|
2646
|
+
this._contentHeight$.next(widgetContentHeight);
|
|
2647
|
+
}
|
|
2648
|
+
}
|
|
2649
|
+
getPageSizeParam(widgetConfiguration) {
|
|
2650
|
+
return `size=${widgetConfiguration.properties.defaultPageSize}`;
|
|
2651
|
+
}
|
|
2652
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetBlockComponent, deps: [{ token: DossierWidgetsLayoutService }, { token: DossierTabService }, { token: i1$1.ActivatedRoute }, { token: DossierWidgetsApiService }, { token: i2$2.CdsThemeService }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetBlockComponent, isStandalone: true, selector: "valtimo-dossier-widget-block", inputs: { widget: "widget" }, viewQueries: [{ propertyName: "_widgetBlockContentRef", first: true, predicate: ["widgetBlockContent"], descendants: true }, { propertyName: "_widgetBlockRef", first: true, predicate: ["widgetBlock"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 documentId: documentId$ | async,\n tabKey: tabKey$ | async,\n widgetConfiguration: widget$ | async,\n widgetData: widgetData$ | async,\n theme: theme$ | async,\n blockHeightPx: blockHeightPx$ | async,\n blockWidthPercentage: blockWidthPercentage$ | async\n } as obs\"\n>\n <div #widgetBlock class=\"widget-block\" [attr.data-carbon-theme]=\"obs.theme\">\n <div #widgetBlockContent class=\"widget-block__content\">\n @if (obs.widgetData) {\n @switch (obs.widgetConfiguration.type) {\n @case (CaseWidgetType.TABLE) {\n <valtimo-widget-table\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-table>\n }\n\n @case (CaseWidgetType.COLLECTION) {\n <valtimo-widget-collection\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-collection>\n }\n\n @case (CaseWidgetType.CUSTOM) {\n <valtimo-widget-custom [widgetConfig]=\"obs.widgetConfiguration\"></valtimo-widget-custom>\n }\n\n @case (CaseWidgetType.FIELDS) {\n <valtimo-widget-field\n [collapseVertically]=\"true\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-field>\n }\n\n @case (CaseWidgetType.FORMIO) {\n <valtimo-widget-formio\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [documentId]=\"obs.documentId\"\n ></valtimo-widget-formio>\n }\n\n @default {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noWidget' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n }\n } @else {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;position:absolute}.widget-block{width:100%;height:100%;box-sizing:border-box;padding:8px;overflow-wrap:break-word;background-color:var(--cds-layer-01);background-clip:content-box}.widget-block__not-available{padding:16px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: WidgetTableComponent, selector: "valtimo-widget-table", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetCustomComponent, selector: "valtimo-widget-custom", inputs: ["widgetConfig"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: WidgetFieldComponent, selector: "valtimo-widget-field", inputs: ["collapseVertically", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetFormioComponent, selector: "valtimo-widget-formio", inputs: ["documentId", "widgetConfiguration"] }, { kind: "component", type: WidgetCollectionComponent, selector: "valtimo-widget-collection", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2654
|
+
}
|
|
2655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetBlockComponent, decorators: [{
|
|
2656
|
+
type: Component,
|
|
2657
|
+
args: [{ selector: 'valtimo-dossier-widget-block', standalone: true, imports: [
|
|
2658
|
+
CommonModule,
|
|
2659
|
+
LoadingModule,
|
|
2660
|
+
WidgetTableComponent,
|
|
2661
|
+
WidgetCustomComponent,
|
|
2662
|
+
CarbonListModule,
|
|
2663
|
+
TranslateModule,
|
|
2664
|
+
TilesModule,
|
|
2665
|
+
WidgetFieldComponent,
|
|
2666
|
+
WidgetFormioComponent,
|
|
2667
|
+
WidgetCollectionComponent,
|
|
2668
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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 documentId: documentId$ | async,\n tabKey: tabKey$ | async,\n widgetConfiguration: widget$ | async,\n widgetData: widgetData$ | async,\n theme: theme$ | async,\n blockHeightPx: blockHeightPx$ | async,\n blockWidthPercentage: blockWidthPercentage$ | async\n } as obs\"\n>\n <div #widgetBlock class=\"widget-block\" [attr.data-carbon-theme]=\"obs.theme\">\n <div #widgetBlockContent class=\"widget-block__content\">\n @if (obs.widgetData) {\n @switch (obs.widgetConfiguration.type) {\n @case (CaseWidgetType.TABLE) {\n <valtimo-widget-table\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-table>\n }\n\n @case (CaseWidgetType.COLLECTION) {\n <valtimo-widget-collection\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-collection>\n }\n\n @case (CaseWidgetType.CUSTOM) {\n <valtimo-widget-custom [widgetConfig]=\"obs.widgetConfiguration\"></valtimo-widget-custom>\n }\n\n @case (CaseWidgetType.FIELDS) {\n <valtimo-widget-field\n [collapseVertically]=\"true\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-field>\n }\n\n @case (CaseWidgetType.FORMIO) {\n <valtimo-widget-formio\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [documentId]=\"obs.documentId\"\n ></valtimo-widget-formio>\n }\n\n @default {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noWidget' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n }\n } @else {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;position:absolute}.widget-block{width:100%;height:100%;box-sizing:border-box;padding:8px;overflow-wrap:break-word;background-color:var(--cds-layer-01);background-clip:content-box}.widget-block__not-available{padding:16px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2669
|
+
}], ctorParameters: () => [{ type: DossierWidgetsLayoutService }, { type: DossierTabService }, { type: i1$1.ActivatedRoute }, { type: DossierWidgetsApiService }, { type: i2$2.CdsThemeService }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }], propDecorators: { _widgetBlockContentRef: [{
|
|
2670
|
+
type: ViewChild,
|
|
2671
|
+
args: ['widgetBlockContent']
|
|
2672
|
+
}], _widgetBlockRef: [{
|
|
2673
|
+
type: ViewChild,
|
|
2674
|
+
args: ['widgetBlock']
|
|
2675
|
+
}], widget: [{
|
|
2676
|
+
type: Input
|
|
2677
|
+
}] } });
|
|
1909
2678
|
|
|
1910
2679
|
/*
|
|
1911
2680
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -1922,6 +2691,55 @@ const CASE_WITHOUT_STATUS_STATUS = {
|
|
|
1922
2691
|
* See the License for the specific language governing permissions and
|
|
1923
2692
|
* limitations under the License.
|
|
1924
2693
|
*/
|
|
2694
|
+
class WidgetsContainerComponent {
|
|
2695
|
+
set widgets(value) {
|
|
2696
|
+
const widgetsWithUuids = value.map(widget => ({ ...widget, uuid: v4() }));
|
|
2697
|
+
this.dossierWidgetsLayoutService.setWidgets(widgetsWithUuids);
|
|
2698
|
+
this.widgetsWithUuids$.next(widgetsWithUuids);
|
|
2699
|
+
}
|
|
2700
|
+
constructor(dossierWidgetsLayoutService) {
|
|
2701
|
+
this.dossierWidgetsLayoutService = dossierWidgetsLayoutService;
|
|
2702
|
+
this.widgetsWithUuids$ = new BehaviorSubject([]);
|
|
2703
|
+
}
|
|
2704
|
+
ngAfterViewInit() {
|
|
2705
|
+
this._observer = new ResizeObserver(event => {
|
|
2706
|
+
this.observerMutation(event);
|
|
2707
|
+
});
|
|
2708
|
+
this._observer.observe(this._widgetsContainerRef.nativeElement);
|
|
2709
|
+
this.initMuuri();
|
|
2710
|
+
}
|
|
2711
|
+
ngOnDestroy() {
|
|
2712
|
+
this._observer?.disconnect();
|
|
2713
|
+
}
|
|
2714
|
+
observerMutation(event) {
|
|
2715
|
+
const containerWidth = event[0]?.borderBoxSize[0]?.inlineSize;
|
|
2716
|
+
if (typeof containerWidth === 'number' && containerWidth !== 0) {
|
|
2717
|
+
this.dossierWidgetsLayoutService.setContainerWidth(containerWidth);
|
|
2718
|
+
this.dossierWidgetsLayoutService.triggerMuuriLayout();
|
|
2719
|
+
}
|
|
2720
|
+
}
|
|
2721
|
+
initMuuri() {
|
|
2722
|
+
this.dossierWidgetsLayoutService.loaded$.pipe(take(1), delay(300)).subscribe(() => {
|
|
2723
|
+
this.dossierWidgetsLayoutService.setMuuri(new Muuri(this._widgetsContainerRef.nativeElement, {
|
|
2724
|
+
layout: {
|
|
2725
|
+
fillGaps: true,
|
|
2726
|
+
},
|
|
2727
|
+
layoutOnResize: false,
|
|
2728
|
+
}));
|
|
2729
|
+
});
|
|
2730
|
+
}
|
|
2731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetsContainerComponent, deps: [{ token: DossierWidgetsLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetsContainerComponent, isStandalone: true, selector: "valtimo-dossier-widgets-container", inputs: { widgets: "widgets" }, viewQueries: [{ propertyName: "_widgetsContainerRef", first: true, predicate: ["widgetsContainer"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 #widgetsContainer class=\"widgets-container\">\n @for (widget of widgetsWithUuids$ | async; track widget.uuid) {\n <valtimo-dossier-widget-block [widget]=\"widget\"></valtimo-dossier-widget-block>\n }\n</div>\n", styles: [".widgets-container{position:relative;width:calc(100% + 16px);margin-left:-8px;margin-top:-8px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "component", type: WidgetBlockComponent, selector: "valtimo-dossier-widget-block", inputs: ["widget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2733
|
+
}
|
|
2734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetsContainerComponent, decorators: [{
|
|
2735
|
+
type: Component,
|
|
2736
|
+
args: [{ selector: 'valtimo-dossier-widgets-container', standalone: true, imports: [CommonModule, WidgetBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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 #widgetsContainer class=\"widgets-container\">\n @for (widget of widgetsWithUuids$ | async; track widget.uuid) {\n <valtimo-dossier-widget-block [widget]=\"widget\"></valtimo-dossier-widget-block>\n }\n</div>\n", styles: [".widgets-container{position:relative;width:calc(100% + 16px);margin-left:-8px;margin-top:-8px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2737
|
+
}], ctorParameters: () => [{ type: DossierWidgetsLayoutService }], propDecorators: { _widgetsContainerRef: [{
|
|
2738
|
+
type: ViewChild,
|
|
2739
|
+
args: ['widgetsContainer']
|
|
2740
|
+
}], widgets: [{
|
|
2741
|
+
type: Input
|
|
2742
|
+
}] } });
|
|
1925
2743
|
|
|
1926
2744
|
/*
|
|
1927
2745
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -1938,40 +2756,50 @@ const CASE_WITHOUT_STATUS_STATUS = {
|
|
|
1938
2756
|
* See the License for the specific language governing permissions and
|
|
1939
2757
|
* limitations under the License.
|
|
1940
2758
|
*/
|
|
1941
|
-
class
|
|
1942
|
-
constructor(
|
|
1943
|
-
this.tabService = tabService;
|
|
2759
|
+
class DossierDetailWidgetsComponent {
|
|
2760
|
+
constructor(route, dossierTabService, widgetsApiService, dossierWidgetsLayoutService) {
|
|
1944
2761
|
this.route = route;
|
|
1945
|
-
this.
|
|
1946
|
-
this.
|
|
1947
|
-
this.
|
|
1948
|
-
this.
|
|
1949
|
-
this.
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
this.formNotFound$.next(this._formDefinitionName);
|
|
1964
|
-
this.loading$.next(false);
|
|
1965
|
-
return of(null);
|
|
1966
|
-
}));
|
|
2762
|
+
this.dossierTabService = dossierTabService;
|
|
2763
|
+
this.widgetsApiService = widgetsApiService;
|
|
2764
|
+
this.dossierWidgetsLayoutService = dossierWidgetsLayoutService;
|
|
2765
|
+
this._noMargin = true;
|
|
2766
|
+
this._noBackground = true;
|
|
2767
|
+
this._noMinHeight = true;
|
|
2768
|
+
this._documentId$ = this.route.params.pipe(map(params => params?.documentId), filter(documentId => !!documentId));
|
|
2769
|
+
this._tabKey$ = this.dossierTabService.activeTabKey$;
|
|
2770
|
+
this.loadingWidgetConfiguration$ = new BehaviorSubject(true);
|
|
2771
|
+
this.widgetConfiguration$ = combineLatest([this._documentId$, this._tabKey$]).pipe(switchMap(([documentId, tabKey]) => this.widgetsApiService.getWidgetTabConfiguration(documentId, tabKey)), tap(() => this.loadingWidgetConfiguration$.next(false)));
|
|
2772
|
+
this.loaded$ = this.dossierWidgetsLayoutService.loaded$.pipe(delay(400));
|
|
2773
|
+
}
|
|
2774
|
+
ngOnInit() {
|
|
2775
|
+
this.dossierTabService.disableTabHorizontalOverflow();
|
|
2776
|
+
}
|
|
2777
|
+
ngOnDestroy() {
|
|
2778
|
+
this.dossierWidgetsLayoutService.reset();
|
|
2779
|
+
this.dossierTabService.enableTabHorizontalOverflow();
|
|
1967
2780
|
}
|
|
1968
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type:
|
|
1969
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2781
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailWidgetsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DossierTabService }, { token: DossierWidgetsApiService }, { token: DossierWidgetsLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2782
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierDetailWidgetsComponent, isStandalone: true, selector: "ng-component", host: { properties: { "class.tab--no-margin": "this._noMargin", "class.tab--no-background": "this._noBackground", "class.tab--no-min-height": "this._noMinHeight" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 loadingWidgetConfiguration: loadingWidgetConfiguration$ | async,\n widgetConfiguration: widgetConfiguration$ | async,\n loaded: loaded$ | async\n } as obs\"\n>\n <ng-container\n *ngIf=\"{\n noWidgetsConfigured:\n obs.widgetConfiguration?.widgets && obs.widgetConfiguration.widgets.length === 0\n } as vars\"\n >\n @if (!obs.loaded && !vars.noWidgetsConfigured) {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n\n @if (vars.noWidgetsConfigured) {\n <valtimo-no-results\n [title]=\"'dossier.widgets.noWidgets' | translate\"\n [description]=\"'dossier.widgets.noWidgetsDescription' | translate\"\n illustration=\"valtimo-layout/img/no-widgets.svg\"\n ></valtimo-no-results>\n }\n\n <div [style.visibility]=\"!obs.loaded ? 'hidden' : 'visible'\">\n <valtimo-dossier-widgets-container\n [widgets]=\"obs.widgetConfiguration?.widgets || []\"\n ></valtimo-dossier-widgets-container>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".loading-container{display:flex;justify-content:center;padding:16px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: WidgetsContainerComponent, selector: "valtimo-dossier-widgets-container", inputs: ["widgets"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1970
2783
|
}
|
|
1971
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type:
|
|
2784
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailWidgetsComponent, decorators: [{
|
|
1972
2785
|
type: Component,
|
|
1973
|
-
args: [{
|
|
1974
|
-
|
|
2786
|
+
args: [{ standalone: true, imports: [
|
|
2787
|
+
CommonModule,
|
|
2788
|
+
LoadingModule,
|
|
2789
|
+
WidgetsContainerComponent,
|
|
2790
|
+
CarbonListModule,
|
|
2791
|
+
TranslateModule,
|
|
2792
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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 loadingWidgetConfiguration: loadingWidgetConfiguration$ | async,\n widgetConfiguration: widgetConfiguration$ | async,\n loaded: loaded$ | async\n } as obs\"\n>\n <ng-container\n *ngIf=\"{\n noWidgetsConfigured:\n obs.widgetConfiguration?.widgets && obs.widgetConfiguration.widgets.length === 0\n } as vars\"\n >\n @if (!obs.loaded && !vars.noWidgetsConfigured) {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n\n @if (vars.noWidgetsConfigured) {\n <valtimo-no-results\n [title]=\"'dossier.widgets.noWidgets' | translate\"\n [description]=\"'dossier.widgets.noWidgetsDescription' | translate\"\n illustration=\"valtimo-layout/img/no-widgets.svg\"\n ></valtimo-no-results>\n }\n\n <div [style.visibility]=\"!obs.loaded ? 'hidden' : 'visible'\">\n <valtimo-dossier-widgets-container\n [widgets]=\"obs.widgetConfiguration?.widgets || []\"\n ></valtimo-dossier-widgets-container>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".loading-container{display:flex;justify-content:center;padding:16px 0}\n"] }]
|
|
2793
|
+
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DossierTabService }, { type: DossierWidgetsApiService }, { type: DossierWidgetsLayoutService }], propDecorators: { _noMargin: [{
|
|
2794
|
+
type: HostBinding,
|
|
2795
|
+
args: ['class.tab--no-margin']
|
|
2796
|
+
}], _noBackground: [{
|
|
2797
|
+
type: HostBinding,
|
|
2798
|
+
args: ['class.tab--no-background']
|
|
2799
|
+
}], _noMinHeight: [{
|
|
2800
|
+
type: HostBinding,
|
|
2801
|
+
args: ['class.tab--no-min-height']
|
|
2802
|
+
}] } });
|
|
1975
2803
|
|
|
1976
2804
|
/*
|
|
1977
2805
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -1988,16 +2816,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
1988
2816
|
* See the License for the specific language governing permissions and
|
|
1989
2817
|
* limitations under the License.
|
|
1990
2818
|
*/
|
|
1991
|
-
class DossierTabApiService {
|
|
1992
|
-
constructor(
|
|
2819
|
+
class DossierTabApiService extends BaseApiService {
|
|
2820
|
+
constructor(httpClient, configService) {
|
|
2821
|
+
super(httpClient, configService);
|
|
2822
|
+
this.httpClient = httpClient;
|
|
1993
2823
|
this.configService = configService;
|
|
1994
|
-
this.http = http;
|
|
1995
|
-
this.VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;
|
|
1996
2824
|
}
|
|
1997
|
-
getDossierTabs(documentDefinitionName) {
|
|
1998
|
-
return this.
|
|
2825
|
+
getDossierTabs(documentDefinitionName, documentId) {
|
|
2826
|
+
return this.configService
|
|
2827
|
+
.getFeatureToggleObservable('enableCaseWidgets')
|
|
2828
|
+
.pipe(switchMap(enableCaseWidgets => enableCaseWidgets
|
|
2829
|
+
? this.httpClient.get(this.getApiUrl(`v1/document/${documentId}/tab`))
|
|
2830
|
+
: this.httpClient.get(this.getApiUrl(`v1/case-definition/${documentDefinitionName}/tab`))));
|
|
1999
2831
|
}
|
|
2000
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierTabApiService, deps: [{ token:
|
|
2832
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierTabApiService, deps: [{ token: i2.HttpClient }, { token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2001
2833
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierTabApiService, providedIn: 'root' }); }
|
|
2002
2834
|
}
|
|
2003
2835
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierTabApiService, decorators: [{
|
|
@@ -2005,7 +2837,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
2005
2837
|
args: [{
|
|
2006
2838
|
providedIn: 'root',
|
|
2007
2839
|
}]
|
|
2008
|
-
}], ctorParameters: () => [{ type:
|
|
2840
|
+
}], ctorParameters: () => [{ type: i2.HttpClient }, { type: i1.ConfigService }] });
|
|
2009
2841
|
|
|
2010
2842
|
/*
|
|
2011
2843
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -2023,9 +2855,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
2023
2855
|
* limitations under the License.
|
|
2024
2856
|
*/
|
|
2025
2857
|
class DossierTabService {
|
|
2858
|
+
get tabHorizontalOverflowDisabled() {
|
|
2859
|
+
return this._tabHorizontalOverflowDisabled.asReadonly();
|
|
2860
|
+
}
|
|
2026
2861
|
get tabs$() {
|
|
2027
2862
|
return this._tabs$.pipe(filter(tabs => !!tabs));
|
|
2028
2863
|
}
|
|
2864
|
+
get activeTab$() {
|
|
2865
|
+
return this._tabLoader$.pipe(filter(tabLoader => !!tabLoader), switchMap(tabLoader => tabLoader.activeTab$));
|
|
2866
|
+
}
|
|
2867
|
+
get activeTabKey$() {
|
|
2868
|
+
return this.activeTab$.pipe(map(tab => tab.name));
|
|
2869
|
+
}
|
|
2870
|
+
get showTaskList$() {
|
|
2871
|
+
return this._tabLoader$.pipe(filter(tabLoader => !!tabLoader), switchMap(tabLoader => tabLoader.activeTab$), map(activeTab => !!activeTab?.showTasks || activeTab.contentKey === DefaultTabs.summary));
|
|
2872
|
+
}
|
|
2029
2873
|
constructor(tabMap = DEFAULT_TABS, caseTabConfig, zgwObjectTypeComponent, configService, route, dossierTabApiService) {
|
|
2030
2874
|
this.tabMap = tabMap;
|
|
2031
2875
|
this.caseTabConfig = caseTabConfig;
|
|
@@ -2034,8 +2878,11 @@ class DossierTabService {
|
|
|
2034
2878
|
this.route = route;
|
|
2035
2879
|
this.dossierTabApiService = dossierTabApiService;
|
|
2036
2880
|
this._documentDefinitionName$ = this.route.params.pipe(map(params => params?.documentDefinitionName), filter(documentDefinitionName => !!documentDefinitionName));
|
|
2881
|
+
this._documentId$ = this.route.params.pipe(map(params => params?.documentId), filter(documentId => !!documentId));
|
|
2037
2882
|
this._tabs$ = new BehaviorSubject(null);
|
|
2038
2883
|
this._subscriptions = new Subscription();
|
|
2884
|
+
this._tabLoader$ = new BehaviorSubject(null);
|
|
2885
|
+
this._tabHorizontalOverflowDisabled = signal(false);
|
|
2039
2886
|
this._tabManagementEnabled =
|
|
2040
2887
|
this.configService.config.featureToggles?.enableTabManagement ?? true;
|
|
2041
2888
|
this.openDocumentDefinitionNameSubscription();
|
|
@@ -2043,6 +2890,15 @@ class DossierTabService {
|
|
|
2043
2890
|
ngOnDestroy() {
|
|
2044
2891
|
this._subscriptions.unsubscribe();
|
|
2045
2892
|
}
|
|
2893
|
+
setTabLoader(tabLoader) {
|
|
2894
|
+
this._tabLoader$.next(tabLoader);
|
|
2895
|
+
}
|
|
2896
|
+
disableTabHorizontalOverflow() {
|
|
2897
|
+
this._tabHorizontalOverflowDisabled.set(true);
|
|
2898
|
+
}
|
|
2899
|
+
enableTabHorizontalOverflow() {
|
|
2900
|
+
this._tabHorizontalOverflowDisabled.set(false);
|
|
2901
|
+
}
|
|
2046
2902
|
getConfigurableTabs(documentDefinitionName) {
|
|
2047
2903
|
const tabMap = new Map();
|
|
2048
2904
|
if (this.configService?.config?.caseObjectTypes) {
|
|
@@ -2066,9 +2922,9 @@ class DossierTabService {
|
|
|
2066
2922
|
return tabs;
|
|
2067
2923
|
}
|
|
2068
2924
|
openDocumentDefinitionNameSubscription() {
|
|
2069
|
-
this._subscriptions.add(this._documentDefinitionName
|
|
2925
|
+
this._subscriptions.add(combineLatest([this._documentDefinitionName$, this._documentId$]).subscribe(([documentDefinitionName, documentId]) => {
|
|
2070
2926
|
if (this._tabManagementEnabled) {
|
|
2071
|
-
this.setApiTabs(documentDefinitionName);
|
|
2927
|
+
this.setApiTabs(documentDefinitionName, documentId);
|
|
2072
2928
|
}
|
|
2073
2929
|
else {
|
|
2074
2930
|
this.setEnvironmentTabs(documentDefinitionName);
|
|
@@ -2080,8 +2936,8 @@ class DossierTabService {
|
|
|
2080
2936
|
const allEnvironmentTabs = this.getAllEnvironmentTabs(configurableTabs);
|
|
2081
2937
|
this._tabs$.next(allEnvironmentTabs);
|
|
2082
2938
|
}
|
|
2083
|
-
setApiTabs(documentDefinitionName) {
|
|
2084
|
-
this.dossierTabApiService.getDossierTabs(documentDefinitionName).subscribe({
|
|
2939
|
+
setApiTabs(documentDefinitionName, documentId) {
|
|
2940
|
+
this.dossierTabApiService.getDossierTabs(documentDefinitionName, documentId).subscribe({
|
|
2085
2941
|
next: tabs => {
|
|
2086
2942
|
const supportedTabs = tabs.filter(tab => this.filterTab(tab));
|
|
2087
2943
|
const mappedTabs = supportedTabs.map((tab, index) => this.mapTab(tab, index));
|
|
@@ -2105,11 +2961,14 @@ class DossierTabService {
|
|
|
2105
2961
|
mapTab(tab, index) {
|
|
2106
2962
|
switch (tab.type) {
|
|
2107
2963
|
case ApiTabType.STANDARD:
|
|
2108
|
-
return new TabImpl(tab.key, index, DEFAULT_TAB_COMPONENTS[tab.contentKey], tab.contentKey, tab.name);
|
|
2964
|
+
return new TabImpl(tab.key, index, DEFAULT_TAB_COMPONENTS[tab.contentKey], tab.contentKey, tab.name, tab.showTasks);
|
|
2109
2965
|
case ApiTabType.FORMIO:
|
|
2110
|
-
return new TabImpl(tab.key, index, DossierDetailTabFormioComponent, tab.contentKey, tab.name);
|
|
2966
|
+
return new TabImpl(tab.key, index, DossierDetailTabFormioComponent, tab.contentKey, tab.name, tab.showTasks);
|
|
2111
2967
|
case ApiTabType.CUSTOM:
|
|
2112
|
-
return new TabImpl(tab.key, index, this.caseTabConfig[tab.contentKey], tab.contentKey, tab.name);
|
|
2968
|
+
return new TabImpl(tab.key, index, this.caseTabConfig[tab.contentKey], tab.contentKey, tab.name, tab.showTasks);
|
|
2969
|
+
case ApiTabType.WIDGETS:
|
|
2970
|
+
return (this.configService.featureToggles?.enableCaseWidgets &&
|
|
2971
|
+
new TabImpl(tab.key, index, DossierDetailWidgetsComponent, tab.contentKey, tab.name, tab.showTasks));
|
|
2113
2972
|
default:
|
|
2114
2973
|
return null;
|
|
2115
2974
|
}
|
|
@@ -2230,6 +3089,138 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
2230
3089
|
}]
|
|
2231
3090
|
}] });
|
|
2232
3091
|
|
|
3092
|
+
/*
|
|
3093
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3094
|
+
*
|
|
3095
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3096
|
+
* you may not use this file except in compliance with the License.
|
|
3097
|
+
* You may obtain a copy of the License at
|
|
3098
|
+
*
|
|
3099
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3100
|
+
*
|
|
3101
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3102
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3103
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3104
|
+
* See the License for the specific language governing permissions and
|
|
3105
|
+
* limitations under the License.
|
|
3106
|
+
*/
|
|
3107
|
+
class DossierWidgetsApiService extends BaseApiService {
|
|
3108
|
+
constructor(httpClient, configService) {
|
|
3109
|
+
super(httpClient, configService);
|
|
3110
|
+
this.httpClient = httpClient;
|
|
3111
|
+
this.configService = configService;
|
|
3112
|
+
}
|
|
3113
|
+
getWidgetTabConfiguration(documentId, tabKey) {
|
|
3114
|
+
return this.httpClient.get(this.getApiUrl(`v1/document/${documentId}/widget-tab/${tabKey}`));
|
|
3115
|
+
}
|
|
3116
|
+
getWidgetData(documentId, tabKey, widgetKey, queryParams) {
|
|
3117
|
+
return this.httpClient.get(this.getApiUrl(!queryParams
|
|
3118
|
+
? `v1/document/${documentId}/widget-tab/${tabKey}/widget/${widgetKey}`
|
|
3119
|
+
: `v1/document/${documentId}/widget-tab/${tabKey}/widget/${widgetKey}?${queryParams}`), { headers: new HttpHeaders().set(InterceptorSkip, '404') });
|
|
3120
|
+
}
|
|
3121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierWidgetsApiService, deps: [{ token: i2.HttpClient }, { token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3122
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierWidgetsApiService, providedIn: 'root' }); }
|
|
3123
|
+
}
|
|
3124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierWidgetsApiService, decorators: [{
|
|
3125
|
+
type: Injectable,
|
|
3126
|
+
args: [{
|
|
3127
|
+
providedIn: 'root',
|
|
3128
|
+
}]
|
|
3129
|
+
}], ctorParameters: () => [{ type: i2.HttpClient }, { type: i1.ConfigService }] });
|
|
3130
|
+
|
|
3131
|
+
class DossierWidgetsLayoutService {
|
|
3132
|
+
get _muuri$() {
|
|
3133
|
+
return this._muuriSubject$.pipe(filter(muuri => !!muuri));
|
|
3134
|
+
}
|
|
3135
|
+
get _containerWidth$() {
|
|
3136
|
+
return this._containerWidthSubject$.pipe(filter(width => width !== null));
|
|
3137
|
+
}
|
|
3138
|
+
get amountOfColumns$() {
|
|
3139
|
+
return this._containerWidth$.pipe(map(containerWidth => Math.floor(containerWidth / WIDGET_WIDTH_1X)));
|
|
3140
|
+
}
|
|
3141
|
+
get _widgets$() {
|
|
3142
|
+
return this._widgetsSubject$.pipe(filter(widgets => widgets !== null));
|
|
3143
|
+
}
|
|
3144
|
+
get _caseWidgetDataLoaded$() {
|
|
3145
|
+
return this._caseWidgetDataLoadedSubject$.pipe(filter(loaded => loaded !== null));
|
|
3146
|
+
}
|
|
3147
|
+
get loaded$() {
|
|
3148
|
+
return combineLatest([
|
|
3149
|
+
this._caseWidgetDataLoaded$,
|
|
3150
|
+
this._widgets$,
|
|
3151
|
+
this._widgetsWithExternalData$,
|
|
3152
|
+
this._widgetsWithExternalDataReady$,
|
|
3153
|
+
this._containerWidth$,
|
|
3154
|
+
]).pipe(map(([caseWidgetDataLoaded, widgets, widgetsWithExternalData, widgetsWithExternalDataReady]) => caseWidgetDataLoaded?.length === widgets.length &&
|
|
3155
|
+
widgetsWithExternalData.length === widgetsWithExternalDataReady.length), filter(loaded => !!loaded));
|
|
3156
|
+
}
|
|
3157
|
+
constructor() {
|
|
3158
|
+
this._containerWidthSubject$ = new BehaviorSubject(null);
|
|
3159
|
+
this._widgetsSubject$ = new BehaviorSubject(null);
|
|
3160
|
+
this._caseWidgetDataLoadedSubject$ = new BehaviorSubject(null);
|
|
3161
|
+
this._muuriSubject$ = new BehaviorSubject(null);
|
|
3162
|
+
this._triggerMuuriLayout$ = new Subject();
|
|
3163
|
+
this._widgetsWithExternalData$ = new BehaviorSubject([]);
|
|
3164
|
+
this._widgetsWithExternalDataReady$ = new BehaviorSubject([]);
|
|
3165
|
+
this._subscriptions = new Subscription();
|
|
3166
|
+
this.openMuuriSubscription();
|
|
3167
|
+
}
|
|
3168
|
+
ngOnDestroy() {
|
|
3169
|
+
this._subscriptions.unsubscribe();
|
|
3170
|
+
}
|
|
3171
|
+
setMuuri(muuri) {
|
|
3172
|
+
this._muuriSubject$.next(muuri);
|
|
3173
|
+
}
|
|
3174
|
+
triggerMuuriLayout() {
|
|
3175
|
+
this._triggerMuuriLayout$.next(null);
|
|
3176
|
+
}
|
|
3177
|
+
setWidgets(widgets) {
|
|
3178
|
+
this._widgetsSubject$.next(widgets);
|
|
3179
|
+
}
|
|
3180
|
+
setWidgetWithExternalData(uuid) {
|
|
3181
|
+
this._widgetsWithExternalData$.pipe(take(1)).subscribe(widgetsWithExternalData => {
|
|
3182
|
+
this._widgetsWithExternalData$.next([...widgetsWithExternalData, uuid]);
|
|
3183
|
+
});
|
|
3184
|
+
}
|
|
3185
|
+
setWidgetWithExternalDataReady(uuid) {
|
|
3186
|
+
this._widgetsWithExternalDataReady$.pipe(take(1)).subscribe(widgetsWithExternalDataReady => {
|
|
3187
|
+
this._widgetsWithExternalDataReady$.next([...widgetsWithExternalDataReady, uuid]);
|
|
3188
|
+
});
|
|
3189
|
+
}
|
|
3190
|
+
setContainerWidth(width) {
|
|
3191
|
+
this._containerWidthSubject$.next(width);
|
|
3192
|
+
}
|
|
3193
|
+
setCaseWidgetDataLoaded(uuid) {
|
|
3194
|
+
this._caseWidgetDataLoadedSubject$.pipe(take(1)).subscribe(caseWidgetDataLoaded => {
|
|
3195
|
+
if (!(caseWidgetDataLoaded || []).includes(uuid)) {
|
|
3196
|
+
this._caseWidgetDataLoadedSubject$.next([...(caseWidgetDataLoaded || []), uuid]);
|
|
3197
|
+
}
|
|
3198
|
+
});
|
|
3199
|
+
}
|
|
3200
|
+
reset() {
|
|
3201
|
+
this._containerWidthSubject$.next(null);
|
|
3202
|
+
this._widgetsSubject$.next(null);
|
|
3203
|
+
this._caseWidgetDataLoadedSubject$.next(null);
|
|
3204
|
+
this._widgetsWithExternalData$.next([]);
|
|
3205
|
+
this._widgetsWithExternalDataReady$.next([]);
|
|
3206
|
+
this._muuriSubject$.next(null);
|
|
3207
|
+
}
|
|
3208
|
+
openMuuriSubscription() {
|
|
3209
|
+
this._subscriptions.add(combineLatest([this._muuri$, this._triggerMuuriLayout$])
|
|
3210
|
+
.pipe(debounceTime(150))
|
|
3211
|
+
.subscribe(([muuri]) => {
|
|
3212
|
+
muuri.refreshItems();
|
|
3213
|
+
muuri.layout();
|
|
3214
|
+
}));
|
|
3215
|
+
}
|
|
3216
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierWidgetsLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3217
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierWidgetsLayoutService, providedIn: 'root' }); }
|
|
3218
|
+
}
|
|
3219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierWidgetsLayoutService, decorators: [{
|
|
3220
|
+
type: Injectable,
|
|
3221
|
+
args: [{ providedIn: 'root' }]
|
|
3222
|
+
}], ctorParameters: () => [] });
|
|
3223
|
+
|
|
2233
3224
|
/*
|
|
2234
3225
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2235
3226
|
*
|
|
@@ -2296,7 +3287,7 @@ class DossierBulkAssignModalComponent {
|
|
|
2296
3287
|
return index;
|
|
2297
3288
|
}
|
|
2298
3289
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierBulkAssignModalComponent, deps: [{ token: DossierBulkAssignService }, { token: i2$4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierBulkAssignModalComponent, selector: "valtimo-dossier-bulk-assign-modal", inputs: { documentIds: "documentIds", open: "open" }, outputs: { closeEvent: "closeEvent" }, host: { properties: { "class": "this.modalClass" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal valtimoCdsModal [open]=\"open\" (close)=\"closeModal()\" showFooter=\"true\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dossier.bulkAssign.modal.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form *ngIf=\"candidateUsers$ | async as candidateUsers\" [formGroup]=\"formGroup\">\n <cds-combo-box\n formControlName=\"assignee\"\n [dropUp]=\"false\"\n [items]=\"candidateUsers\"\n [label]=\"'dossier.bulkAssign.modal.selectLabel' | translate\"\n [placeholder]=\"'dossier.bulkAssign.modal.selectPlaceholder' | translate\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">{{ 'interface.cancel' | translate }}</button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"closeModal(true)\">\n {{ 'dossier.bulkAssign.modal.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["::ng-deep .valtimo-dossier-bulk-assign-modal .cds--list-box__field{background-color:#fff}::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-container,::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-content{overflow:unset}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type:
|
|
3290
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierBulkAssignModalComponent, selector: "valtimo-dossier-bulk-assign-modal", inputs: { documentIds: "documentIds", open: "open" }, outputs: { closeEvent: "closeEvent" }, host: { properties: { "class": "this.modalClass" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal valtimoCdsModal [open]=\"open\" (close)=\"closeModal()\" showFooter=\"true\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dossier.bulkAssign.modal.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form *ngIf=\"candidateUsers$ | async as candidateUsers\" [formGroup]=\"formGroup\">\n <cds-combo-box\n formControlName=\"assignee\"\n [dropUp]=\"false\"\n [items]=\"candidateUsers\"\n [label]=\"'dossier.bulkAssign.modal.selectLabel' | translate\"\n [placeholder]=\"'dossier.bulkAssign.modal.selectPlaceholder' | translate\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">{{ 'interface.cancel' | translate }}</button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"closeModal(true)\">\n {{ 'dossier.bulkAssign.modal.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["::ng-deep .valtimo-dossier-bulk-assign-modal .cds--list-box__field{background-color:#fff}::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-container,::ng-deep .valtimo-dossier-bulk-assign-modal .cds--modal-content{overflow:unset}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "items", "type", "size", "itemValueKey", "label", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2300
3291
|
}
|
|
2301
3292
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierBulkAssignModalComponent, decorators: [{
|
|
2302
3293
|
type: Component,
|
|
@@ -2312,6 +3303,118 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
2312
3303
|
type: Output
|
|
2313
3304
|
}] } });
|
|
2314
3305
|
|
|
3306
|
+
/*
|
|
3307
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3308
|
+
*
|
|
3309
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3310
|
+
* you may not use this file except in compliance with the License.
|
|
3311
|
+
* You may obtain a copy of the License at
|
|
3312
|
+
*
|
|
3313
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3314
|
+
*
|
|
3315
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3316
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3317
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3318
|
+
* See the License for the specific language governing permissions and
|
|
3319
|
+
* limitations under the License.
|
|
3320
|
+
*/
|
|
3321
|
+
moment$1.locale(localStorage.getItem('langKey') || '');
|
|
3322
|
+
moment$1.defaultFormat = 'DD MMM YYYY HH:mm';
|
|
3323
|
+
class DossierDetailTaskListComponent {
|
|
3324
|
+
constructor(documentService, processService, route, permissionService) {
|
|
3325
|
+
this.documentService = documentService;
|
|
3326
|
+
this.processService = processService;
|
|
3327
|
+
this.route = route;
|
|
3328
|
+
this.permissionService = permissionService;
|
|
3329
|
+
this.loadingTasks$ = new BehaviorSubject(true);
|
|
3330
|
+
this._refresh$ = new BehaviorSubject(null);
|
|
3331
|
+
this._documentId$ = this.route.params.pipe(map(params => params?.documentId), filter(documentId => !!documentId));
|
|
3332
|
+
this.processInstanceTasks$ = this._refresh$.pipe(switchMap(() => this._documentId$), switchMap(documentId => this.documentService
|
|
3333
|
+
.findProcessDocumentInstances(documentId)
|
|
3334
|
+
.pipe(repeat({ count: 5, delay: 1500 }))), switchMap(processDocumentInstances => combineLatest([
|
|
3335
|
+
...processDocumentInstances.map(processDocumentInstance => this.processService.getProcessInstanceTasks(processDocumentInstance.id.processInstanceId)),
|
|
3336
|
+
])), map(res => res.reduce((acc, curr) => [...acc, ...curr], [])), switchMap(tasks => combineLatest([
|
|
3337
|
+
of(tasks),
|
|
3338
|
+
...(tasks || []).map(task => this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {
|
|
3339
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
3340
|
+
identifier: task.id,
|
|
3341
|
+
})),
|
|
3342
|
+
])), map(res => {
|
|
3343
|
+
const tasks = res[0] || [];
|
|
3344
|
+
const permissions = res?.filter((_, index) => index !== 0);
|
|
3345
|
+
const mappedTasks = this.mapTasks(tasks, permissions);
|
|
3346
|
+
const uniqueTasks = this.getUniqueTasks(mappedTasks);
|
|
3347
|
+
return this.getSortedTasks(uniqueTasks);
|
|
3348
|
+
}), tap(() => this.loadingTasks$.next(false)));
|
|
3349
|
+
}
|
|
3350
|
+
rowTaskClick(task) {
|
|
3351
|
+
if (task.isLocked)
|
|
3352
|
+
return;
|
|
3353
|
+
this._taskDetailModal.openTaskDetails(task);
|
|
3354
|
+
}
|
|
3355
|
+
refresh() {
|
|
3356
|
+
this._refresh$.next(null);
|
|
3357
|
+
}
|
|
3358
|
+
mapTasks(tasks, permissions) {
|
|
3359
|
+
return tasks.map((task, index) => ({
|
|
3360
|
+
...task,
|
|
3361
|
+
createdUnix: moment$1(task.created).unix(),
|
|
3362
|
+
created: moment$1(task.created).format('DD MMM YYYY HH:mm'),
|
|
3363
|
+
...(task.due && { dueUnix: moment$1(task.due).unix() }),
|
|
3364
|
+
isLocked: !permissions[index],
|
|
3365
|
+
}));
|
|
3366
|
+
}
|
|
3367
|
+
getUniqueTasks(tasks) {
|
|
3368
|
+
return tasks.reduce((acc, curr) => {
|
|
3369
|
+
if (!acc.find(task => task.id === curr.id)) {
|
|
3370
|
+
return [...acc, curr];
|
|
3371
|
+
}
|
|
3372
|
+
return acc;
|
|
3373
|
+
}, []);
|
|
3374
|
+
}
|
|
3375
|
+
getSortedTasks(tasks) {
|
|
3376
|
+
return tasks.sort((t1, t2) => {
|
|
3377
|
+
// high priority tasks on top
|
|
3378
|
+
if (t2.priority !== t1.priority) {
|
|
3379
|
+
return t2.priority - t1.priority;
|
|
3380
|
+
}
|
|
3381
|
+
// task with approaching due date on top
|
|
3382
|
+
const due1 = t1?.dueUnix || Number.MAX_VALUE;
|
|
3383
|
+
const due2 = t2?.dueUnix || Number.MAX_VALUE;
|
|
3384
|
+
if (due1 !== due2) {
|
|
3385
|
+
return due1 - due2;
|
|
3386
|
+
}
|
|
3387
|
+
// new task on top
|
|
3388
|
+
const createdCompare = t2.createdUnix / 5000 - t1.createdUnix / 5000;
|
|
3389
|
+
if (createdCompare !== 0) {
|
|
3390
|
+
return createdCompare;
|
|
3391
|
+
}
|
|
3392
|
+
// task with approximately the same age, are sorted by name
|
|
3393
|
+
return t1.name.localeCompare(t2.name);
|
|
3394
|
+
});
|
|
3395
|
+
}
|
|
3396
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTaskListComponent, deps: [{ token: i2$1.DocumentService }, { token: i2$3.ProcessService }, { token: i1$1.ActivatedRoute }, { token: i7.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierDetailTaskListComponent, isStandalone: true, selector: "valtimo-dossier-detail-task-list", viewQueries: [{ propertyName: "_taskDetailModal", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"task-list\"\n *ngIf=\"{loadingTasks: loadingTasks$ | async, tasks: processInstanceTasks$ | async} as obs\"\n>\n <h2 class=\"task-list__title\">{{ 'summary.userTasks' | translate }}</h2>\n\n <div\n class=\"task-list__tasks-container\"\n cdsLayer=\"1\"\n *ngIf=\"!obs.loadingTasks && obs.tasks; else loadingTasksTemplate\"\n >\n @if (obs.tasks.length === 0) {\n <ng-container *ngTemplateOutlet=\"noTasksTemplate\"></ng-container>\n } @else {\n @for (task of obs.tasks; track task.id) {\n <ng-container *ngTemplateOutlet=\"taskTemplate; context: {task: task}\"></ng-container>\n }\n }\n </div>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"refresh()\"\n (assignmentOfTaskChanged)=\"refresh()\"\n ></valtimo-task-detail-modal>\n</div>\n\n<ng-template #taskTemplate let-task=\"task\">\n <cds-clickable-tile (click)=\"rowTaskClick(task)\">\n <div class=\"task\">\n <div class=\"task__header\">\n <span class=\"task__title\">{{ task.name }}</span>\n\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"task.locked ? 'cool-gray' : 'green'\">\n @if (!task.locked) {\n {{ 'summary.taskOpen' | translate }}\n } @else {\n <i class=\"icon mdi mdi-lock\"></i>\n }\n </cds-tag>\n </div>\n\n <div class=\"task__description\">\n {{ 'summary.taskCreated' | translate }} {{ task.created }}\n </div>\n </div>\n </cds-clickable-tile>\n</ng-template>\n\n<ng-template #noTasksTemplate>\n <valtimo-no-results\n [alwaysRenderVertically]=\"true\"\n illustration=\"valtimo-layout/img/emptystate-success.svg\"\n [description]=\"'summary.userTasksDoneState' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n</ng-template>\n\n<ng-template #loadingTasksTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: [".task-list{width:412px;background-color:var(--cds-layer);padding:24px;display:flex;flex-direction:column}.task-list__title{font-size:24px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:16px}.task-list__tasks-container,.task{display:flex;flex-direction:column;gap:8px}.task__header{display:flex;justify-content:space-between;align-items:center;gap:8px}.task__title,.task__description{font-size:14px;font-style:normal;font-weight:600;line-height:20px;letter-spacing:.16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task__description{font-weight:400}.loading-container{width:100%;display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "ngmodule", type: TaskModule }, { kind: "component", type: i1$3.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i4.ClickableTile, selector: "cds-clickable-tile, ibm-clickable-tile", inputs: ["theme", "href", "target", "disabled", "route", "routeExtras"], outputs: ["navigation"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i4.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i4.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }] }); }
|
|
3398
|
+
}
|
|
3399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTaskListComponent, decorators: [{
|
|
3400
|
+
type: Component,
|
|
3401
|
+
args: [{ selector: 'valtimo-dossier-detail-task-list', standalone: true, imports: [
|
|
3402
|
+
CommonModule,
|
|
3403
|
+
NgbTooltipModule,
|
|
3404
|
+
TranslateModule,
|
|
3405
|
+
WidgetModule,
|
|
3406
|
+
LoadingModule,
|
|
3407
|
+
TaskModule,
|
|
3408
|
+
TilesModule,
|
|
3409
|
+
LayerModule,
|
|
3410
|
+
TagModule,
|
|
3411
|
+
CarbonListModule,
|
|
3412
|
+
], template: "<!--\n ~ Copyright 2015-2024 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=\"task-list\"\n *ngIf=\"{loadingTasks: loadingTasks$ | async, tasks: processInstanceTasks$ | async} as obs\"\n>\n <h2 class=\"task-list__title\">{{ 'summary.userTasks' | translate }}</h2>\n\n <div\n class=\"task-list__tasks-container\"\n cdsLayer=\"1\"\n *ngIf=\"!obs.loadingTasks && obs.tasks; else loadingTasksTemplate\"\n >\n @if (obs.tasks.length === 0) {\n <ng-container *ngTemplateOutlet=\"noTasksTemplate\"></ng-container>\n } @else {\n @for (task of obs.tasks; track task.id) {\n <ng-container *ngTemplateOutlet=\"taskTemplate; context: {task: task}\"></ng-container>\n }\n }\n </div>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"refresh()\"\n (assignmentOfTaskChanged)=\"refresh()\"\n ></valtimo-task-detail-modal>\n</div>\n\n<ng-template #taskTemplate let-task=\"task\">\n <cds-clickable-tile (click)=\"rowTaskClick(task)\">\n <div class=\"task\">\n <div class=\"task__header\">\n <span class=\"task__title\">{{ task.name }}</span>\n\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"task.locked ? 'cool-gray' : 'green'\">\n @if (!task.locked) {\n {{ 'summary.taskOpen' | translate }}\n } @else {\n <i class=\"icon mdi mdi-lock\"></i>\n }\n </cds-tag>\n </div>\n\n <div class=\"task__description\">\n {{ 'summary.taskCreated' | translate }} {{ task.created }}\n </div>\n </div>\n </cds-clickable-tile>\n</ng-template>\n\n<ng-template #noTasksTemplate>\n <valtimo-no-results\n [alwaysRenderVertically]=\"true\"\n illustration=\"valtimo-layout/img/emptystate-success.svg\"\n [description]=\"'summary.userTasksDoneState' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n</ng-template>\n\n<ng-template #loadingTasksTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: [".task-list{width:412px;background-color:var(--cds-layer);padding:24px;display:flex;flex-direction:column}.task-list__title{font-size:24px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:16px}.task-list__tasks-container,.task{display:flex;flex-direction:column;gap:8px}.task__header{display:flex;justify-content:space-between;align-items:center;gap:8px}.task__title,.task__description{font-size:14px;font-style:normal;font-weight:600;line-height:20px;letter-spacing:.16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task__description{font-weight:400}.loading-container{width:100%;display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
3413
|
+
}], ctorParameters: () => [{ type: i2$1.DocumentService }, { type: i2$3.ProcessService }, { type: i1$1.ActivatedRoute }, { type: i7.PermissionService }], propDecorators: { _taskDetailModal: [{
|
|
3414
|
+
type: ViewChild,
|
|
3415
|
+
args: ['taskDetail']
|
|
3416
|
+
}] } });
|
|
3417
|
+
|
|
2315
3418
|
/*
|
|
2316
3419
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2317
3420
|
*
|
|
@@ -2407,13 +3510,13 @@ class DossierSupportingProcessStartModalComponent {
|
|
|
2407
3510
|
queryParams: { process: this.processDefinitionKey$.getValue() },
|
|
2408
3511
|
});
|
|
2409
3512
|
}
|
|
2410
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierSupportingProcessStartModalComponent, deps: [{ token: i1$1.Router }, { token: i2$
|
|
2411
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["supportingProcessStartModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 *ngIf=\"{\n processDefinitionKey: processDefinitionKey$ | async,\n processName: processName$ | async\n } as vars\"\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (vars.processDefinitionKey | translate) !== vars.processDefinitionKey\n ? (vars.processDefinitionKey | translate)\n : vars.processName\n \"\n>\n <div body *ngIf=\"formDefinition$ | async as formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission$ | async\"\n [form]=\"formDefinition\"\n [options]=\"options$ | async\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId$ | async as formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n\n <ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async\n } as obs\"\n >\n <div body *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\">\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.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n </ng-container>\n</valtimo-modal>\n", styles: ["#supportingProcessStartModal .formio-component-submit{text-align:right}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type:
|
|
3513
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierSupportingProcessStartModalComponent, deps: [{ token: i1$1.Router }, { token: i2$3.ProcessService }, { token: i4$2.ProcessLinkService }, { token: i4$3.UserProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3514
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["supportingProcessStartModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 *ngIf=\"{\n processDefinitionKey: processDefinitionKey$ | async,\n processName: processName$ | async\n } as vars\"\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (vars.processDefinitionKey | translate) !== vars.processDefinitionKey\n ? (vars.processDefinitionKey | translate)\n : vars.processName\n \"\n>\n <div body *ngIf=\"formDefinition$ | async as formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission$ | async\"\n [form]=\"formDefinition\"\n [options]=\"options$ | async\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId$ | async as formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n\n <ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async\n } as obs\"\n >\n <div body *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\">\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.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n </ng-container>\n</valtimo-modal>\n", styles: ["#supportingProcessStartModal .formio-component-submit{text-align:right}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i2$2.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "component", type: i4$2.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
2412
3515
|
}
|
|
2413
3516
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierSupportingProcessStartModalComponent, decorators: [{
|
|
2414
3517
|
type: Component,
|
|
2415
3518
|
args: [{ selector: 'valtimo-dossier-supporting-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 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 *ngIf=\"{\n processDefinitionKey: processDefinitionKey$ | async,\n processName: processName$ | async\n } as vars\"\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (vars.processDefinitionKey | translate) !== vars.processDefinitionKey\n ? (vars.processDefinitionKey | translate)\n : vars.processName\n \"\n>\n <div body *ngIf=\"formDefinition$ | async as formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission$ | async\"\n [form]=\"formDefinition\"\n [options]=\"options$ | async\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId$ | async as formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n\n <ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async\n } as obs\"\n >\n <div body *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\">\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.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n </ng-container>\n</valtimo-modal>\n", styles: ["#supportingProcessStartModal .formio-component-submit{text-align:right}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2416
|
-
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i2$
|
|
3519
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i2$3.ProcessService }, { type: i4$2.ProcessLinkService }, { type: i4$3.UserProviderService }], propDecorators: { form: [{
|
|
2417
3520
|
type: ViewChild,
|
|
2418
3521
|
args: ['form', { static: false }]
|
|
2419
3522
|
}], modal: [{
|
|
@@ -2496,7 +3599,7 @@ class DossierAssignUserComponent {
|
|
|
2496
3599
|
this.disabled$.next(true);
|
|
2497
3600
|
}
|
|
2498
3601
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierAssignUserComponent, deps: [{ token: i2$1.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2499
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: { documentId: "documentId", assigneeId: "assigneeId", assigneeFullName: "assigneeFullName", hasPermission: "hasPermission" }, outputs: { assignmentOfDocumentChanged: "assignmentOfDocumentChanged" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n assigneeFullName: assigneeFullName$ | async,\n assigneeId: assigneeId$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"!hasPermission && obs.assigneeFullName\">\n <ng-container *ngTemplateOutlet=\"fullName; context: {obs: obs}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasPermission\">\n <ng-container *ngTemplateOutlet=\"selectUser; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #fullName let-obs=\"obs\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [hasPermission]=\"false\"\n [hasSelection]=\"true\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n</ng-template>\n\n<ng-template #selectUser let-obs=\"obs\">\n <ng-container *ngIf=\"userItems$ | async as userItems; else loadingUsers\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [disabled]=\"obs.disabled\"\n [hasPermission]=\"hasPermission\"\n [showClearSelection]=\"false\"\n [hasSelection]=\"obs.assigneeId\"\n [items]=\"userItems\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n (clearSelection)=\"unassignDocument()\"\n (itemSelected)=\"assignDocument($event)\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingUsers>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595}valtimo-searchable-dropdown-select{color:var(--cds-text-helper)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px!important;line-height:18px!important}h5{font-size:14px!important}:host .dossier-candidates-dropdown h5{margin-block:0}\n"], dependencies: [{ kind: "directive", type:
|
|
3602
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: { documentId: "documentId", assigneeId: "assigneeId", assigneeFullName: "assigneeFullName", hasPermission: "hasPermission" }, outputs: { assignmentOfDocumentChanged: "assignmentOfDocumentChanged" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n assigneeFullName: assigneeFullName$ | async,\n assigneeId: assigneeId$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"!hasPermission && obs.assigneeFullName\">\n <ng-container *ngTemplateOutlet=\"fullName; context: {obs: obs}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasPermission\">\n <ng-container *ngTemplateOutlet=\"selectUser; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #fullName let-obs=\"obs\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [hasPermission]=\"false\"\n [hasSelection]=\"true\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n</ng-template>\n\n<ng-template #selectUser let-obs=\"obs\">\n <ng-container *ngIf=\"userItems$ | async as userItems; else loadingUsers\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [disabled]=\"obs.disabled\"\n [hasPermission]=\"hasPermission\"\n [showClearSelection]=\"false\"\n [hasSelection]=\"obs.assigneeId\"\n [items]=\"userItems\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n (clearSelection)=\"unassignDocument()\"\n (itemSelected)=\"assignDocument($event)\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingUsers>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595}valtimo-searchable-dropdown-select{color:var(--cds-text-helper)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px!important;line-height:18px!important}h5{font-size:14px!important}:host .dossier-candidates-dropdown h5{margin-block:0}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$2.SearchableDropdownSelectComponent, selector: "valtimo-searchable-dropdown-select", inputs: ["style", "items", "buttonText", "searchText", "noResultsText", "disabled", "selectedText", "selectedTextValue", "clearSelectionButtonTitle", "hasSelection", "width", "hasPermission", "showClearSelection"], outputs: ["itemSelected", "clearSelection"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
2500
3603
|
}
|
|
2501
3604
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierAssignUserComponent, decorators: [{
|
|
2502
3605
|
type: Component,
|
|
@@ -2616,6 +3719,8 @@ class DossierDetailComponent {
|
|
|
2616
3719
|
this.loadingTabs$ = new BehaviorSubject(true);
|
|
2617
3720
|
this.noTabsConfigured$ = new BehaviorSubject(false);
|
|
2618
3721
|
this.compactMode$ = this.pageHeaderService.compactMode$;
|
|
3722
|
+
this.tabHorizontalOverflowDisabled = this.dossierTabService.tabHorizontalOverflowDisabled;
|
|
3723
|
+
this.showTaskList$ = this.dossierTabService.showTaskList$;
|
|
2619
3724
|
this._snapshot = this.route.snapshot.paramMap;
|
|
2620
3725
|
this.documentDefinitionName = this._snapshot.get('documentDefinitionName') || '';
|
|
2621
3726
|
this.documentId = this._snapshot.get('documentId') || '';
|
|
@@ -2691,6 +3796,7 @@ class DossierDetailComponent {
|
|
|
2691
3796
|
this._initialTabName = this._snapshot.get('tab') ?? '';
|
|
2692
3797
|
this.tabLoader = new TabLoaderImpl(tabs, this.componentFactoryResolver, this.viewContainerRef, this.router, this.route);
|
|
2693
3798
|
this.tabLoader.initial(this._initialTabName);
|
|
3799
|
+
this.dossierTabService.setTabLoader(this.tabLoader);
|
|
2694
3800
|
this.loadingTabs$.next(false);
|
|
2695
3801
|
}
|
|
2696
3802
|
else {
|
|
@@ -2741,13 +3847,13 @@ class DossierDetailComponent {
|
|
|
2741
3847
|
href: `/dossiers/${this.documentDefinitionName}`,
|
|
2742
3848
|
});
|
|
2743
3849
|
}
|
|
2744
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailComponent, deps: [{ token: i2$
|
|
2745
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierDetailComponent, selector: "valtimo-dossier-detail", providers: [DossierTabService], viewQueries: [{ propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-template #tabs>\n <ng-container *ngIf=\"tabLoader\">\n <cds-tabs type=\"contained\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.isActive()\"\n heading=\"{{ tab | tabTranslate | async }}\"\n [id]=\"\"\n (selected)=\"tabLoader.load(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"(customDossierHeaderItems || []).length > 0\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\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 class=\"mb-0 mt-0 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n >\n {{ 'dossier.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"dossier-actions\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async\n } as obs\"\n >\n <div\n class=\"dossier-status-assign-custom-title\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\">{{ obs.caseStatus.title }}</cds-tag>\n }\n\n <div class=\"dossier-assign-user\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n <cds-overflow-menu-option (selected)=\"unassignAssignee()\" [disabled]=\"!obs.assigneeId\">\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"250\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".tab-container{min-height:300px}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.loading-container{display:flex;justify-content:center;flex-direction:row}.dossier-detail-page-header{display:flex;width:100%;justify-content:flex-start;padding-bottom:5px}.dossier-detail-page-header ::ng-deep .cds--tag{margin:0}.case-detail-tabs cds-tab{display:none!important}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.dossier-actions.--compact{padding-bottom:0;align-items:flex-start}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.dossier-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.dossier-status-assign-custom-title .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.dossier-status-assign-custom-title.--compact{align-items:center}\n"], dependencies: [{ kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i10$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i10$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i10$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i10$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i10$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i2$3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "directive", type: i2$3.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i10$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i10$1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i10$1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i2$3.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { kind: "component", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { kind: "component", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName", "hasPermission"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: TabTranslatePipe, name: "tabTranslate" }] }); }
|
|
3850
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailComponent, deps: [{ token: i2$2.BreadcrumbService }, { token: i0.ComponentFactoryResolver }, { token: i1.ConfigService }, { token: i2$1.DocumentService }, { token: i4$4.KeycloakService }, { token: i3$1.Location }, { token: i1$2.NGXLogger }, { token: i7.PermissionService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: DossierTabService }, { token: DossierService }, { token: i2$1.CaseStatusService }, { token: i2$2.PageTitleService }, { token: i4.IconService }, { token: i2$2.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3851
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierDetailComponent, selector: "valtimo-dossier-detail", providers: [DossierTabService], viewQueries: [{ propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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\n class=\"main-content\"\n [ngClass]=\"{'main-content--no-horizontal-overflow': tabHorizontalOverflowDisabled()}\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-template #tabs>\n <ng-container *ngIf=\"tabLoader\">\n <cds-tabs type=\"inline\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.isActive()\"\n heading=\"{{ tab | tabTranslate | async }}\"\n [id]=\"\"\n (selected)=\"tabLoader.load(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n\n <div class=\"tab-content-container\">\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n\n <div *ngIf=\"showTaskList$ | async\" class=\"tab-content-container__task-list\">\n <valtimo-dossier-detail-task-list></valtimo-dossier-detail-task-list>\n </div>\n </div>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"(customDossierHeaderItems || []).length > 0\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\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 class=\"mb-0 mt-0 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n >\n {{ 'dossier.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"dossier-actions\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async\n } as obs\"\n >\n <div\n class=\"dossier-status-assign-custom-title\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\">{{ obs.caseStatus.title }}</cds-tag>\n }\n\n <div class=\"dossier-assign-user\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n <cds-overflow-menu-option (selected)=\"unassignAssignee()\" [disabled]=\"!obs.assigneeId\">\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"250\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".main-content--no-horizontal-overflow{overflow-x:hidden}.tab-container{min-height:300px}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.tab-container:has(>.tab--no-background){background:transparent!important}.loading-container{display:flex;justify-content:center;flex-direction:row}.dossier-detail-page-header{display:flex;width:100%;justify-content:flex-start;padding-bottom:5px}.dossier-detail-page-header ::ng-deep .cds--tag{margin:0}.case-detail-tabs{display:flex;margin-bottom:24px}.case-detail-tabs cds-tab{display:none!important}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.dossier-actions.--compact{padding-bottom:0;align-items:flex-start}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.dossier-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.dossier-status-assign-custom-title .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.dossier-status-assign-custom-title.--compact{align-items:center}.tab-content-container{overflow:hidden;display:flex;gap:24px}\n"], dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i4.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i4.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i2$2.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i4.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i4.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i2$2.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { kind: "component", type: DossierDetailTaskListComponent, selector: "valtimo-dossier-detail-task-list" }, { kind: "component", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: ["formSubmit"] }, { kind: "component", type: DossierAssignUserComponent, selector: "valtimo-dossier-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName", "hasPermission"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: TabTranslatePipe, name: "tabTranslate" }] }); }
|
|
2746
3852
|
}
|
|
2747
3853
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailComponent, decorators: [{
|
|
2748
3854
|
type: Component,
|
|
2749
|
-
args: [{ selector: 'valtimo-dossier-detail', providers: [DossierTabService], template: "<!--\n ~ Copyright 2015-2024 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
|
|
2750
|
-
}], ctorParameters: () => [{ type: i2$
|
|
3855
|
+
args: [{ selector: 'valtimo-dossier-detail', providers: [DossierTabService], template: "<!--\n ~ Copyright 2015-2024 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\n class=\"main-content\"\n [ngClass]=\"{'main-content--no-horizontal-overflow': tabHorizontalOverflowDisabled()}\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-template #tabs>\n <ng-container *ngIf=\"tabLoader\">\n <cds-tabs type=\"inline\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.isActive()\"\n heading=\"{{ tab | tabTranslate | async }}\"\n [id]=\"\"\n (selected)=\"tabLoader.load(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n\n <div class=\"tab-content-container\">\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n\n <div *ngIf=\"showTaskList$ | async\" class=\"tab-content-container__task-list\">\n <valtimo-dossier-detail-task-list></valtimo-dossier-detail-task-list>\n </div>\n </div>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"(customDossierHeaderItems || []).length > 0\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\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 class=\"mb-0 mt-0 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n >\n {{ 'dossier.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"dossier-actions\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async\n } as obs\"\n >\n <div\n class=\"dossier-status-assign-custom-title\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\">{{ obs.caseStatus.title }}</cds-tag>\n }\n\n <div class=\"dossier-assign-user\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n <cds-overflow-menu-option (selected)=\"unassignAssignee()\" [disabled]=\"!obs.assigneeId\">\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"250\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".main-content--no-horizontal-overflow{overflow-x:hidden}.tab-container{min-height:300px}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.tab-container:has(>.tab--no-background){background:transparent!important}.loading-container{display:flex;justify-content:center;flex-direction:row}.dossier-detail-page-header{display:flex;width:100%;justify-content:flex-start;padding-bottom:5px}.dossier-detail-page-header ::ng-deep .cds--tag{margin:0}.case-detail-tabs{display:flex;margin-bottom:24px}.case-detail-tabs cds-tab{display:none!important}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.dossier-actions.--compact{padding-bottom:0;align-items:flex-start}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.dossier-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.dossier-status-assign-custom-title .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.dossier-status-assign-custom-title.--compact{align-items:center}.tab-content-container{overflow:hidden;display:flex;gap:24px}\n"] }]
|
|
3856
|
+
}], ctorParameters: () => [{ type: i2$2.BreadcrumbService }, { type: i0.ComponentFactoryResolver }, { type: i1.ConfigService }, { type: i2$1.DocumentService }, { type: i4$4.KeycloakService }, { type: i3$1.Location }, { type: i1$2.NGXLogger }, { type: i7.PermissionService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: DossierTabService }, { type: DossierService }, { type: i2$1.CaseStatusService }, { type: i2$2.PageTitleService }, { type: i4.IconService }, { type: i2$2.PageHeaderService }], propDecorators: { supportingProcessStart: [{
|
|
2751
3857
|
type: ViewChild,
|
|
2752
3858
|
args: ['supportingProcessStartModal']
|
|
2753
3859
|
}], viewContainerRef: [{
|
|
@@ -2771,7 +3877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
2771
3877
|
* limitations under the License.
|
|
2772
3878
|
*/
|
|
2773
3879
|
class DossierProcessStartModalComponent {
|
|
2774
|
-
constructor(route, router, processService, documentService, processLinkService, formFlowService, userProviderService, permissionService, listService, startModalService, configService) {
|
|
3880
|
+
constructor(route, router, processService, documentService, processLinkService, formFlowService, userProviderService, permissionService, listService, startModalService, configService, formViewModel) {
|
|
2775
3881
|
this.route = route;
|
|
2776
3882
|
this.router = router;
|
|
2777
3883
|
this.processService = processService;
|
|
@@ -2783,13 +3889,19 @@ class DossierProcessStartModalComponent {
|
|
|
2783
3889
|
this.listService = listService;
|
|
2784
3890
|
this.startModalService = startModalService;
|
|
2785
3891
|
this.configService = configService;
|
|
3892
|
+
this.formViewModel = formViewModel;
|
|
3893
|
+
this.isFormViewModel = false;
|
|
2786
3894
|
this.formFlowComplete = new EventEmitter();
|
|
3895
|
+
this._subscriptions = new Subscription();
|
|
2787
3896
|
this._useStartEventNameAsStartFormTitle =
|
|
2788
3897
|
this.configService.config.featureToggles?.useStartEventNameAsStartFormTitle;
|
|
2789
3898
|
}
|
|
2790
3899
|
ngOnInit() {
|
|
2791
3900
|
this.isUserAdmin();
|
|
2792
3901
|
}
|
|
3902
|
+
ngOnDestroy() {
|
|
3903
|
+
this._subscriptions.unsubscribe();
|
|
3904
|
+
}
|
|
2793
3905
|
loadProcessLink() {
|
|
2794
3906
|
this.processLinkId = null;
|
|
2795
3907
|
this.formDefinition = null;
|
|
@@ -2808,9 +3920,18 @@ class DossierProcessStartModalComponent {
|
|
|
2808
3920
|
case 'form':
|
|
2809
3921
|
this.formDefinition = startProcessResult.properties.prefilledForm;
|
|
2810
3922
|
this.processLinkId = startProcessResult.processLinkId;
|
|
3923
|
+
this.isFormViewModel = false;
|
|
2811
3924
|
break;
|
|
2812
3925
|
case 'form-flow':
|
|
2813
3926
|
this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
|
|
3927
|
+
this.isFormViewModel = false;
|
|
3928
|
+
break;
|
|
3929
|
+
case 'form-view-model':
|
|
3930
|
+
this.formDefinition = startProcessResult.properties.formDefinition;
|
|
3931
|
+
this.formName = startProcessResult.properties.formName;
|
|
3932
|
+
this.processLinkId = startProcessResult.processLinkId;
|
|
3933
|
+
this.isFormViewModel = true;
|
|
3934
|
+
this.setFormViewModelComponent();
|
|
2814
3935
|
break;
|
|
2815
3936
|
}
|
|
2816
3937
|
}
|
|
@@ -2883,18 +4004,41 @@ class DossierProcessStartModalComponent {
|
|
|
2883
4004
|
}
|
|
2884
4005
|
});
|
|
2885
4006
|
}
|
|
2886
|
-
|
|
2887
|
-
|
|
4007
|
+
setFormViewModelComponent() {
|
|
4008
|
+
if (!this.formViewModel.component)
|
|
4009
|
+
return;
|
|
4010
|
+
this.formViewModelDynamicContainer.clear();
|
|
4011
|
+
const formViewModelComponent = this.formViewModelDynamicContainer.createComponent(this.formViewModel.component);
|
|
4012
|
+
formViewModelComponent.instance.form = this.formDefinition;
|
|
4013
|
+
formViewModelComponent.instance.formName = this.formName;
|
|
4014
|
+
formViewModelComponent.instance.isStartForm = true;
|
|
4015
|
+
formViewModelComponent.instance.processDefinitionKey = this.processDefinitionKey;
|
|
4016
|
+
formViewModelComponent.instance.documentDefinitionName = this.documentDefinitionName;
|
|
4017
|
+
this._subscriptions.add(formViewModelComponent.instance.formSubmit.subscribe(() => {
|
|
4018
|
+
this.listService.forceRefresh();
|
|
4019
|
+
this.modal.hide();
|
|
4020
|
+
}));
|
|
4021
|
+
}
|
|
4022
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierProcessStartModalComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2$3.ProcessService }, { token: i2$1.DocumentService }, { token: i4$2.ProcessLinkService }, { token: i4$2.FormFlowService }, { token: i4$3.UserProviderService }, { token: i7.PermissionService }, { token: DossierListService }, { token: StartModalService }, { token: i1.ConfigService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4023
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["processStartModal"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition && !isFormViewModel\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body>\n <ng-template #formViewModelComponent></ng-template>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !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 (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !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", styles: ["#processStartModal .formio-component-submit{text-align:right}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i2$2.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4$2.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
2888
4024
|
}
|
|
2889
4025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierProcessStartModalComponent, decorators: [{
|
|
2890
4026
|
type: Component,
|
|
2891
|
-
args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 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
|
|
2892
|
-
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$
|
|
4027
|
+
args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 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<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition && !isFormViewModel\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body>\n <ng-template #formViewModelComponent></ng-template>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !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 (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !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", styles: ["#processStartModal .formio-component-submit{text-align:right}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
4028
|
+
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$3.ProcessService }, { type: i2$1.DocumentService }, { type: i4$2.ProcessLinkService }, { type: i4$2.FormFlowService }, { type: i4$3.UserProviderService }, { type: i7.PermissionService }, { type: DossierListService }, { type: StartModalService }, { type: i1.ConfigService }, { type: undefined, decorators: [{
|
|
4029
|
+
type: Optional
|
|
4030
|
+
}, {
|
|
4031
|
+
type: Inject,
|
|
4032
|
+
args: [FORM_VIEW_MODEL_TOKEN]
|
|
4033
|
+
}] }], propDecorators: { form: [{
|
|
2893
4034
|
type: ViewChild,
|
|
2894
4035
|
args: ['form', { static: false }]
|
|
2895
4036
|
}], modal: [{
|
|
2896
4037
|
type: ViewChild,
|
|
2897
4038
|
args: ['processStartModal', { static: false }]
|
|
4039
|
+
}], formViewModelDynamicContainer: [{
|
|
4040
|
+
type: ViewChild,
|
|
4041
|
+
args: ['formViewModelComponent', { static: true, read: ViewContainerRef }]
|
|
2898
4042
|
}], formFlowComplete: [{
|
|
2899
4043
|
type: Output
|
|
2900
4044
|
}] } });
|
|
@@ -2961,7 +4105,7 @@ class DossierListActionsComponent {
|
|
|
2961
4105
|
}
|
|
2962
4106
|
}
|
|
2963
4107
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierListActionsComponent, deps: [{ token: i2$1.DocumentService }, { token: DossierListService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2964
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: { loading: "loading" }, outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "processStart", first: true, predicate: ["processStartModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\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\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\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\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type:
|
|
4108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: { loading: "loading" }, outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "processStart", first: true, predicate: ["processStartModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\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\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\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\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: ["formFlowComplete"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
2965
4109
|
}
|
|
2966
4110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierListActionsComponent, decorators: [{
|
|
2967
4111
|
type: Component,
|
|
@@ -3204,10 +4348,10 @@ class DossierListComponent {
|
|
|
3204
4348
|
search(searchFieldValues) {
|
|
3205
4349
|
this.searchService.search(searchFieldValues);
|
|
3206
4350
|
}
|
|
3207
|
-
rowClick(
|
|
4351
|
+
rowClick(item) {
|
|
3208
4352
|
this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {
|
|
3209
4353
|
this.breadcrumbService.cacheQueryParams(`/dossiers/${documentDefinitionName}`, this.route.snapshot.queryParams);
|
|
3210
|
-
this.router.navigate([`/dossiers/${documentDefinitionName}/document/${
|
|
4354
|
+
this.router.navigate([`/dossiers/${documentDefinitionName}/document/${item.id}`]);
|
|
3211
4355
|
});
|
|
3212
4356
|
}
|
|
3213
4357
|
tabChange(tab) {
|
|
@@ -3331,7 +4475,7 @@ class DossierListComponent {
|
|
|
3331
4475
|
title: `dossier.noResults.${this.activeTab ?? 'ALL'}.title`,
|
|
3332
4476
|
});
|
|
3333
4477
|
}
|
|
3334
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierListComponent, deps: [{ token: DossierListAssigneeService }, { token: i2$
|
|
4478
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierListComponent, deps: [{ token: DossierListAssigneeService }, { token: i2$2.BreadcrumbService }, { token: DossierBulkAssignService }, { token: DossierColumnService }, { token: i1.ConfigService }, { token: i2$1.DocumentService }, { token: DossierListService }, { token: i2$2.PageTitleService }, { token: DossierListPaginationService }, { token: DossierParameterService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: DossierListSearchService }, { token: i6.TranslateService }, { token: i7.PermissionService }, { token: DossierListStatusService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3335
4479
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierListComponent, selector: "valtimo-dossier-list", providers: [
|
|
3336
4480
|
DossierListService,
|
|
3337
4481
|
DossierColumnService,
|
|
@@ -3340,7 +4484,7 @@ class DossierListComponent {
|
|
|
3340
4484
|
DossierListPaginationService,
|
|
3341
4485
|
DossierListSearchService,
|
|
3342
4486
|
DossierListStatusService,
|
|
3343
|
-
], viewQueries: [{ propertyName: "carbonList", first: true, predicate: CarbonListComponent, descendants: true }, { propertyName: "listActionsComponent", first: true, predicate: DossierListActionsComponent, descendants: true }, { propertyName: "tabsComponent", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 fields: fields$ | async,\n documentItems: documentItems$ | async,\n noResultsMessage: noResultsMessage$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n showAssignModal: showAssignModal$ | async,\n selectedDocumentIds: selectedDocumentIds$ | async,\n statuses: statuses$ | async,\n selectedStatuses: selectedStatuses$ | async,\n showStatusSelector: showStatusSelector$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"forceRefresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngTemplateOutlet=\"bulkAssignModal; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changePageModal\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changeTabModal\"></ng-container>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n [inputDisabled]=\"!obs.loaded\"\n [externalSearchField]=\"obs.showStatusSelector\"\n >\n <valtimo-status-selector\n *ngIf=\"obs.showStatusSelector\"\n [statuses]=\"obs.statuses\"\n [selectedStatuses]=\"obs.selectedStatuses\"\n [disabled]=\"!obs.loaded\"\n (selectedStatusesChangeEvent)=\"onSelectedStatusesChange($event)\"\n ></valtimo-status-selector>\n </valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [initialSortState]=\"pagination.sort\"\n [items]=\"obs.documentItems\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierList\"\n lockedTooltipTranslationKey=\"dossier.rowLocked\"\n [showSelectionColumn]=\"canHaveAssignee\"\n [tableTranslations]=\"tableTranslations\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n (rowClicked)=\"rowClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showAssignModal()\">\n {{ 'dossier.bulkAssign.assign' | translate }}\n </button>\n </ng-container>\n\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"dossierListActions\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"obs.noResultsMessage.isSearchResult ? null : dossierListActions\"\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n ></valtimo-no-results>\n\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs\n *ngIf=\"!visibleDossierTabs; else configuredTabs\"\n type=\"contained\"\n class=\"dossier-list-tabs\"\n >\n <cds-tab\n *ngFor=\"let tab of defaultTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs type=\"contained\" class=\"dossier-list-tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleDossierTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #loading\n ><valtimo-carbon-list [loading]=\"true\">\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div> </valtimo-carbon-list\n></ng-template>\n\n<ng-template #bulkAssignModal let-obs=\"obs\">\n <valtimo-dossier-bulk-assign-modal\n [documentIds]=\"obs.selectedDocumentIds\"\n [open]=\"obs.showAssignModal\"\n (closeEvent)=\"onCloseEvent($event, obs.selectedDocumentIds)\"\n ></valtimo-dossier-bulk-assign-modal>\n</ng-template>\n\n<ng-template #changePageModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changePageModal.confirm\"\n contentTranslationKey=\"dossier.changePageModal.content\"\n [outputOnConfirm]=\"paginationChange$ | async\"\n [showModalSubject$]=\"showChangePageModal$\"\n titleTranslationKey=\"dossier.changePageModal.title\"\n (confirmEvent)=\"onChangePageConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #changeTabModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changeTabModal.confirm\"\n contentTranslationKey=\"dossier.changeTabModal.content\"\n [outputOnConfirm]=\"tabChange$ | async\"\n [showModalSubject$]=\"showChangeTabModal$\"\n titleTranslationKey=\"dossier.changeTabModal.title\"\n (cancelEvent)=\"onChangeTabCancel()\"\n (confirmEvent)=\"onChangeTabConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #dossierListActions>\n <button\n *ngIf=\"canCreateDocument$ | async\"\n cdsButton=\"primary\"\n [disabled]=\"listActionsComponent?.disableStartDossierButton$ | async\"\n (click)=\"startDossier()\"\n >\n {{ 'Start Dossier' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".dossier-list-tabs cds-tab{display:none}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$3.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "directive", type: i10$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i10$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i2$3.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: i10$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i10$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i2$3.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i2$3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i2$3.StatusSelectorComponent, selector: "valtimo-status-selector", inputs: ["statuses", "selectedStatuses", "carbonTheme", "disabled"], outputs: ["selectedStatusesChangeEvent"] }, { kind: "component", type: DossierBulkAssignModalComponent, selector: "valtimo-dossier-bulk-assign-modal", inputs: ["documentIds", "open"], outputs: ["closeEvent"] }, { kind: "component", type: DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: ["loading"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
4487
|
+
], viewQueries: [{ propertyName: "carbonList", first: true, predicate: CarbonListComponent, descendants: true }, { propertyName: "listActionsComponent", first: true, predicate: DossierListActionsComponent, descendants: true }, { propertyName: "tabsComponent", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 fields: fields$ | async,\n documentItems: documentItems$ | async,\n noResultsMessage: noResultsMessage$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n showAssignModal: showAssignModal$ | async,\n selectedDocumentIds: selectedDocumentIds$ | async,\n statuses: statuses$ | async,\n selectedStatuses: selectedStatuses$ | async,\n showStatusSelector: showStatusSelector$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"forceRefresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngTemplateOutlet=\"bulkAssignModal; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changePageModal\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changeTabModal\"></ng-container>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n [inputDisabled]=\"!obs.loaded\"\n [externalSearchField]=\"obs.showStatusSelector\"\n >\n <valtimo-status-selector\n *ngIf=\"obs.showStatusSelector\"\n [statuses]=\"obs.statuses\"\n [selectedStatuses]=\"obs.selectedStatuses\"\n [disabled]=\"!obs.loaded\"\n (selectedStatusesChangeEvent)=\"onSelectedStatusesChange($event)\"\n ></valtimo-status-selector>\n </valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [initialSortState]=\"pagination.sort\"\n [items]=\"obs.documentItems\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierList\"\n lockedTooltipTranslationKey=\"dossier.rowLocked\"\n [showSelectionColumn]=\"canHaveAssignee\"\n [tableTranslations]=\"tableTranslations\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n (rowClicked)=\"rowClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showAssignModal()\">\n {{ 'dossier.bulkAssign.assign' | translate }}\n </button>\n </ng-container>\n\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"dossierListActions\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"obs.noResultsMessage.isSearchResult ? null : dossierListActions\"\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n ></valtimo-no-results>\n\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs\n *ngIf=\"!visibleDossierTabs; else configuredTabs\"\n type=\"contained\"\n class=\"dossier-list-tabs\"\n >\n <cds-tab\n *ngFor=\"let tab of defaultTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs type=\"contained\" class=\"dossier-list-tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleDossierTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #loading\n ><valtimo-carbon-list [loading]=\"true\">\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div> </valtimo-carbon-list\n></ng-template>\n\n<ng-template #bulkAssignModal let-obs=\"obs\">\n <valtimo-dossier-bulk-assign-modal\n [documentIds]=\"obs.selectedDocumentIds\"\n [open]=\"obs.showAssignModal\"\n (closeEvent)=\"onCloseEvent($event, obs.selectedDocumentIds)\"\n ></valtimo-dossier-bulk-assign-modal>\n</ng-template>\n\n<ng-template #changePageModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changePageModal.confirm\"\n contentTranslationKey=\"dossier.changePageModal.content\"\n [outputOnConfirm]=\"paginationChange$ | async\"\n [showModalSubject$]=\"showChangePageModal$\"\n titleTranslationKey=\"dossier.changePageModal.title\"\n (confirmEvent)=\"onChangePageConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #changeTabModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changeTabModal.confirm\"\n contentTranslationKey=\"dossier.changeTabModal.content\"\n [outputOnConfirm]=\"tabChange$ | async\"\n [showModalSubject$]=\"showChangeTabModal$\"\n titleTranslationKey=\"dossier.changeTabModal.title\"\n (cancelEvent)=\"onChangeTabCancel()\"\n (confirmEvent)=\"onChangeTabConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #dossierListActions>\n <button\n *ngIf=\"canCreateDocument$ | async\"\n cdsButton=\"primary\"\n [disabled]=\"listActionsComponent?.disableStartDossierButton$ | async\"\n (click)=\"startDossier()\"\n >\n {{ 'Start Dossier' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".dossier-list-tabs cds-tab{display:none}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$2.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i2$2.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: i4.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i4.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i2$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: i2$2.StatusSelectorComponent, selector: "valtimo-status-selector", inputs: ["statuses", "selectedStatuses", "carbonTheme", "disabled"], outputs: ["selectedStatusesChangeEvent"] }, { kind: "component", type: DossierBulkAssignModalComponent, selector: "valtimo-dossier-bulk-assign-modal", inputs: ["documentIds", "open"], outputs: ["closeEvent"] }, { kind: "component", type: DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: ["loading"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
3344
4488
|
}
|
|
3345
4489
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierListComponent, decorators: [{
|
|
3346
4490
|
type: Component,
|
|
@@ -3353,7 +4497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
3353
4497
|
DossierListSearchService,
|
|
3354
4498
|
DossierListStatusService,
|
|
3355
4499
|
], template: "<!--\n ~ Copyright 2015-2024 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 fields: fields$ | async,\n documentItems: documentItems$ | async,\n noResultsMessage: noResultsMessage$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n showAssignModal: showAssignModal$ | async,\n selectedDocumentIds: selectedDocumentIds$ | async,\n statuses: statuses$ | async,\n selectedStatuses: selectedStatuses$ | async,\n showStatusSelector: showStatusSelector$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"forceRefresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngTemplateOutlet=\"bulkAssignModal; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changePageModal\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changeTabModal\"></ng-container>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n [inputDisabled]=\"!obs.loaded\"\n [externalSearchField]=\"obs.showStatusSelector\"\n >\n <valtimo-status-selector\n *ngIf=\"obs.showStatusSelector\"\n [statuses]=\"obs.statuses\"\n [selectedStatuses]=\"obs.selectedStatuses\"\n [disabled]=\"!obs.loaded\"\n (selectedStatusesChangeEvent)=\"onSelectedStatusesChange($event)\"\n ></valtimo-status-selector>\n </valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [initialSortState]=\"pagination.sort\"\n [items]=\"obs.documentItems\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierList\"\n lockedTooltipTranslationKey=\"dossier.rowLocked\"\n [showSelectionColumn]=\"canHaveAssignee\"\n [tableTranslations]=\"tableTranslations\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n (rowClicked)=\"rowClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showAssignModal()\">\n {{ 'dossier.bulkAssign.assign' | translate }}\n </button>\n </ng-container>\n\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"dossierListActions\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"obs.noResultsMessage.isSearchResult ? null : dossierListActions\"\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n ></valtimo-no-results>\n\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs\n *ngIf=\"!visibleDossierTabs; else configuredTabs\"\n type=\"contained\"\n class=\"dossier-list-tabs\"\n >\n <cds-tab\n *ngFor=\"let tab of defaultTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs type=\"contained\" class=\"dossier-list-tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleDossierTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #loading\n ><valtimo-carbon-list [loading]=\"true\">\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div> </valtimo-carbon-list\n></ng-template>\n\n<ng-template #bulkAssignModal let-obs=\"obs\">\n <valtimo-dossier-bulk-assign-modal\n [documentIds]=\"obs.selectedDocumentIds\"\n [open]=\"obs.showAssignModal\"\n (closeEvent)=\"onCloseEvent($event, obs.selectedDocumentIds)\"\n ></valtimo-dossier-bulk-assign-modal>\n</ng-template>\n\n<ng-template #changePageModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changePageModal.confirm\"\n contentTranslationKey=\"dossier.changePageModal.content\"\n [outputOnConfirm]=\"paginationChange$ | async\"\n [showModalSubject$]=\"showChangePageModal$\"\n titleTranslationKey=\"dossier.changePageModal.title\"\n (confirmEvent)=\"onChangePageConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #changeTabModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changeTabModal.confirm\"\n contentTranslationKey=\"dossier.changeTabModal.content\"\n [outputOnConfirm]=\"tabChange$ | async\"\n [showModalSubject$]=\"showChangeTabModal$\"\n titleTranslationKey=\"dossier.changeTabModal.title\"\n (cancelEvent)=\"onChangeTabCancel()\"\n (confirmEvent)=\"onChangeTabConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #dossierListActions>\n <button\n *ngIf=\"canCreateDocument$ | async\"\n cdsButton=\"primary\"\n [disabled]=\"listActionsComponent?.disableStartDossierButton$ | async\"\n (click)=\"startDossier()\"\n >\n {{ 'Start Dossier' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".dossier-list-tabs cds-tab{display:none}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
3356
|
-
}], ctorParameters: () => [{ type: DossierListAssigneeService }, { type: i2$
|
|
4500
|
+
}], ctorParameters: () => [{ type: DossierListAssigneeService }, { type: i2$2.BreadcrumbService }, { type: DossierBulkAssignService }, { type: DossierColumnService }, { type: i1.ConfigService }, { type: i2$1.DocumentService }, { type: DossierListService }, { type: i2$2.PageTitleService }, { type: DossierListPaginationService }, { type: DossierParameterService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: DossierListSearchService }, { type: i6.TranslateService }, { type: i7.PermissionService }, { type: DossierListStatusService }], propDecorators: { carbonList: [{
|
|
3357
4501
|
type: ViewChild,
|
|
3358
4502
|
args: [CarbonListComponent]
|
|
3359
4503
|
}], listActionsComponent: [{
|
|
@@ -3459,13 +4603,13 @@ class DossierUpdateComponent {
|
|
|
3459
4603
|
returnZero() {
|
|
3460
4604
|
return 0;
|
|
3461
4605
|
}
|
|
3462
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierUpdateComponent, deps: [{ token:
|
|
3463
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierUpdateComponent, selector: "valtimo-dossier-update", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: [""], dependencies: [{ kind: "directive", type:
|
|
4606
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierUpdateComponent, deps: [{ token: i1$3.TaskService }, { token: i2$1.DocumentService }, { token: i1$1.ActivatedRoute }, { token: i3$3.ToastrService }, { token: i3$1.Location }, { token: DossierService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4607
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierUpdateComponent, selector: "valtimo-dossier-update", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: [""], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i2$2.CamundaFormComponent, selector: "valtimo-camunda-form", inputs: ["componentName", "formFields"], outputs: ["submitted"] }, { kind: "pipe", type: i3$1.KeyValuePipe, name: "keyvalue" }] }); }
|
|
3464
4608
|
}
|
|
3465
4609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierUpdateComponent, decorators: [{
|
|
3466
4610
|
type: Component,
|
|
3467
4611
|
args: [{ selector: 'valtimo-dossier-update', template: "<!--\n ~ Copyright 2015-2024 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" }]
|
|
3468
|
-
}], ctorParameters: () => [{ type:
|
|
4612
|
+
}], ctorParameters: () => [{ type: i1$3.TaskService }, { type: i2$1.DocumentService }, { type: i1$1.ActivatedRoute }, { type: i3$3.ToastrService }, { type: i3$1.Location }, { type: DossierService }] });
|
|
3469
4613
|
|
|
3470
4614
|
/*
|
|
3471
4615
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -3674,7 +4818,7 @@ class DossierModule {
|
|
|
3674
4818
|
SearchFieldsModule,
|
|
3675
4819
|
PageModule,
|
|
3676
4820
|
FormModule,
|
|
3677
|
-
InputModule,
|
|
4821
|
+
InputModule$1,
|
|
3678
4822
|
FormModule$1,
|
|
3679
4823
|
NgbModule,
|
|
3680
4824
|
LoadingModule,
|
|
@@ -3695,7 +4839,9 @@ class DossierModule {
|
|
|
3695
4839
|
RenderInPageHeaderDirectiveModule,
|
|
3696
4840
|
TagModule,
|
|
3697
4841
|
DialogModule,
|
|
3698
|
-
ValtimoCdsOverflowButtonDirectiveModule
|
|
4842
|
+
ValtimoCdsOverflowButtonDirectiveModule,
|
|
4843
|
+
DossierDetailWidgetsComponent,
|
|
4844
|
+
DossierDetailTaskListComponent], exports: [DossierListComponent, DossierDetailComponent] }); }
|
|
3699
4845
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierModule, imports: [CommonModule,
|
|
3700
4846
|
DossierRoutingModule,
|
|
3701
4847
|
ListModule,
|
|
@@ -3738,7 +4884,7 @@ class DossierModule {
|
|
|
3738
4884
|
SearchFieldsModule,
|
|
3739
4885
|
PageModule,
|
|
3740
4886
|
FormModule,
|
|
3741
|
-
InputModule,
|
|
4887
|
+
InputModule$1,
|
|
3742
4888
|
FormModule$1,
|
|
3743
4889
|
NgbModule,
|
|
3744
4890
|
LoadingModule,
|
|
@@ -3758,7 +4904,9 @@ class DossierModule {
|
|
|
3758
4904
|
RenderInPageHeaderDirectiveModule,
|
|
3759
4905
|
TagModule,
|
|
3760
4906
|
DialogModule,
|
|
3761
|
-
ValtimoCdsOverflowButtonDirectiveModule
|
|
4907
|
+
ValtimoCdsOverflowButtonDirectiveModule,
|
|
4908
|
+
DossierDetailWidgetsComponent,
|
|
4909
|
+
DossierDetailTaskListComponent] }); }
|
|
3762
4910
|
}
|
|
3763
4911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierModule, decorators: [{
|
|
3764
4912
|
type: NgModule,
|
|
@@ -3825,7 +4973,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
3825
4973
|
SearchFieldsModule,
|
|
3826
4974
|
PageModule,
|
|
3827
4975
|
FormModule,
|
|
3828
|
-
InputModule,
|
|
4976
|
+
InputModule$1,
|
|
3829
4977
|
FormModule$1,
|
|
3830
4978
|
NgbModule,
|
|
3831
4979
|
LoadingModule,
|
|
@@ -3847,6 +4995,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
3847
4995
|
TagModule,
|
|
3848
4996
|
DialogModule,
|
|
3849
4997
|
ValtimoCdsOverflowButtonDirectiveModule,
|
|
4998
|
+
DossierDetailWidgetsComponent,
|
|
4999
|
+
DossierDetailTaskListComponent,
|
|
3850
5000
|
],
|
|
3851
5001
|
exports: [DossierListComponent, DossierDetailComponent],
|
|
3852
5002
|
}]
|
|
@@ -3875,5 +5025,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
3875
5025
|
* Generated bundle index. Do not edit.
|
|
3876
5026
|
*/
|
|
3877
5027
|
|
|
3878
|
-
export { ApiTabType, CASE_TAB_TOKEN, CASE_WITHOUT_STATUS_STATUS, DEFAULT_DOSSIER_LIST_TABS, DEFAULT_TABS, DEFAULT_TAB_COMPONENTS, DOSSIER_LIST_NO_RESULTS_MESSAGE, DOSSIER_LIST_TABLE_TRANSLATIONS, DefaultTabs, DossierBulkAssignModalComponent, DossierBulkAssignService, DossierColumnService, DossierDetailComponent, DossierDetailTabAuditComponent, DossierDetailTabDocumentsComponent, DossierDetailTabNotesComponent, DossierDetailTabProgressComponent, DossierDetailTabSummaryComponent, DossierListAssigneeService, DossierListComponent, DossierListPaginationService, DossierListSearchService, DossierListService, DossierListStatusService, DossierModule, DossierParameterService, DossierService, DossierTabApiService, DossierTabService, StartModalService, TAB_MAP, TabImpl, TabLoaderImpl };
|
|
5028
|
+
export { ApiTabType, CASE_TAB_TOKEN, CASE_WITHOUT_STATUS_STATUS, CUSTOM_CASE_WIDGET_TOKEN, CaseWidgetDisplayTypeKey, CaseWidgetType, DEFAULT_DOSSIER_LIST_TABS, DEFAULT_TABS, DEFAULT_TAB_COMPONENTS, DOSSIER_LIST_NO_RESULTS_MESSAGE, DOSSIER_LIST_TABLE_TRANSLATIONS, DefaultTabs, DossierBulkAssignModalComponent, DossierBulkAssignService, DossierColumnService, DossierDetailComponent, DossierDetailTabAuditComponent, DossierDetailTabDocumentsComponent, DossierDetailTabNotesComponent, DossierDetailTabProgressComponent, DossierDetailTabSummaryComponent, DossierListAssigneeService, DossierListComponent, DossierListPaginationService, DossierListSearchService, DossierListService, DossierListStatusService, DossierModule, DossierParameterService, DossierService, DossierTabApiService, DossierTabService, DossierWidgetsApiService, DossierWidgetsLayoutService, StartModalService, TAB_MAP, TabImpl, TabLoaderImpl, WIDGET_HEIGHT_1X, WIDGET_WIDTH_1X };
|
|
3879
5029
|
//# sourceMappingURL=valtimo-dossier.mjs.map
|