@valtimo/iko 13.4.1 → 13.5.0-release-0.0.0.3
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/fesm2022/valtimo-iko.mjs +1117 -368
- package/fesm2022/valtimo-iko.mjs.map +1 -1
- package/lib/components/iko-list/iko-list.component.d.ts.map +1 -1
- package/lib/components/iko-management/iko-management.component.d.ts +18 -9
- package/lib/components/iko-management/iko-management.component.d.ts.map +1 -1
- package/lib/components/iko-management/upload-modal/iko-management-upload-modal.component.d.ts +49 -0
- package/lib/components/iko-management/upload-modal/iko-management-upload-modal.component.d.ts.map +1 -0
- package/lib/components/iko-management/upload-modal/iko-management-upload.constants.d.ts +13 -0
- package/lib/components/iko-management/upload-modal/iko-management-upload.constants.d.ts.map +1 -0
- package/lib/components/iko-management/upload-modal/step/iko-management-upload-step.component.d.ts +9 -0
- package/lib/components/iko-management/upload-modal/step/iko-management-upload-step.component.d.ts.map +1 -0
- package/lib/components/iko-management/view-modal/iko-management-view-modal.component.d.ts +11 -5
- package/lib/components/iko-management/view-modal/iko-management-view-modal.component.d.ts.map +1 -1
- package/lib/components/iko-management-api/iko-management-api.component.d.ts +5 -3
- package/lib/components/iko-management-api/iko-management-api.component.d.ts.map +1 -1
- package/lib/components/iko-management-api/repository-modal/iko-management-repository-modal.component.d.ts +8 -3
- package/lib/components/iko-management-api/repository-modal/iko-management-repository-modal.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/list/iko-management-list.component.d.ts +1 -1
- package/lib/components/iko-management-details/components/list/iko-management-list.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/list-modal/list-modal.component.d.ts +1 -1
- package/lib/components/iko-management-details/components/list-modal/list-modal.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/search-actions/iko-management-search-actions.component.d.ts +24 -9
- package/lib/components/iko-management-details/components/search-actions/iko-management-search-actions.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/search-actions/search-action-modal/search-action-modal.component.d.ts +13 -8
- package/lib/components/iko-management-details/components/search-actions/search-action-modal/search-action-modal.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/search-fields/iko-management-search-fields.component.d.ts +5 -2
- package/lib/components/iko-management-details/components/search-fields/iko-management-search-fields.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/search-fields/search-field-modal/search-field-modal.component.d.ts +8 -1
- package/lib/components/iko-management-details/components/search-fields/search-field-modal/search-field-modal.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/tab-detail-modal/iko-management-tab-details-modal.component.d.ts +1 -1
- package/lib/components/iko-management-details/components/tab-detail-modal/iko-management-tab-details-modal.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/tabs/iko-management-tabs.component.d.ts +1 -1
- package/lib/components/iko-management-details/components/tabs/iko-management-tabs.component.d.ts.map +1 -1
- package/lib/components/iko-management-details/components/widgets/iko-management-widgets.component.d.ts +4 -3
- package/lib/components/iko-management-details/components/widgets/iko-management-widgets.component.d.ts.map +1 -1
- package/lib/components/iko-management-properties/iko-management-properties.component.d.ts +4 -2
- package/lib/components/iko-management-properties/iko-management-properties.component.d.ts.map +1 -1
- package/lib/components/iko-search/iko-search.component.d.ts +26 -7
- package/lib/components/iko-search/iko-search.component.d.ts.map +1 -1
- package/lib/components/tabs/iko-widget/iko-widget.component.d.ts +1 -1
- package/lib/components/tabs/iko-widget/iko-widget.component.d.ts.map +1 -1
- package/lib/components/widget-collection/iko-widget-collection.component.d.ts +1 -2
- package/lib/components/widget-collection/iko-widget-collection.component.d.ts.map +1 -1
- package/lib/components/widget-custom/iko-widget-custom.component.d.ts +10 -2
- package/lib/components/widget-custom/iko-widget-custom.component.d.ts.map +1 -1
- package/lib/components/widget-field/iko-widget-field.component.d.ts +1 -2
- package/lib/components/widget-field/iko-widget-field.component.d.ts.map +1 -1
- package/lib/components/widget-formio/iko-widget-formio.component.d.ts +9 -3
- package/lib/components/widget-formio/iko-widget-formio.component.d.ts.map +1 -1
- package/lib/components/widget-interactive-table/iko-widget-interactive-table.component.d.ts +3 -1
- package/lib/components/widget-interactive-table/iko-widget-interactive-table.component.d.ts.map +1 -1
- package/lib/components/widget-map/iko-widget-map.component.d.ts +19 -0
- package/lib/components/widget-map/iko-widget-map.component.d.ts.map +1 -0
- package/lib/components/widget-map/index.d.ts +2 -0
- package/lib/components/widget-map/index.d.ts.map +1 -0
- package/lib/components/widget-table/iko-widget-table.component.d.ts +1 -2
- package/lib/components/widget-table/iko-widget-table.component.d.ts.map +1 -1
- package/lib/models/iko-management.model.d.ts +12 -12
- package/lib/models/iko-management.model.d.ts.map +1 -1
- package/lib/models/iko-search-field.model.d.ts +4 -3
- package/lib/models/iko-search-field.model.d.ts.map +1 -1
- package/lib/models/iko-widget.model.d.ts +1 -1
- package/lib/models/iko-widget.model.d.ts.map +1 -1
- package/lib/models/iko.model.d.ts +3 -3
- package/lib/models/iko.model.d.ts.map +1 -1
- package/lib/services/iko-api.service.d.ts +11 -10
- package/lib/services/iko-api.service.d.ts.map +1 -1
- package/lib/services/iko-management-api.service.d.ts +24 -19
- package/lib/services/iko-management-api.service.d.ts.map +1 -1
- package/lib/services/iko-management-widget-api.service.d.ts +2 -3
- package/lib/services/iko-management-widget-api.service.d.ts.map +1 -1
- package/lib/services/iko-menu.service.d.ts +1 -0
- package/lib/services/iko-menu.service.d.ts.map +1 -1
- package/lib/services/iko-tab.service.d.ts +3 -3
- package/lib/services/iko-tab.service.d.ts.map +1 -1
- package/package.json +1 -1
package/fesm2022/valtimo-iko.mjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef, signal, computed, effect, EventEmitter, Output, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i4 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { CommonModule, DOCUMENT, AsyncPipe, NgIf, NgClass } from '@angular/common';
|
|
5
5
|
import * as i2 from '@valtimo/shared';
|
|
6
|
-
import { BaseApiService, getDisplayTypeParametersView, ROLE_ADMIN, IKO_TOKEN } from '@valtimo/shared';
|
|
7
|
-
import * as
|
|
6
|
+
import { BaseApiService, InterceptorSkipHeader, getDisplayTypeParametersView, validateBsn, ROLE_ADMIN, IKO_TOKEN } from '@valtimo/shared';
|
|
7
|
+
import * as i1$2 from '@angular/router';
|
|
8
8
|
import { RouterModule } from '@angular/router';
|
|
9
9
|
import { AuthGuardService } from '@valtimo/security';
|
|
10
|
-
import * as
|
|
11
|
-
import { CarbonListModule, FormIoModule, RenderInPageHeaderDirective, SelectModule, CARBON_CONSTANTS, ValtimoCdsModalDirective, ConfirmationModalModule, ViewType, ValuePathSelectorPrefix, InputLabelModule, runAfterCarbonModalClosed, CarbonMultiInputModule,
|
|
10
|
+
import * as i2$2 from '@valtimo/components';
|
|
11
|
+
import { CarbonListModule, FormIoModule, FitPageDirective, RenderInPageHeaderDirective, SelectModule, CARBON_CONSTANTS, ValtimoCdsModalDirective, AutoKeyInputComponent, ConfirmationModalModule, ViewType, ValuePathSelectorPrefix, InputLabelModule, runAfterCarbonModalClosed, CarbonMultiInputModule, InputModule as InputModule$1, DatePickerModule, ParagraphModule, DateTimePickerComponent, FormModule } from '@valtimo/components';
|
|
12
12
|
import * as i6 from 'carbon-components-angular';
|
|
13
|
-
import { InputModule, PaginationModule, TilesModule, ButtonModule, ModalModule, TabsModule, IconModule, LayerModule, DropdownModule,
|
|
13
|
+
import { InputModule, PaginationModule, TilesModule, ButtonModule, ModalModule, TabsModule, IconModule, LayerModule, TooltipModule, DropdownModule, LoadingModule, ToggleModule, NumberModule, ProgressBarModule, CheckboxModule, FileUploaderModule, NotificationModule, TimePickerModule } from 'carbon-components-angular';
|
|
14
14
|
import { BehaviorSubject, filter, of, switchMap, combineLatest, tap, map as map$1, startWith, take, distinctUntilChanged, Subscription, delay } from 'rxjs';
|
|
15
15
|
import * as i2$1 from '@valtimo/layout';
|
|
16
|
-
import { WidgetCollectionComponent, WidgetCustomComponent, WidgetFieldComponent, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetTableComponent, WidgetType, WidgetContainerComponent, WIDGET_MANAGEMENT_SERVICE, WidgetManagementComponent } from '@valtimo/layout';
|
|
17
|
-
import * as
|
|
16
|
+
import { WidgetCollectionComponent, WidgetCustomComponent, WidgetFieldComponent, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetTableComponent, WidgetMapComponent, WidgetType, WidgetContainerComponent, ManagementWidgetDetailsComponent, WIDGET_MANAGEMENT_SERVICE, WidgetManagementComponent } from '@valtimo/layout';
|
|
17
|
+
import * as i5 from '@ngx-translate/core';
|
|
18
18
|
import { TranslateModule, TranslatePipe } from '@ngx-translate/core';
|
|
19
19
|
import * as i1 from '@angular/common/http';
|
|
20
20
|
import { HttpParams } from '@angular/common/http';
|
|
@@ -25,7 +25,7 @@ import * as i3 from '@valtimo/case';
|
|
|
25
25
|
import { CaseListActionsComponent, CaseListService } from '@valtimo/case';
|
|
26
26
|
import * as i1$3 from '@angular/forms';
|
|
27
27
|
import { Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
28
|
-
import { TrashCan16, InformationFilled16, Search16 } from '@carbon/icons';
|
|
28
|
+
import { Information16, TrashCan16, InformationFilled16, Upload16, Search16 } from '@carbon/icons';
|
|
29
29
|
import { toObservable } from '@angular/core/rxjs-interop';
|
|
30
30
|
|
|
31
31
|
/*
|
|
@@ -57,7 +57,7 @@ class IkoApiService extends BaseApiService {
|
|
|
57
57
|
this.globalNotificationService = globalNotificationService;
|
|
58
58
|
this._cachedMenuItems$ = new BehaviorSubject([]);
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
getIkoViews(key, title, page = 0, size = 10000, sort = 'title,asc') {
|
|
61
61
|
const params = new URLSearchParams();
|
|
62
62
|
if (key)
|
|
63
63
|
params.append('key', key);
|
|
@@ -66,22 +66,26 @@ class IkoApiService extends BaseApiService {
|
|
|
66
66
|
params.append('page', page.toString());
|
|
67
67
|
params.append('size', size.toString());
|
|
68
68
|
params.append('sort', sort);
|
|
69
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
69
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view?${params.toString()}`));
|
|
70
70
|
}
|
|
71
|
-
getIkoDetailTabs(
|
|
72
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
71
|
+
getIkoDetailTabs(ikoViewKey) {
|
|
72
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab`));
|
|
73
73
|
}
|
|
74
|
-
|
|
75
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
74
|
+
getIkoSearchActions(ikoViewKey) {
|
|
75
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/search-action`));
|
|
76
76
|
}
|
|
77
|
-
getIkoWidget(
|
|
78
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
77
|
+
getIkoWidget(ikoViewKey, tabKey) {
|
|
78
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget`));
|
|
79
79
|
}
|
|
80
|
-
getIkoWidgetData(
|
|
81
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
80
|
+
getIkoWidgetData(ikoViewKey, tabKey, widgetId, id) {
|
|
81
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget/${widgetId}/data?id=${id}`));
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
return this.httpClient.post(this.getApiUrl(`/v1/iko-
|
|
83
|
+
searchIkoSearchAction(ikoKey, paramKey, filters) {
|
|
84
|
+
return this.httpClient.post(this.getApiUrl(`/v1/iko-view/${ikoKey}/search-action/${paramKey}/search`), filters);
|
|
85
|
+
}
|
|
86
|
+
getDropdownData(provider, ikoViewKey, ikoSearchActionKey, searchFieldKey) {
|
|
87
|
+
const dropdownListKey = encodeURI(ikoViewKey + '_' + ikoSearchActionKey + '_' + searchFieldKey);
|
|
88
|
+
return this.httpClient.get(this.getApiUrl(`/v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`));
|
|
85
89
|
}
|
|
86
90
|
handleAction(action, resolved = null) {
|
|
87
91
|
if (!action)
|
|
@@ -126,12 +130,12 @@ class IkoApiService extends BaseApiService {
|
|
|
126
130
|
});
|
|
127
131
|
}
|
|
128
132
|
resolveProperty(property, resolved) {
|
|
129
|
-
return property ? (resolved ? resolved[property] : property) : null;
|
|
133
|
+
return property ? (resolved ? String(resolved[property]) : property) : null;
|
|
130
134
|
}
|
|
131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
132
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoApiService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }, { token: i2.GlobalNotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
136
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoApiService, providedIn: 'root' }); }
|
|
133
137
|
}
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoApiService, decorators: [{
|
|
135
139
|
type: Injectable,
|
|
136
140
|
args: [{
|
|
137
141
|
providedIn: 'root',
|
|
@@ -160,8 +164,8 @@ class IkoTabService {
|
|
|
160
164
|
get activeTabKey$() {
|
|
161
165
|
return this.activeTab$.pipe(map(tab => tab.key));
|
|
162
166
|
}
|
|
163
|
-
get
|
|
164
|
-
return this.
|
|
167
|
+
get ikoViewKey$() {
|
|
168
|
+
return this._ikoViewKey$.pipe(filter(key => !!key));
|
|
165
169
|
}
|
|
166
170
|
get entryId$() {
|
|
167
171
|
return this._entryId$.pipe(filter(key => !!key));
|
|
@@ -169,25 +173,25 @@ class IkoTabService {
|
|
|
169
173
|
constructor(logger) {
|
|
170
174
|
this.logger = logger;
|
|
171
175
|
this._activeTab$ = new BehaviorSubject(null);
|
|
172
|
-
this.
|
|
176
|
+
this._ikoViewKey$ = new BehaviorSubject(null);
|
|
173
177
|
this._entryId$ = new BehaviorSubject(null);
|
|
174
178
|
}
|
|
175
179
|
setActiveTab(tab) {
|
|
176
180
|
this._activeTab$.next(tab);
|
|
177
181
|
this.logger.debug(`Active IKO tab set to ${JSON.stringify(tab)}`);
|
|
178
182
|
}
|
|
179
|
-
|
|
180
|
-
this.
|
|
181
|
-
this.logger.debug(`Active IKO
|
|
183
|
+
setIkoViewKey(key) {
|
|
184
|
+
this._ikoViewKey$.next(key);
|
|
185
|
+
this.logger.debug(`Active IKO view key set to ${key}`);
|
|
182
186
|
}
|
|
183
187
|
setEntryId(id) {
|
|
184
188
|
this._entryId$.next(id);
|
|
185
189
|
this.logger.debug(`Active IKO entry id set to ${id}`);
|
|
186
190
|
}
|
|
187
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
188
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoTabService, deps: [{ token: i1$1.NGXLogger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
192
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoTabService, providedIn: 'root' }); }
|
|
189
193
|
}
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoTabService, decorators: [{
|
|
191
195
|
type: Injectable,
|
|
192
196
|
args: [{ providedIn: 'root' }]
|
|
193
197
|
}], ctorParameters: () => [{ type: i1$1.NGXLogger }] });
|
|
@@ -213,36 +217,48 @@ class IkoManagementApiService extends BaseApiService {
|
|
|
213
217
|
this.httpClient = httpClient;
|
|
214
218
|
this.configService = configService;
|
|
215
219
|
}
|
|
216
|
-
|
|
220
|
+
getIkoViews(key, title, page = 0, size = 100, sort = 'title,asc') {
|
|
217
221
|
let params = new HttpParams().set('page', page).set('size', size).set('sort', sort);
|
|
218
222
|
if (key)
|
|
219
223
|
params = params.set('key', key);
|
|
220
224
|
if (title)
|
|
221
225
|
params = params.set('title', title);
|
|
222
|
-
return this.httpClient.get(this.getApiUrl('/v1/iko-
|
|
226
|
+
return this.httpClient.get(this.getApiUrl('/v1/iko-view'), {
|
|
227
|
+
params,
|
|
228
|
+
});
|
|
223
229
|
}
|
|
224
|
-
|
|
225
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
230
|
+
getIkoView(key) {
|
|
231
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${key}`));
|
|
226
232
|
}
|
|
227
|
-
|
|
228
|
-
return this.httpClient.post(this.getApiUrl(`management/v1/iko-
|
|
233
|
+
createIkoView(key, body) {
|
|
234
|
+
return this.httpClient.post(this.getApiUrl(`management/v1/iko-view/${key}`), body);
|
|
229
235
|
}
|
|
230
|
-
|
|
231
|
-
return this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
236
|
+
updateIkoView(key, body) {
|
|
237
|
+
return this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${key}`), body);
|
|
232
238
|
}
|
|
233
|
-
|
|
234
|
-
return this.httpClient.delete(this.getApiUrl(`management/v1/iko-
|
|
239
|
+
deleteIkoView(key) {
|
|
240
|
+
return this.httpClient.delete(this.getApiUrl(`management/v1/iko-view/${key}`));
|
|
241
|
+
}
|
|
242
|
+
exportIKOConfiguration(key) {
|
|
243
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-view/${key}/export`), {
|
|
244
|
+
observe: 'response',
|
|
245
|
+
responseType: 'blob',
|
|
246
|
+
headers: InterceptorSkipHeader,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
importConfigurationZip(file) {
|
|
250
|
+
return this.httpClient.post(this.getApiUrl(`management/v1/iko-view/import`), file);
|
|
235
251
|
}
|
|
236
252
|
getIkoRepositoryPropertyFields(type) {
|
|
237
253
|
return this.httpClient.get(this.getApiUrl(`management/v1/iko-property-fields/${type}/repository-config`));
|
|
238
254
|
}
|
|
239
|
-
|
|
240
|
-
return this.httpClient.get(this.getApiUrl(`management/v1/iko-property-fields/${type}/
|
|
255
|
+
getIkoViewPropertyFields(type) {
|
|
256
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-property-fields/${type}/view`));
|
|
241
257
|
}
|
|
242
|
-
|
|
258
|
+
getIkoViewType(key) {
|
|
243
259
|
return this.httpClient.get(this.getApiUrl(`/management/v1/iko/${key}`));
|
|
244
260
|
}
|
|
245
|
-
|
|
261
|
+
getManagementIkoViews(key, title, ikoRepositoryConfigKey, page = 0, size = 100, sort = 'title,asc') {
|
|
246
262
|
let params = new HttpParams().set('page', page).set('size', size).set('sort', sort);
|
|
247
263
|
if (key)
|
|
248
264
|
params = params.set('key', key);
|
|
@@ -250,28 +266,30 @@ class IkoManagementApiService extends BaseApiService {
|
|
|
250
266
|
params = params.set('title', title);
|
|
251
267
|
if (ikoRepositoryConfigKey)
|
|
252
268
|
params = params.set('ikoRepositoryConfigKey', ikoRepositoryConfigKey);
|
|
253
|
-
return this.httpClient.get(this.getApiUrl(`management/v1/iko-
|
|
269
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-view`), {
|
|
270
|
+
params,
|
|
271
|
+
});
|
|
254
272
|
}
|
|
255
|
-
|
|
256
|
-
return this.httpClient.get(this.getApiUrl(`management/v1/iko-
|
|
273
|
+
getManagementIkoSearchActions(aggregateKey) {
|
|
274
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action`));
|
|
257
275
|
}
|
|
258
|
-
|
|
259
|
-
return this.httpClient.get(this.getApiUrl(`management/v1/iko-
|
|
276
|
+
getIkoSearchAction(aggregateKey, key) {
|
|
277
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${key}`));
|
|
260
278
|
}
|
|
261
|
-
|
|
262
|
-
return this.httpClient.post(this.getApiUrl(`management/v1/iko-
|
|
279
|
+
createIkoSearchAction(aggregateKey, key, body) {
|
|
280
|
+
return this.httpClient.post(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${key}`), body);
|
|
263
281
|
}
|
|
264
|
-
|
|
265
|
-
return this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
282
|
+
updateIkoSearchActions(aggregateKey, body) {
|
|
283
|
+
return this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action`), body);
|
|
266
284
|
}
|
|
267
|
-
|
|
268
|
-
return this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
285
|
+
updateIkoSearchAction(aggregateKey, actionKey, body) {
|
|
286
|
+
return this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${actionKey}`), body);
|
|
269
287
|
}
|
|
270
|
-
|
|
271
|
-
return this.httpClient.delete(this.getApiUrl(`management/v1/iko-
|
|
288
|
+
deleteIkoSearchAction(aggregateKey, key) {
|
|
289
|
+
return this.httpClient.delete(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${key}`));
|
|
272
290
|
}
|
|
273
|
-
|
|
274
|
-
return this.httpClient.get(this.getApiUrl(`management/v1/iko-property-fields/${type}/
|
|
291
|
+
getIkoSearchActionPropertyFields(type) {
|
|
292
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-property-fields/${type}/search-action`));
|
|
275
293
|
}
|
|
276
294
|
getIkoRepositoryConfigs() {
|
|
277
295
|
return this.httpClient.get(this.getApiUrl(`/management/v1/iko`));
|
|
@@ -295,66 +313,78 @@ class IkoManagementApiService extends BaseApiService {
|
|
|
295
313
|
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-types`));
|
|
296
314
|
}
|
|
297
315
|
getIkoTabs(aggregateKey) {
|
|
298
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
316
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${aggregateKey}/tab`));
|
|
299
317
|
}
|
|
300
318
|
getIkoTab(aggregateKey, tabKey) {
|
|
301
|
-
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-
|
|
319
|
+
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/tab/${tabKey}`));
|
|
302
320
|
}
|
|
303
321
|
createIkoTab(aggregateKey, tabKey, body) {
|
|
304
|
-
return this.httpClient.post(this.getApiUrl(`/management/v1/iko-
|
|
322
|
+
return this.httpClient.post(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/tab/${tabKey}`), body);
|
|
305
323
|
}
|
|
306
324
|
updateIkoTabs(aggregateKey, body) {
|
|
307
|
-
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-
|
|
325
|
+
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/tab`), body);
|
|
308
326
|
}
|
|
309
327
|
updateIkoTab(aggregateKey, tabKey, body) {
|
|
310
|
-
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-
|
|
328
|
+
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/tab/${tabKey}`), body);
|
|
311
329
|
}
|
|
312
330
|
deleteIkoTab(aggregateKey, tabKey) {
|
|
313
|
-
return this.httpClient.delete(this.getApiUrl(`/management/v1/iko-
|
|
331
|
+
return this.httpClient.delete(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/tab/${tabKey}`));
|
|
314
332
|
}
|
|
315
333
|
getIkoWidget(aggregateKey, tabKey, widgetKey) {
|
|
316
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
334
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${aggregateKey}/tab/${tabKey}/widget/${widgetKey}`));
|
|
317
335
|
}
|
|
318
336
|
getIkoSearchFields(aggregateKey, requestKey) {
|
|
319
|
-
return this.httpClient.get(this.getApiUrl(`management/v1/iko-
|
|
337
|
+
return this.httpClient.get(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${requestKey}/search-field`));
|
|
320
338
|
}
|
|
321
339
|
getIkoSearchField(aggregateKey, requestKey, key) {
|
|
322
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-
|
|
340
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${aggregateKey}/search-action/${requestKey}/search-field/${key}`));
|
|
323
341
|
}
|
|
324
342
|
createIkoSearchField(aggregateKey, requestKey, key, body) {
|
|
325
|
-
return this.httpClient.post(this.getApiUrl(`management/v1/iko-
|
|
343
|
+
return this.httpClient.post(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${requestKey}/search-field/${key}`), body);
|
|
326
344
|
}
|
|
327
345
|
updateIkoSearchFields(aggregateKey, requestKey, body) {
|
|
328
|
-
return this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
346
|
+
return this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${requestKey}/search-field`), body);
|
|
329
347
|
}
|
|
330
348
|
updateIkoSearchField(aggregateKey, requestKey, fieldKey, body) {
|
|
331
|
-
return this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
349
|
+
return this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${requestKey}/search-field/${fieldKey}`), body);
|
|
332
350
|
}
|
|
333
351
|
deleteIkoSearchField(aggregateKey, requestKey, key) {
|
|
334
|
-
return this.httpClient.delete(this.getApiUrl(`management/v1/iko-
|
|
352
|
+
return this.httpClient.delete(this.getApiUrl(`management/v1/iko-view/${aggregateKey}/search-action/${requestKey}/search-field/${key}`));
|
|
335
353
|
}
|
|
336
354
|
getIkoListColumns(aggregateKey) {
|
|
337
|
-
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-
|
|
355
|
+
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/column`));
|
|
338
356
|
}
|
|
339
357
|
getIkoListColumn(aggregateKey, columnKey) {
|
|
340
|
-
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-
|
|
358
|
+
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/column/${columnKey}`));
|
|
341
359
|
}
|
|
342
360
|
createIkoListColumn(aggregateKey, columnKey, body) {
|
|
343
|
-
return this.httpClient.post(this.getApiUrl(`/management/v1/iko-
|
|
361
|
+
return this.httpClient.post(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/column/${columnKey}`), body);
|
|
344
362
|
}
|
|
345
363
|
updateListColumn(aggregateKey, columnKey, body) {
|
|
346
|
-
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-
|
|
364
|
+
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/column/${columnKey}`), body);
|
|
347
365
|
}
|
|
348
366
|
updateIkoListColumnOrder(aggregateKey, body) {
|
|
349
|
-
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-
|
|
367
|
+
return this.httpClient.put(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/column`), body);
|
|
350
368
|
}
|
|
351
369
|
deleteIkoListColumn(aggregateKey, columnKey) {
|
|
352
|
-
return this.httpClient.delete(this.getApiUrl(`/management/v1/iko-
|
|
370
|
+
return this.httpClient.delete(this.getApiUrl(`/management/v1/iko-view/${aggregateKey}/column/${columnKey}`));
|
|
371
|
+
}
|
|
372
|
+
getDropdownData(provider, ikoViewKey, ikoSearchActionKey, searchFieldKey) {
|
|
373
|
+
const dropdownListKey = encodeURI(ikoViewKey + '_' + ikoSearchActionKey + '_' + searchFieldKey);
|
|
374
|
+
return this.httpClient.get(this.getApiUrl(`/v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`));
|
|
353
375
|
}
|
|
354
|
-
|
|
355
|
-
|
|
376
|
+
postDropdownData(provider, ikoViewKey, ikoSearchActionKey, searchFieldKey, dropdownData) {
|
|
377
|
+
const dropdownListKey = encodeURI(ikoViewKey + '_' + ikoSearchActionKey + '_' + searchFieldKey);
|
|
378
|
+
return this.httpClient.post(this.getApiUrl(`v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`), dropdownData);
|
|
379
|
+
}
|
|
380
|
+
deleteDropdownData(provider, ikoViewKey, ikoSearchActionKey, searchFieldKey) {
|
|
381
|
+
const dropdownListKey = encodeURI(ikoViewKey + '_' + ikoSearchActionKey + '_' + searchFieldKey);
|
|
382
|
+
return this.httpClient.delete(this.getApiUrl(`v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`));
|
|
383
|
+
}
|
|
384
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementApiService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
385
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementApiService, providedIn: 'root' }); }
|
|
356
386
|
}
|
|
357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementApiService, decorators: [{
|
|
358
388
|
type: Injectable,
|
|
359
389
|
args: [{
|
|
360
390
|
providedIn: 'root',
|
|
@@ -379,50 +409,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
379
409
|
class IkoMenuService {
|
|
380
410
|
constructor(ikoApiService) {
|
|
381
411
|
this.ikoApiService = ikoApiService;
|
|
412
|
+
this._IKO_MENU_ITEM_TITLE_TRANSLATION_KEY = 'iko.pageTitle';
|
|
382
413
|
this.appendIkoMenuItems = (menuItems) => {
|
|
383
|
-
const ikoExists = menuItems.some(item => item.title ===
|
|
414
|
+
const ikoExists = menuItems.some(item => item.title === this._IKO_MENU_ITEM_TITLE_TRANSLATION_KEY);
|
|
384
415
|
if (ikoExists)
|
|
385
416
|
return of(menuItems);
|
|
386
|
-
return this.ikoApiService.
|
|
417
|
+
return this.ikoApiService.getIkoViews().pipe(map(ikoItems => {
|
|
387
418
|
this.ikoApiService.setCachedMenuItems(ikoItems.content);
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
419
|
+
let updatedMenuItems = [...menuItems];
|
|
420
|
+
if (ikoItems.content?.length) {
|
|
421
|
+
const ikoSubMenu = ikoItems.content.map((item, index) => ({
|
|
422
|
+
link: ['/iko', item.key],
|
|
423
|
+
title: item.title,
|
|
424
|
+
sequence: index,
|
|
425
|
+
show: true,
|
|
426
|
+
}));
|
|
427
|
+
const ikoMenu = {
|
|
428
|
+
title: this._IKO_MENU_ITEM_TITLE_TRANSLATION_KEY,
|
|
429
|
+
iconClass: 'icon mdi mdi-account',
|
|
430
|
+
show: true,
|
|
431
|
+
sequence: this.getIkoSequenceAfterCases(menuItems),
|
|
432
|
+
children: ikoSubMenu,
|
|
433
|
+
};
|
|
434
|
+
updatedMenuItems = [...menuItems, ikoMenu].sort((a, b) => a.sequence - b.sequence);
|
|
435
|
+
}
|
|
436
|
+
const adminMenuItem = updatedMenuItems.find(item => item.title.toUpperCase().includes('ADMIN') && !item.title.toUpperCase().includes('IKO'));
|
|
437
|
+
if (adminMenuItem && !adminMenuItem.children.some(item => item.title === 'IKO')) {
|
|
403
438
|
adminMenuItem.children = [
|
|
404
439
|
...adminMenuItem.children,
|
|
405
440
|
{
|
|
406
|
-
title:
|
|
441
|
+
title: 'IKO',
|
|
407
442
|
show: true,
|
|
408
|
-
sequence:
|
|
443
|
+
sequence: this.getIkoSequenceAfterCases(adminMenuItem.children ?? []),
|
|
409
444
|
link: ['/iko-management'],
|
|
410
445
|
},
|
|
411
|
-
];
|
|
446
|
+
].sort((a, b) => a.sequence - b.sequence);
|
|
412
447
|
}
|
|
413
|
-
return
|
|
448
|
+
return updatedMenuItems;
|
|
414
449
|
}));
|
|
415
450
|
};
|
|
416
451
|
}
|
|
417
452
|
getIkoSequenceAfterCases(menuItems) {
|
|
418
453
|
const casesItem = menuItems.find(item => item.title === 'Cases' || item.title === 'Dossiers');
|
|
419
|
-
|
|
420
|
-
return casesSequence + 0.5;
|
|
454
|
+
return Number(casesItem?.sequence ?? 0) + 0.5;
|
|
421
455
|
}
|
|
422
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
423
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
456
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoMenuService, deps: [{ token: IkoApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
457
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoMenuService, providedIn: 'root' }); }
|
|
424
458
|
}
|
|
425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoMenuService, decorators: [{
|
|
426
460
|
type: Injectable,
|
|
427
461
|
args: [{ providedIn: 'root' }]
|
|
428
462
|
}], ctorParameters: () => [{ type: IkoApiService }] });
|
|
@@ -439,31 +473,30 @@ class IkoWidgetManagementApiService extends BaseApiService {
|
|
|
439
473
|
this.httpClient = httpClient;
|
|
440
474
|
this.configService = configService;
|
|
441
475
|
this._params$ = new BehaviorSubject(null);
|
|
442
|
-
this.valueResolverApi$ = new BehaviorSubject('');
|
|
443
476
|
}
|
|
444
477
|
initParams(serviceParams) {
|
|
445
478
|
if (!isEqual(serviceParams, this._params))
|
|
446
479
|
this._params$.next(serviceParams);
|
|
447
480
|
}
|
|
448
481
|
getWidgetConfiguration() {
|
|
449
|
-
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.get(this.getApiUrl(
|
|
482
|
+
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.get(this.getApiUrl(`management/v1/iko-view/${params?.aggregateKey}/tab/${params?.widgetTabKey}/widget`))));
|
|
450
483
|
}
|
|
451
484
|
updateWidgetConfiguration(widgets) {
|
|
452
|
-
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
485
|
+
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${params?.aggregateKey}/tab/${params?.widgetTabKey}/widget`), widgets)));
|
|
453
486
|
}
|
|
454
487
|
deleteWidget(widget) {
|
|
455
|
-
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.delete(this.getApiUrl(`management/v1/iko-
|
|
488
|
+
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.delete(this.getApiUrl(`management/v1/iko-view/${params?.aggregateKey}/tab/${params?.widgetTabKey}/widget/${widget.key}`))));
|
|
456
489
|
}
|
|
457
490
|
updateWidget(widget) {
|
|
458
|
-
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.put(this.getApiUrl(`management/v1/iko-
|
|
491
|
+
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.put(this.getApiUrl(`management/v1/iko-view/${params?.aggregateKey}/tab/${params?.widgetTabKey}/widget/${widget.key}`), widget)));
|
|
459
492
|
}
|
|
460
493
|
createWidget(widget) {
|
|
461
|
-
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.post(this.getApiUrl(`management/v1/iko-
|
|
494
|
+
return this.params$.pipe(filter((params) => !!params), switchMap((params) => this.httpClient.post(this.getApiUrl(`management/v1/iko-view/${params?.aggregateKey}/tab/${params?.widgetTabKey}/widget/${widget.key}`), widget)));
|
|
462
495
|
}
|
|
463
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
464
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
496
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetManagementApiService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
497
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetManagementApiService }); }
|
|
465
498
|
}
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
499
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetManagementApiService, decorators: [{
|
|
467
500
|
type: Injectable
|
|
468
501
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
|
|
469
502
|
|
|
@@ -518,18 +551,15 @@ class IkoWidgetCollectionComponent {
|
|
|
518
551
|
this._widgetParams$,
|
|
519
552
|
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
520
553
|
? of(null)
|
|
521
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.
|
|
554
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
522
555
|
}
|
|
523
556
|
onPaginationEvent(event) {
|
|
524
557
|
this._queryParams$.next(`page=${event.currentPage - 1}&size=${event.pageLength}`);
|
|
525
558
|
}
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
}
|
|
529
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IkoWidgetCollectionComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
530
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: IkoWidgetCollectionComponent, isStandalone: true, selector: "valtimo-iko-widget-collection", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-collection\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n @if (obs.widgetConfiguration?.actions?.length >= 1) {\n <button cdsButton=\"ghost\" (click)=\"onWidgetActionClick(obs.widgetConfiguration?.actions[0])\">\n {{ obs.widgetConfiguration?.actions[0].name }}\n </button>\n }\n</valtimo-widget-collection>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: PaginationModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: WidgetCollectionComponent, selector: "valtimo-widget-collection", inputs: ["widgetConfiguration", "widgetData"], outputs: ["paginationEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
559
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetCollectionComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
560
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetCollectionComponent, isStandalone: true, selector: "valtimo-iko-widget-collection", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-collection\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n</valtimo-widget-collection>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: PaginationModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetCollectionComponent, selector: "valtimo-widget-collection", inputs: ["widgetConfiguration", "widgetData"], outputs: ["paginationEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
531
561
|
}
|
|
532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
562
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetCollectionComponent, decorators: [{
|
|
533
563
|
type: Component,
|
|
534
564
|
args: [{ selector: 'valtimo-iko-widget-collection', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
535
565
|
CommonModule,
|
|
@@ -540,7 +570,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
540
570
|
TranslateModule,
|
|
541
571
|
ButtonModule,
|
|
542
572
|
WidgetCollectionComponent,
|
|
543
|
-
], template: "<!--\n ~ Copyright 2015-2025 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-widget-collection\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n
|
|
573
|
+
], template: "<!--\n ~ Copyright 2015-2025 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-widget-collection\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n</valtimo-widget-collection>\n" }]
|
|
544
574
|
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }], propDecorators: { widgetConfiguration: [{
|
|
545
575
|
type: Input
|
|
546
576
|
}], widgetParams: [{
|
|
@@ -581,24 +611,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
581
611
|
* limitations under the License.
|
|
582
612
|
*/
|
|
583
613
|
class IkoWidgetCustomComponent {
|
|
584
|
-
constructor() {
|
|
585
|
-
this._widgetConfigSubject$ = new BehaviorSubject(null);
|
|
586
|
-
}
|
|
587
614
|
set widgetConfiguration(value) {
|
|
588
615
|
if (!value)
|
|
589
616
|
return;
|
|
590
617
|
this._widgetConfigSubject$.next(value);
|
|
591
618
|
}
|
|
619
|
+
set widgetParams(value) {
|
|
620
|
+
this._widgetParams$.next(value);
|
|
621
|
+
}
|
|
592
622
|
get widgetConfig$() {
|
|
593
623
|
return this._widgetConfigSubject$.pipe(filter(config => config !== null));
|
|
594
624
|
}
|
|
595
|
-
|
|
596
|
-
|
|
625
|
+
constructor(ikoApiService, widgetLayoutService) {
|
|
626
|
+
this.ikoApiService = ikoApiService;
|
|
627
|
+
this.widgetLayoutService = widgetLayoutService;
|
|
628
|
+
this._widgetParams$ = new BehaviorSubject(null);
|
|
629
|
+
this._widgetConfigSubject$ = new BehaviorSubject(null);
|
|
630
|
+
this.widgetData$ = combineLatest([
|
|
631
|
+
this._widgetConfigSubject$,
|
|
632
|
+
this._widgetParams$,
|
|
633
|
+
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
634
|
+
? of(null)
|
|
635
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
636
|
+
}
|
|
637
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetCustomComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
638
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetCustomComponent, isStandalone: true, selector: "valtimo-iko-widget-custom", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-custom\n *ngIf=\"{\n widgetConfiguration: widgetConfig$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n [widgetUuid]=\"widgetUuid\"\n>\n</valtimo-widget-custom>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetCustomComponent, selector: "valtimo-widget-custom", inputs: ["widgetConfiguration", "widgetData", "widgetUuid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
597
639
|
}
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
640
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetCustomComponent, decorators: [{
|
|
599
641
|
type: Component,
|
|
600
|
-
args: [{ selector: 'valtimo-iko-widget-custom', standalone: true, imports: [CommonModule, CarbonListModule, TranslateModule, ButtonModule, WidgetCustomComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2025 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-widget-custom\n *ngIf=\"widgetConfig$ | async as
|
|
601
|
-
}], propDecorators: { widgetConfiguration: [{
|
|
642
|
+
args: [{ selector: 'valtimo-iko-widget-custom', standalone: true, imports: [CommonModule, CarbonListModule, TranslateModule, ButtonModule, WidgetCustomComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2025 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-widget-custom\n *ngIf=\"{\n widgetConfiguration: widgetConfig$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n [widgetUuid]=\"widgetUuid\"\n>\n</valtimo-widget-custom>\n" }]
|
|
643
|
+
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }], propDecorators: { widgetConfiguration: [{
|
|
644
|
+
type: Input
|
|
645
|
+
}], widgetParams: [{
|
|
602
646
|
type: Input
|
|
603
647
|
}], widgetUuid: [{
|
|
604
648
|
type: Input
|
|
@@ -654,15 +698,12 @@ class IkoWidgetFieldComponent {
|
|
|
654
698
|
this._widgetParams$,
|
|
655
699
|
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
656
700
|
? of(null)
|
|
657
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.
|
|
658
|
-
}
|
|
659
|
-
onWidgetActionClick(action) {
|
|
660
|
-
this.ikoApiService.handleAction(action);
|
|
701
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
661
702
|
}
|
|
662
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
663
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
703
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetFieldComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
704
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetFieldComponent, isStandalone: true, selector: "valtimo-iko-widget-field", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-field\n [widgetConfiguration]=\"widgetConfiguration$ | async\"\n [widgetData]=\"widgetData$ | async\"\n>\n</valtimo-widget-field>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetFieldComponent, selector: "valtimo-widget-field", inputs: ["widgetConfiguration", "widgetData"], outputs: ["noVisibleFieldsEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
664
705
|
}
|
|
665
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
706
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetFieldComponent, decorators: [{
|
|
666
707
|
type: Component,
|
|
667
708
|
args: [{ selector: 'valtimo-iko-widget-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
668
709
|
CommonModule,
|
|
@@ -718,20 +759,33 @@ class IkoWidgetFormioComponent {
|
|
|
718
759
|
return;
|
|
719
760
|
this._widgetConfigurationSubject$.next(value);
|
|
720
761
|
}
|
|
762
|
+
set widgetParams(value) {
|
|
763
|
+
this._widgetParams$.next(value);
|
|
764
|
+
}
|
|
721
765
|
get widgetConfiguration$() {
|
|
722
766
|
return this._widgetConfigurationSubject$.pipe(filter(config => !!config));
|
|
723
767
|
}
|
|
724
|
-
constructor(
|
|
725
|
-
this.
|
|
768
|
+
constructor(ikoApiService, widgetLayoutService) {
|
|
769
|
+
this.ikoApiService = ikoApiService;
|
|
770
|
+
this.widgetLayoutService = widgetLayoutService;
|
|
771
|
+
this._widgetParams$ = new BehaviorSubject(null);
|
|
726
772
|
this._widgetConfigurationSubject$ = new BehaviorSubject(null);
|
|
773
|
+
this.widgetData$ = combineLatest([
|
|
774
|
+
this.widgetConfiguration$,
|
|
775
|
+
this._widgetParams$,
|
|
776
|
+
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
777
|
+
? of(null)
|
|
778
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
727
779
|
}
|
|
728
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
729
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
780
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetFormioComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
781
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetFormioComponent, isStandalone: true, selector: "valtimo-iko-widget-formio", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-formio\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n [widgetUuid]=\"widgetUuid\"\n>\n</valtimo-widget-formio>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormIoModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetFormioComponent, selector: "valtimo-widget-formio", inputs: ["documentId", "widgetConfiguration", "widgetData", "widgetUuid", "refreshForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
730
782
|
}
|
|
731
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
783
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetFormioComponent, decorators: [{
|
|
732
784
|
type: Component,
|
|
733
|
-
args: [{ selector: 'valtimo-iko-widget-formio', standalone: true, imports: [CommonModule, TranslateModule, FormIoModule, ButtonModule, WidgetFormioComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2025 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-widget-formio\n
|
|
734
|
-
}], ctorParameters: () => [{ type: i2$1.WidgetLayoutService }], propDecorators: { widgetConfiguration: [{
|
|
785
|
+
args: [{ selector: 'valtimo-iko-widget-formio', standalone: true, imports: [CommonModule, TranslateModule, FormIoModule, ButtonModule, WidgetFormioComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2025 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-widget-formio\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n [widgetUuid]=\"widgetUuid\"\n>\n</valtimo-widget-formio>\n" }]
|
|
786
|
+
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }], propDecorators: { widgetConfiguration: [{
|
|
787
|
+
type: Input
|
|
788
|
+
}], widgetParams: [{
|
|
735
789
|
type: Input
|
|
736
790
|
}], widgetUuid: [{
|
|
737
791
|
type: Input
|
|
@@ -792,7 +846,7 @@ class IkoWidgetInteractiveTableComponent {
|
|
|
792
846
|
this.listService.forceRefresh$,
|
|
793
847
|
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
794
848
|
? of(null)
|
|
795
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.
|
|
849
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
796
850
|
}
|
|
797
851
|
onPaginationEvent(event) {
|
|
798
852
|
this._queryParams$.next(`page=${event.currentPage - 1}&size=${event.pageLength}`);
|
|
@@ -800,17 +854,17 @@ class IkoWidgetInteractiveTableComponent {
|
|
|
800
854
|
onRowClickEvent(event, widgetConfiguration) {
|
|
801
855
|
this.ikoApiService.handleAction(widgetConfiguration.properties.rowClickAction, event.resolved);
|
|
802
856
|
}
|
|
803
|
-
onActionEvent(action) {
|
|
804
|
-
this.ikoApiService.handleAction(action);
|
|
857
|
+
onActionEvent(action, resolvedData) {
|
|
858
|
+
this.ikoApiService.handleAction(action, resolvedData);
|
|
805
859
|
}
|
|
806
860
|
onCaseStartEvent(caseDefintion) {
|
|
807
861
|
this.listService.setCaseDefinitionKey(caseDefintion.caseDefinitionKey);
|
|
808
862
|
this.listActionsComponent.startCase();
|
|
809
863
|
}
|
|
810
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
811
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
864
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetInteractiveTableComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }, { token: i3.CaseListService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
865
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetInteractiveTableComponent, isStandalone: true, selector: "valtimo-iko-widget-interactive-table", inputs: { widgetConfiguration: "widgetConfiguration", widgetUuid: "widgetUuid", widgetParams: "widgetParams" }, providers: [CaseListService], viewQueries: [{ propertyName: "listActionsComponent", first: true, predicate: CaseListActionsComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-interactive-table\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetData]=\"obs.widgetData\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n (actionEvent)=\"onActionEvent($event, obs.widgetData.resolved)\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n (rowClickEvent)=\"onRowClickEvent($event, obs.widgetConfiguration)\"\n (caseStartEvent)=\"onCaseStartEvent($event)\"\n>\n</valtimo-widget-interactive-table>\n\n<valtimo-case-list-actions [navigateAfterSubmit]=\"false\"></valtimo-case-list-actions>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: PaginationModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetInteractiveTableComponent, selector: "valtimo-widget-interactive-table", inputs: ["widgetConfiguration", "widgetData"], outputs: ["paginationEvent", "rowClickEvent", "actionEvent", "caseStartEvent"] }, { kind: "component", type: CaseListActionsComponent, selector: "valtimo-case-list-actions", inputs: ["loading", "navigateAfterSubmit"], outputs: ["formFlowComplete", "startButtonDisableEvent"] }, { kind: "ngmodule", type: ModalModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
812
866
|
}
|
|
813
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
867
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetInteractiveTableComponent, decorators: [{
|
|
814
868
|
type: Component,
|
|
815
869
|
args: [{ selector: 'valtimo-iko-widget-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
816
870
|
CommonModule,
|
|
@@ -822,7 +876,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
822
876
|
WidgetInteractiveTableComponent,
|
|
823
877
|
CaseListActionsComponent,
|
|
824
878
|
ModalModule,
|
|
825
|
-
|
|
879
|
+
WidgetFormioComponent,
|
|
880
|
+
], providers: [CaseListService], template: "<!--\n ~ Copyright 2015-2025 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-widget-interactive-table\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetData]=\"obs.widgetData\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n (actionEvent)=\"onActionEvent($event, obs.widgetData.resolved)\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n (rowClickEvent)=\"onRowClickEvent($event, obs.widgetConfiguration)\"\n (caseStartEvent)=\"onCaseStartEvent($event)\"\n>\n</valtimo-widget-interactive-table>\n\n<valtimo-case-list-actions [navigateAfterSubmit]=\"false\"></valtimo-case-list-actions>\n" }]
|
|
826
881
|
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }, { type: i3.CaseListService }], propDecorators: { listActionsComponent: [{
|
|
827
882
|
type: ViewChild,
|
|
828
883
|
args: [CaseListActionsComponent]
|
|
@@ -888,7 +943,7 @@ class IkoWidgetTableComponent {
|
|
|
888
943
|
this._widgetParams$,
|
|
889
944
|
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
890
945
|
? of(null)
|
|
891
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.
|
|
946
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
892
947
|
}
|
|
893
948
|
onPaginationEvent(event) {
|
|
894
949
|
this._queryParams$.next(`page=${event.currentPage - 1}&size=${event.pageLength}`);
|
|
@@ -896,13 +951,10 @@ class IkoWidgetTableComponent {
|
|
|
896
951
|
getPageSizeParam(widgetConfiguration) {
|
|
897
952
|
return `size=${widgetConfiguration.properties.defaultPageSize}`;
|
|
898
953
|
}
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
}
|
|
902
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IkoWidgetTableComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
903
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: IkoWidgetTableComponent, isStandalone: true, selector: "valtimo-iko-widget-table", inputs: { widgetConfiguration: "widgetConfiguration", widgetUuid: "widgetUuid", widgetParams: "widgetParams" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-table\n [widgetData]=\"widgetData$ | async\"\n [widgetConfiguration]=\"widgetConfiguration\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n @if (widgetConfiguration?.actions?.length >= 1) {\n <button cdsButton=\"ghost\" (click)=\"onWidgetActionClick(widgetConfiguration?.actions[0])\">\n {{ widgetConfiguration?.actions[0].name }}\n </button>\n }\n</valtimo-widget-table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: PaginationModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: WidgetTableComponent, selector: "valtimo-widget-table", inputs: ["widgetConfiguration", "widgetData"], outputs: ["paginationEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
954
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetTableComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
955
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetTableComponent, isStandalone: true, selector: "valtimo-iko-widget-table", inputs: { widgetConfiguration: "widgetConfiguration", widgetUuid: "widgetUuid", widgetParams: "widgetParams" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-table\n [widgetData]=\"widgetData$ | async\"\n [widgetConfiguration]=\"widgetConfiguration\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n</valtimo-widget-table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: PaginationModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetTableComponent, selector: "valtimo-widget-table", inputs: ["widgetConfiguration", "widgetData"], outputs: ["paginationEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
904
956
|
}
|
|
905
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
957
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetTableComponent, decorators: [{
|
|
906
958
|
type: Component,
|
|
907
959
|
args: [{ selector: 'valtimo-iko-widget-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
908
960
|
CommonModule,
|
|
@@ -912,7 +964,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
912
964
|
TranslateModule,
|
|
913
965
|
ButtonModule,
|
|
914
966
|
WidgetTableComponent,
|
|
915
|
-
], template: "<!--\n ~ Copyright 2015-2025 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-widget-table\n [widgetData]=\"widgetData$ | async\"\n [widgetConfiguration]=\"widgetConfiguration\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n
|
|
967
|
+
], template: "<!--\n ~ Copyright 2015-2025 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-widget-table\n [widgetData]=\"widgetData$ | async\"\n [widgetConfiguration]=\"widgetConfiguration\"\n (paginationEvent)=\"onPaginationEvent($event)\"\n>\n</valtimo-widget-table>\n" }]
|
|
916
968
|
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }], propDecorators: { widgetConfiguration: [{
|
|
917
969
|
type: Input,
|
|
918
970
|
args: [{ required: true }]
|
|
@@ -938,6 +990,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
938
990
|
* limitations under the License.
|
|
939
991
|
*/
|
|
940
992
|
|
|
993
|
+
/*
|
|
994
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
995
|
+
*
|
|
996
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
997
|
+
* you may not use this file except in compliance with the License.
|
|
998
|
+
* You may obtain a copy of the License at
|
|
999
|
+
*
|
|
1000
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1001
|
+
*
|
|
1002
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1003
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1004
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1005
|
+
* See the License for the specific language governing permissions and
|
|
1006
|
+
* limitations under the License.
|
|
1007
|
+
*/
|
|
1008
|
+
class IkoWidgetMapComponent {
|
|
1009
|
+
set widgetConfiguration(value) {
|
|
1010
|
+
if (!value)
|
|
1011
|
+
return;
|
|
1012
|
+
this.widgetConfiguration$.next(value);
|
|
1013
|
+
}
|
|
1014
|
+
set widgetParams(value) {
|
|
1015
|
+
this._widgetParams$.next(value);
|
|
1016
|
+
}
|
|
1017
|
+
constructor(ikoApiService, widgetLayoutService) {
|
|
1018
|
+
this.ikoApiService = ikoApiService;
|
|
1019
|
+
this.widgetLayoutService = widgetLayoutService;
|
|
1020
|
+
this._widgetParams$ = new BehaviorSubject(null);
|
|
1021
|
+
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
1022
|
+
this.widgetData$ = combineLatest([
|
|
1023
|
+
this.widgetConfiguration$,
|
|
1024
|
+
this._widgetParams$,
|
|
1025
|
+
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
1026
|
+
? of(null)
|
|
1027
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
1028
|
+
}
|
|
1029
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetMapComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1030
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetMapComponent, isStandalone: true, selector: "valtimo-iko-widget-map", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-map\n [widgetConfiguration]=\"widgetConfiguration$ | async\"\n [widgetData]=\"widgetData$ | async\"\n>\n</valtimo-widget-map>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetMapComponent, selector: "valtimo-widget-map", inputs: ["widgetConfiguration", "widgetData"], outputs: ["noVisibleMapEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1031
|
+
}
|
|
1032
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetMapComponent, decorators: [{
|
|
1033
|
+
type: Component,
|
|
1034
|
+
args: [{ selector: 'valtimo-iko-widget-map', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1035
|
+
CommonModule,
|
|
1036
|
+
InputModule,
|
|
1037
|
+
TranslateModule,
|
|
1038
|
+
CarbonListModule,
|
|
1039
|
+
ButtonModule,
|
|
1040
|
+
WidgetMapComponent,
|
|
1041
|
+
], template: "<!--\n ~ Copyright 2015-2025 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-widget-map\n [widgetConfiguration]=\"widgetConfiguration$ | async\"\n [widgetData]=\"widgetData$ | async\"\n>\n</valtimo-widget-map>\n" }]
|
|
1042
|
+
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }], propDecorators: { widgetConfiguration: [{
|
|
1043
|
+
type: Input
|
|
1044
|
+
}], widgetParams: [{
|
|
1045
|
+
type: Input
|
|
1046
|
+
}], widgetUuid: [{
|
|
1047
|
+
type: Input
|
|
1048
|
+
}] } });
|
|
1049
|
+
|
|
1050
|
+
/*
|
|
1051
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1052
|
+
*
|
|
1053
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1054
|
+
* you may not use this file except in compliance with the License.
|
|
1055
|
+
* You may obtain a copy of the License at
|
|
1056
|
+
*
|
|
1057
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1058
|
+
*
|
|
1059
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1060
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1061
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1062
|
+
* See the License for the specific language governing permissions and
|
|
1063
|
+
* limitations under the License.
|
|
1064
|
+
*/
|
|
1065
|
+
|
|
941
1066
|
/*
|
|
942
1067
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
943
1068
|
*
|
|
@@ -964,17 +1089,17 @@ class IkoWidgetComponent {
|
|
|
964
1089
|
this.ikoTabService = ikoTabService;
|
|
965
1090
|
this.ikoApiService = ikoApiService;
|
|
966
1091
|
this.logger = logger;
|
|
967
|
-
this.
|
|
1092
|
+
this.ikoViewKey$ = this.ikoTabService.ikoViewKey$;
|
|
968
1093
|
this.entryId$ = this.ikoTabService.entryId$;
|
|
969
1094
|
this._key$ = new BehaviorSubject('');
|
|
970
1095
|
this.loading$ = new BehaviorSubject(true);
|
|
971
|
-
this.widgets$ = combineLatest([this.
|
|
1096
|
+
this.widgets$ = combineLatest([this.ikoViewKey$, this.key$]).pipe(switchMap(([ikoViewKey, key]) => this.ikoApiService.getIkoWidget(ikoViewKey, key)));
|
|
972
1097
|
this.widgetParams$ = combineLatest([
|
|
973
|
-
this.
|
|
1098
|
+
this.ikoViewKey$,
|
|
974
1099
|
this.key$,
|
|
975
1100
|
this.entryId$,
|
|
976
|
-
]).pipe(map$1(([
|
|
977
|
-
|
|
1101
|
+
]).pipe(map$1(([ikoViewKey, tabKey, entryId]) => ({
|
|
1102
|
+
ikoViewKey,
|
|
978
1103
|
entryId,
|
|
979
1104
|
tabKey,
|
|
980
1105
|
})), tap(widgets => {
|
|
@@ -988,14 +1113,15 @@ class IkoWidgetComponent {
|
|
|
988
1113
|
[WidgetType.TABLE]: IkoWidgetTableComponent,
|
|
989
1114
|
[WidgetType.INTERACTIVE_TABLE]: IkoWidgetInteractiveTableComponent,
|
|
990
1115
|
[WidgetType.COLLECTION]: IkoWidgetCollectionComponent,
|
|
1116
|
+
[WidgetType.MAP]: IkoWidgetMapComponent,
|
|
991
1117
|
};
|
|
992
1118
|
}
|
|
993
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
994
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
1119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetComponent, deps: [{ token: IkoTabService }, { token: IkoApiService }, { token: i1$1.NGXLogger }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoWidgetComponent, isStandalone: true, selector: "ng-component", inputs: { key: "key" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-container\n fitPage\n [spaceAdjustment]=\"-32\"\n [disableOverflow]=\"true\"\n class=\"iko-widget-container\"\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n>\n</valtimo-widget-container>\n", styles: [":host ::ng-deep .widgets-container{overflow:hidden}.iko-widget-container{display:flex;flex-direction:column;overflow:auto}\n/*!\n * Copyright 2015-2025 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: i4.AsyncPipe, name: "async" }, { kind: "component", type: WidgetContainerComponent, selector: "valtimo-widget-container", inputs: ["widgets", "widgetComponentMap", "widgetParams"] }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["spaceAdjustment", "disabled", "disableOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
995
1121
|
}
|
|
996
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetComponent, decorators: [{
|
|
997
1123
|
type: Component,
|
|
998
|
-
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, WidgetContainerComponent], template: "<!--\n ~ Copyright 2015-2025 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-widget-container\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n>\n</valtimo-widget-container>\n" }]
|
|
1124
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, WidgetContainerComponent, FitPageDirective], template: "<!--\n ~ Copyright 2015-2025 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-widget-container\n fitPage\n [spaceAdjustment]=\"-32\"\n [disableOverflow]=\"true\"\n class=\"iko-widget-container\"\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n>\n</valtimo-widget-container>\n", styles: [":host ::ng-deep .widgets-container{overflow:hidden}.iko-widget-container{display:flex;flex-direction:column;overflow:auto}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
999
1125
|
}], ctorParameters: () => [{ type: IkoTabService }, { type: IkoApiService }, { type: i1$1.NGXLogger }], propDecorators: { key: [{
|
|
1000
1126
|
type: Input
|
|
1001
1127
|
}] } });
|
|
@@ -1064,7 +1190,7 @@ class IkoDetailsComponent {
|
|
|
1064
1190
|
href: `/iko/${params.key}/${params.searchKey}`,
|
|
1065
1191
|
routeExtras: { queryParams },
|
|
1066
1192
|
});
|
|
1067
|
-
this.ikoTabService.
|
|
1193
|
+
this.ikoTabService.setIkoViewKey(params.key);
|
|
1068
1194
|
this.ikoTabService.setEntryId(params.id);
|
|
1069
1195
|
}), switchMap(([params]) => this.ikoApiService.getIkoDetailTabs(params.key)), tap((tabs) => this.ikoTabService.setActiveTab(tabs[0])));
|
|
1070
1196
|
}
|
|
@@ -1079,13 +1205,13 @@ class IkoDetailsComponent {
|
|
|
1079
1205
|
const componentRef = this._container.createComponent(TabComponentTypes[tab.type]);
|
|
1080
1206
|
componentRef.instance.key = tab.key;
|
|
1081
1207
|
}
|
|
1082
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1083
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoDetailsComponent, deps: [{ token: i2$2.BreadcrumbService }, { token: IkoApiService }, { token: IkoTabService }, { token: i2$2.PageTitleService }, { token: i1$2.ActivatedRoute }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoDetailsComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "_container", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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=\"{tabs: tabs$ | async, activeTabKey: activeTabKey$ | async} as obs\"\n renderInPageHeader\n>\n <ng-template>\n <cds-tabs class=\"valtimo-iko-details\">\n @for (tab of obs.tabs; track tab.key) {\n <cds-tab\n [active]=\"obs.activeTabKey === tab.key\"\n [heading]=\"tab.title\"\n (selected)=\"onTabSelected(tab)\"\n >\n </cds-tab>\n }\n </cds-tabs>\n </ng-template>\n</ng-container>\n\n<ng-container #content></ng-container>\n", styles: ["::ng-deep .page-actions{margin-left:unset!important}.valtimo-iko-details ::ng-deep .cds--tab-content{display:none}\n/*!\n * Copyright 2015-2025 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i6.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i6.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1084
1210
|
}
|
|
1085
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoDetailsComponent, decorators: [{
|
|
1086
1212
|
type: Component,
|
|
1087
1213
|
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TabsModule, RenderInPageHeaderDirective, ...[IkoTabComponents]], template: "<!--\n ~ Copyright 2015-2025 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=\"{tabs: tabs$ | async, activeTabKey: activeTabKey$ | async} as obs\"\n renderInPageHeader\n>\n <ng-template>\n <cds-tabs class=\"valtimo-iko-details\">\n @for (tab of obs.tabs; track tab.key) {\n <cds-tab\n [active]=\"obs.activeTabKey === tab.key\"\n [heading]=\"tab.title\"\n (selected)=\"onTabSelected(tab)\"\n >\n </cds-tab>\n }\n </cds-tabs>\n </ng-template>\n</ng-container>\n\n<ng-container #content></ng-container>\n", styles: ["::ng-deep .page-actions{margin-left:unset!important}.valtimo-iko-details ::ng-deep .cds--tab-content{display:none}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
1088
|
-
}], ctorParameters: () => [{ type:
|
|
1214
|
+
}], ctorParameters: () => [{ type: i2$2.BreadcrumbService }, { type: IkoApiService }, { type: IkoTabService }, { type: i2$2.PageTitleService }, { type: i1$2.ActivatedRoute }, { type: i5.TranslateService }], propDecorators: { _container: [{
|
|
1089
1215
|
type: ViewChild,
|
|
1090
1216
|
args: ['content', { read: ViewContainerRef, static: true }]
|
|
1091
1217
|
}] } });
|
|
@@ -1123,7 +1249,7 @@ class IkoListComponent {
|
|
|
1123
1249
|
content: currentMenuItem?.title ?? '',
|
|
1124
1250
|
href: `/iko/${params.key}`,
|
|
1125
1251
|
});
|
|
1126
|
-
return this.ikoApiService.
|
|
1252
|
+
return this.ikoApiService.searchIkoSearchAction(params.key, params.searchKey, {
|
|
1127
1253
|
filters: queryParams,
|
|
1128
1254
|
});
|
|
1129
1255
|
}), map$1(res => ({
|
|
@@ -1154,13 +1280,13 @@ class IkoListComponent {
|
|
|
1154
1280
|
queryParamsHandling: 'preserve',
|
|
1155
1281
|
});
|
|
1156
1282
|
}
|
|
1157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
1283
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoListComponent, deps: [{ token: i2$2.BreadcrumbService }, { token: IkoApiService }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoListComponent, isStandalone: true, selector: "valtimo-iko-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <valtimo-no-results\n title=\"{{ 'ikoManagement.search.noResultsTitle' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n description=\"{{ 'ikoManagement.search.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.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", "showActionItems", "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: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
1159
1285
|
}
|
|
1160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoListComponent, decorators: [{
|
|
1161
1287
|
type: Component,
|
|
1162
|
-
args: [{ selector: 'valtimo-iko-list', standalone: true, imports: [CommonModule, CarbonListModule], template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n></valtimo-carbon-list>\n" }]
|
|
1163
|
-
}], ctorParameters: () => [{ type:
|
|
1288
|
+
args: [{ selector: 'valtimo-iko-list', standalone: true, imports: [CommonModule, CarbonListModule, TranslatePipe], template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <valtimo-no-results\n title=\"{{ 'ikoManagement.search.noResultsTitle' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n description=\"{{ 'ikoManagement.search.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n" }]
|
|
1289
|
+
}], ctorParameters: () => [{ type: i2$2.BreadcrumbService }, { type: IkoApiService }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }] });
|
|
1164
1290
|
|
|
1165
1291
|
/*
|
|
1166
1292
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -1187,8 +1313,9 @@ class PropertiesFormComponent {
|
|
|
1187
1313
|
set prefillData(value) {
|
|
1188
1314
|
this.$prefillData.set(value ?? {});
|
|
1189
1315
|
}
|
|
1190
|
-
constructor(fb) {
|
|
1316
|
+
constructor(fb, iconService) {
|
|
1191
1317
|
this.fb = fb;
|
|
1318
|
+
this.iconService = iconService;
|
|
1192
1319
|
this.$fields = signal([]);
|
|
1193
1320
|
this.$prefillData = signal({});
|
|
1194
1321
|
this.$selectItems = computed(() => this.$fields()
|
|
@@ -1208,6 +1335,7 @@ class PropertiesFormComponent {
|
|
|
1208
1335
|
const { prefill, fields } = this.combined();
|
|
1209
1336
|
this.mapPrefillDataToForm(prefill, fields);
|
|
1210
1337
|
});
|
|
1338
|
+
this.iconService.registerAll([Information16]);
|
|
1211
1339
|
}
|
|
1212
1340
|
getFa(key) {
|
|
1213
1341
|
return this.propertiesFormGroup.get(key);
|
|
@@ -1273,10 +1401,10 @@ class PropertiesFormComponent {
|
|
|
1273
1401
|
value: fb.control('', required ? Validators.required : []),
|
|
1274
1402
|
}));
|
|
1275
1403
|
}
|
|
1276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1404
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: PropertiesFormComponent, deps: [{ token: i1$3.FormBuilder }, { token: i6.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1405
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: PropertiesFormComponent, isStandalone: true, selector: "valtimo-iko-management-properties", inputs: { propertiesFormGroup: "propertiesFormGroup", fields: "fields", prefillData: "prefillData" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<form [formGroup]=\"propertiesFormGroup\">\n @for (propertyField of $fields(); track propertyField.key) {\n @switch (true) {\n @case (\n propertyField.type === 'text' ||\n propertyField.type === 'url' ||\n propertyField.type === 'integer'\n ) {\n <cds-label>\n {{ propertyField.title }}\n @if (propertyField.tooltip) {\n <cds-tooltip [caret]=\"true\" [description]=\"propertyField.tooltip\">\n <svg class=\"tooltip-trigger\" cdsIcon=\"information\" size=\"16\"></svg>\n </cds-tooltip>\n }\n <input\n [formControlName]=\"propertyField.key\"\n cdsText\n cdsLayer\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n }\n @case (propertyField.type === 'dropdown') {\n @if (propertyField?.dropdownList) {\n <v-select\n [invalid]=\"getControlInvalid(propertyField.key)\"\n [formControlName]=\"propertyField.key\"\n [items]=\"$selectItems()[propertyField.key]\"\n [title]=\"propertyField.title\"\n [tooltip]=\"propertyField.tooltip\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n ></v-select>\n }\n }\n @case (propertyField.type === 'keyValueList') {\n <div [formArrayName]=\"propertyField.key\">\n @for (keyValueControl of getFa(propertyField.key)?.controls; track keyValueControl) {\n <cds-text-label>\n {{ propertyField.title }}\n @if (propertyField.tooltip) {\n <cds-tooltip [caret]=\"true\" [description]=\"propertyField.tooltip\">\n <svg class=\"tooltip-trigger\" cdsIcon=\"information\" size=\"16\"></svg>\n </cds-tooltip>\n }\n\n <fieldset [formGroupName]=\"$index\">\n <input\n formControlName=\"key\"\n cdsText\n cdsLayer\n [placeholder]=\"'interface.key' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n <input\n formControlName=\"value\"\n cdsText\n cdsLayer\n [placeholder]=\"'interface.value' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"onDeleteRowClick(propertyField.key, $index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </fieldset>\n </cds-text-label>\n }\n\n <button\n cdsButton=\"primary\"\n (click)=\"onAddKeyValue(propertyField.key, propertyField.required)\"\n >\n Add Key Value\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n }\n }\n</form>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}::ng-deep fieldset{margin-top:8px;display:flex;gap:16px}::ng-deep label{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: i6.Tooltip, selector: "cds-tooltip, ibm-tooltip", inputs: ["id", "enterDelayMs", "leaveDelayMs", "disabled", "description", "templateContext"] }] }); }
|
|
1278
1406
|
}
|
|
1279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: PropertiesFormComponent, decorators: [{
|
|
1280
1408
|
type: Component,
|
|
1281
1409
|
args: [{ selector: 'valtimo-iko-management-properties', standalone: true, imports: [
|
|
1282
1410
|
CommonModule,
|
|
@@ -1287,8 +1415,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1287
1415
|
IconModule,
|
|
1288
1416
|
LayerModule,
|
|
1289
1417
|
SelectModule,
|
|
1290
|
-
|
|
1291
|
-
|
|
1418
|
+
TooltipModule,
|
|
1419
|
+
], template: "<!--\n ~ Copyright 2015-2025 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<form [formGroup]=\"propertiesFormGroup\">\n @for (propertyField of $fields(); track propertyField.key) {\n @switch (true) {\n @case (\n propertyField.type === 'text' ||\n propertyField.type === 'url' ||\n propertyField.type === 'integer'\n ) {\n <cds-label>\n {{ propertyField.title }}\n @if (propertyField.tooltip) {\n <cds-tooltip [caret]=\"true\" [description]=\"propertyField.tooltip\">\n <svg class=\"tooltip-trigger\" cdsIcon=\"information\" size=\"16\"></svg>\n </cds-tooltip>\n }\n <input\n [formControlName]=\"propertyField.key\"\n cdsText\n cdsLayer\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n }\n @case (propertyField.type === 'dropdown') {\n @if (propertyField?.dropdownList) {\n <v-select\n [invalid]=\"getControlInvalid(propertyField.key)\"\n [formControlName]=\"propertyField.key\"\n [items]=\"$selectItems()[propertyField.key]\"\n [title]=\"propertyField.title\"\n [tooltip]=\"propertyField.tooltip\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n ></v-select>\n }\n }\n @case (propertyField.type === 'keyValueList') {\n <div [formArrayName]=\"propertyField.key\">\n @for (keyValueControl of getFa(propertyField.key)?.controls; track keyValueControl) {\n <cds-text-label>\n {{ propertyField.title }}\n @if (propertyField.tooltip) {\n <cds-tooltip [caret]=\"true\" [description]=\"propertyField.tooltip\">\n <svg class=\"tooltip-trigger\" cdsIcon=\"information\" size=\"16\"></svg>\n </cds-tooltip>\n }\n\n <fieldset [formGroupName]=\"$index\">\n <input\n formControlName=\"key\"\n cdsText\n cdsLayer\n [placeholder]=\"'interface.key' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n <input\n formControlName=\"value\"\n cdsText\n cdsLayer\n [placeholder]=\"'interface.value' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"onDeleteRowClick(propertyField.key, $index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </fieldset>\n </cds-text-label>\n }\n\n <button\n cdsButton=\"primary\"\n (click)=\"onAddKeyValue(propertyField.key, propertyField.required)\"\n >\n Add Key Value\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n }\n }\n</form>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}::ng-deep fieldset{margin-top:8px;display:flex;gap:16px}::ng-deep label{width:100%}\n"] }]
|
|
1420
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i6.IconService }], propDecorators: { propertiesFormGroup: [{
|
|
1292
1421
|
type: Input,
|
|
1293
1422
|
args: [{ required: true }]
|
|
1294
1423
|
}], fields: [{
|
|
@@ -1308,10 +1437,16 @@ class IkoManagementRepositoryModalComponent {
|
|
|
1308
1437
|
}
|
|
1309
1438
|
set prefillData(value) {
|
|
1310
1439
|
this.$prefillData.set(value);
|
|
1311
|
-
if (!value)
|
|
1312
|
-
return;
|
|
1313
1440
|
this.formGroup.patchValue(value);
|
|
1314
|
-
|
|
1441
|
+
}
|
|
1442
|
+
set modalMode(value) {
|
|
1443
|
+
this._modalMode = value;
|
|
1444
|
+
}
|
|
1445
|
+
get modalMode() {
|
|
1446
|
+
return this._modalMode;
|
|
1447
|
+
}
|
|
1448
|
+
get title() {
|
|
1449
|
+
return this.formGroup.get('title');
|
|
1315
1450
|
}
|
|
1316
1451
|
constructor(fb, ikoManagementApiService, configService) {
|
|
1317
1452
|
this.fb = fb;
|
|
@@ -1323,6 +1458,9 @@ class IkoManagementRepositoryModalComponent {
|
|
|
1323
1458
|
this.enableIkoType = false;
|
|
1324
1459
|
this.disabled$ = new BehaviorSubject(true);
|
|
1325
1460
|
this._ikoRepositoryTypes$ = this.ikoManagementApiService.getIkoRepositoryTypes();
|
|
1461
|
+
this.usedKeys$ = this.ikoManagementApiService
|
|
1462
|
+
.getIkoRepositoryConfigs()
|
|
1463
|
+
.pipe(map$1(response => response.content.map(c => c.key)));
|
|
1326
1464
|
this.ikoRepositoryTypeSelectItems$ = this._ikoRepositoryTypes$.pipe(map$1(types => Object.keys(types).map(typeKey => ({ id: typeKey, text: types[typeKey] }))), tap(() => {
|
|
1327
1465
|
this.disabled$.next(false);
|
|
1328
1466
|
}));
|
|
@@ -1359,19 +1497,13 @@ class IkoManagementRepositoryModalComponent {
|
|
|
1359
1497
|
}
|
|
1360
1498
|
resetForm() {
|
|
1361
1499
|
setTimeout(() => {
|
|
1362
|
-
this.formGroup.reset(
|
|
1363
|
-
title: '',
|
|
1364
|
-
key: '',
|
|
1365
|
-
type: 'iko',
|
|
1366
|
-
properties: {},
|
|
1367
|
-
});
|
|
1368
|
-
this.formGroup.get('key')?.enable();
|
|
1500
|
+
this.formGroup.reset();
|
|
1369
1501
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
1370
1502
|
}
|
|
1371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1372
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1503
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementRepositoryModalComponent, deps: [{ token: i1$3.FormBuilder }, { token: IkoManagementApiService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1504
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoManagementRepositoryModalComponent, isStandalone: true, selector: "valtimo-iko-management-repository-modal", inputs: { open: "open", prefillData: "prefillData", modalMode: "modalMode" }, outputs: { modalClose: "modalClose" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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$ | async\" size=\"sm\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>{{ 'ikoManagement.configureIkoServer' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"formGroup\" class=\"iko-api-form\">\n <cds-label [invalid]=\"getControlInvalid('title')\">\n {{ 'ikoManagement.titleTitle' | translate }}\n\n <input\n [invalid]=\"getControlInvalid('title')\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.titlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys$ | async\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n\n @if (enableIkoType) {\n <v-select\n [invalid]=\"getControlInvalid('type')\"\n formControlName=\"type\"\n [disabled]=\"!enableIkoType\"\n [items]=\"ikoRepositoryTypeSelectItems$ | async\"\n [title]=\"'ikoManagement.typeTitle' | translate\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n ></v-select>\n }\n\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"$prefillData()?.properties\"\n />\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"formGroup.invalid\" cdsButton=\"primary\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}fieldset{display:flex;gap:16px}::ng-deep label{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: PropertiesFormComponent, selector: "valtimo-iko-management-properties", inputs: ["propertiesFormGroup", "fields", "prefillData"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1373
1505
|
}
|
|
1374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementRepositoryModalComponent, decorators: [{
|
|
1375
1507
|
type: Component,
|
|
1376
1508
|
args: [{ selector: 'valtimo-iko-management-repository-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1377
1509
|
CommonModule,
|
|
@@ -1385,11 +1517,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1385
1517
|
PropertiesFormComponent,
|
|
1386
1518
|
SelectModule,
|
|
1387
1519
|
LayerModule,
|
|
1388
|
-
|
|
1520
|
+
AutoKeyInputComponent,
|
|
1521
|
+
], template: "<!--\n ~ Copyright 2015-2025 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$ | async\" size=\"sm\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>{{ 'ikoManagement.configureIkoServer' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"formGroup\" class=\"iko-api-form\">\n <cds-label [invalid]=\"getControlInvalid('title')\">\n {{ 'ikoManagement.titleTitle' | translate }}\n\n <input\n [invalid]=\"getControlInvalid('title')\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.titlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys$ | async\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n\n @if (enableIkoType) {\n <v-select\n [invalid]=\"getControlInvalid('type')\"\n formControlName=\"type\"\n [disabled]=\"!enableIkoType\"\n [items]=\"ikoRepositoryTypeSelectItems$ | async\"\n [title]=\"'ikoManagement.typeTitle' | translate\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n ></v-select>\n }\n\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"$prefillData()?.properties\"\n />\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"formGroup.invalid\" cdsButton=\"primary\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}fieldset{display:flex;gap:16px}::ng-deep label{width:100%}\n"] }]
|
|
1389
1522
|
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: IkoManagementApiService }, { type: i2.ConfigService }], propDecorators: { open: [{
|
|
1390
1523
|
type: Input
|
|
1391
1524
|
}], prefillData: [{
|
|
1392
1525
|
type: Input
|
|
1526
|
+
}], modalMode: [{
|
|
1527
|
+
type: Input
|
|
1393
1528
|
}], modalClose: [{
|
|
1394
1529
|
type: Output
|
|
1395
1530
|
}] } });
|
|
@@ -1417,6 +1552,7 @@ class IkoManagementApiComponent {
|
|
|
1417
1552
|
this.$modalOpen = signal(false);
|
|
1418
1553
|
this.$prefillData = signal(null);
|
|
1419
1554
|
this.$keyToDelete = signal(null);
|
|
1555
|
+
this.$modalMode = signal('add');
|
|
1420
1556
|
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
1421
1557
|
this.disabled$ = new BehaviorSubject(true);
|
|
1422
1558
|
this.loading$ = new BehaviorSubject(true);
|
|
@@ -1454,17 +1590,17 @@ class IkoManagementApiComponent {
|
|
|
1454
1590
|
this.router.navigate(['iko-management', event.key]);
|
|
1455
1591
|
}
|
|
1456
1592
|
openModal() {
|
|
1593
|
+
this.$modalMode.set('add');
|
|
1457
1594
|
this.$modalOpen.set(true);
|
|
1458
1595
|
}
|
|
1459
1596
|
closeModal(item) {
|
|
1460
1597
|
this.$modalOpen.set(false);
|
|
1461
1598
|
this.disable();
|
|
1462
|
-
const prefillData = this.$prefillData();
|
|
1463
1599
|
this.$prefillData.set(null);
|
|
1464
1600
|
if (!item)
|
|
1465
1601
|
return;
|
|
1466
1602
|
let saveObservable;
|
|
1467
|
-
if (
|
|
1603
|
+
if (this.$modalMode() === 'edit') {
|
|
1468
1604
|
saveObservable = this.ikoManagementApiService.updateIkoRepositoryConfig(item.key, item);
|
|
1469
1605
|
}
|
|
1470
1606
|
else {
|
|
@@ -1479,6 +1615,7 @@ class IkoManagementApiComponent {
|
|
|
1479
1615
|
});
|
|
1480
1616
|
}
|
|
1481
1617
|
onEditClick(item) {
|
|
1618
|
+
this.$modalMode.set('edit');
|
|
1482
1619
|
this.$prefillData.set(item);
|
|
1483
1620
|
this.$modalOpen.set(true);
|
|
1484
1621
|
}
|
|
@@ -1501,10 +1638,10 @@ class IkoManagementApiComponent {
|
|
|
1501
1638
|
this.loading$.next(true);
|
|
1502
1639
|
this._reload$.next(null);
|
|
1503
1640
|
}
|
|
1504
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1505
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
1641
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementApiComponent, deps: [{ token: IkoManagementApiService }, { token: i2$2.PageTitleService }, { token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1642
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementApiComponent, isStandalone: true, selector: "valtimo-iko-management-api", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [items]=\"apiConfigs$ | async\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addViewButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addViewButton\"\n [description]=\"'ikoManagement.views.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.views.noResultsTitle' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addViewButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'ikoManagement.addApiConfig' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<valtimo-iko-management-repository-modal\n [open]=\"$modalOpen()\"\n [prefillData]=\"$prefillData()\"\n [modalMode]=\"$modalMode()\"\n (modalClose)=\"closeModal($event)\"\n></valtimo-iko-management-repository-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.views.deleteContent\"\n [outputOnConfirm]=\"$keyToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n", styles: [".iko-api-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.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", "showActionItems", "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: TabsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: LayerModule }, { kind: "ngmodule", type: SelectModule }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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: IkoManagementRepositoryModalComponent, selector: "valtimo-iko-management-repository-modal", inputs: ["open", "prefillData", "modalMode"], outputs: ["modalClose"] }] }); }
|
|
1506
1643
|
}
|
|
1507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1644
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementApiComponent, decorators: [{
|
|
1508
1645
|
type: Component,
|
|
1509
1646
|
args: [{ selector: 'valtimo-iko-management-api', standalone: true, imports: [
|
|
1510
1647
|
CommonModule,
|
|
@@ -1522,8 +1659,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1522
1659
|
SelectModule,
|
|
1523
1660
|
ConfirmationModalModule,
|
|
1524
1661
|
IkoManagementRepositoryModalComponent,
|
|
1525
|
-
], template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [items]=\"apiConfigs$ | async\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addViewButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addViewButton\"\n [description]=\"'ikoManagement.views.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.views.noResultsTitle' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addViewButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'ikoManagement.addApiConfig' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<valtimo-iko-management-repository-modal\n [open]=\"$modalOpen()\"\n [prefillData]=\"$prefillData()\"\n (modalClose)=\"closeModal($event)\"\n></valtimo-iko-management-repository-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.views.deleteContent\"\n [outputOnConfirm]=\"$keyToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n", styles: [".iko-api-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
1526
|
-
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type:
|
|
1662
|
+
], template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [items]=\"apiConfigs$ | async\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addViewButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addViewButton\"\n [description]=\"'ikoManagement.views.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.views.noResultsTitle' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addViewButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'ikoManagement.addApiConfig' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<valtimo-iko-management-repository-modal\n [open]=\"$modalOpen()\"\n [prefillData]=\"$prefillData()\"\n [modalMode]=\"$modalMode()\"\n (modalClose)=\"closeModal($event)\"\n></valtimo-iko-management-repository-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.views.deleteContent\"\n [outputOnConfirm]=\"$keyToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n", styles: [".iko-api-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
1663
|
+
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i2$2.PageTitleService }, { type: i1$2.Router }] });
|
|
1527
1664
|
|
|
1528
1665
|
/*
|
|
1529
1666
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -1639,13 +1776,14 @@ var SearchFieldDataType;
|
|
|
1639
1776
|
SearchFieldDataType["DATETIME"] = "datetime";
|
|
1640
1777
|
SearchFieldDataType["TIME"] = "time";
|
|
1641
1778
|
SearchFieldDataType["BOOLEAN"] = "boolean";
|
|
1779
|
+
SearchFieldDataType["BSN"] = "bsn";
|
|
1642
1780
|
})(SearchFieldDataType || (SearchFieldDataType = {}));
|
|
1643
1781
|
var SearchFieldFieldType;
|
|
1644
1782
|
(function (SearchFieldFieldType) {
|
|
1645
1783
|
SearchFieldFieldType["SINGLE"] = "single";
|
|
1646
1784
|
SearchFieldFieldType["RANGE"] = "range";
|
|
1647
|
-
SearchFieldFieldType["SINGLE_SELECT_DROPDOWN"] = "
|
|
1648
|
-
SearchFieldFieldType["MULTI_SELECT_DROPDOWN"] = "
|
|
1785
|
+
SearchFieldFieldType["SINGLE_SELECT_DROPDOWN"] = "single-select-dropdown";
|
|
1786
|
+
SearchFieldFieldType["MULTI_SELECT_DROPDOWN"] = "multi-select-dropdown";
|
|
1649
1787
|
})(SearchFieldFieldType || (SearchFieldFieldType = {}));
|
|
1650
1788
|
var SearchFieldMatchType;
|
|
1651
1789
|
(function (SearchFieldMatchType) {
|
|
@@ -1690,13 +1828,23 @@ var SearchDropdownDataProvider;
|
|
|
1690
1828
|
* limitations under the License.
|
|
1691
1829
|
*/
|
|
1692
1830
|
class IkoManagementSearchFieldModalComponent {
|
|
1831
|
+
set modalMode(value) {
|
|
1832
|
+
this._modalMode = value;
|
|
1833
|
+
}
|
|
1834
|
+
get modalMode() {
|
|
1835
|
+
return this._modalMode;
|
|
1836
|
+
}
|
|
1693
1837
|
set prefillData(value) {
|
|
1694
1838
|
this._prefillData = value;
|
|
1839
|
+
this.$selectedKey.set(value?.key);
|
|
1695
1840
|
this.setPrefilledForm(value);
|
|
1696
1841
|
}
|
|
1697
1842
|
get prefillData() {
|
|
1698
1843
|
return this._prefillData;
|
|
1699
1844
|
}
|
|
1845
|
+
get title() {
|
|
1846
|
+
return this.formGroup.get('title');
|
|
1847
|
+
}
|
|
1700
1848
|
get dataType() {
|
|
1701
1849
|
return this.formGroup.get('dataType');
|
|
1702
1850
|
}
|
|
@@ -1748,6 +1896,9 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
1748
1896
|
this.iconService = iconService;
|
|
1749
1897
|
this.fb = fb;
|
|
1750
1898
|
this.translateService = translateService;
|
|
1899
|
+
this.usedKeys = [];
|
|
1900
|
+
this._modalMode = 'add';
|
|
1901
|
+
this.$selectedKey = signal('');
|
|
1751
1902
|
this.closeEvent = new EventEmitter();
|
|
1752
1903
|
this.formGroup = this.fb.group({
|
|
1753
1904
|
key: this.fb.control('', Validators.required),
|
|
@@ -1804,6 +1955,10 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
1804
1955
|
content: this.translateService.instant('searchFields.time'),
|
|
1805
1956
|
id: SearchFieldDataType.TIME,
|
|
1806
1957
|
},
|
|
1958
|
+
{
|
|
1959
|
+
content: this.translateService.instant('searchFields.bsn'),
|
|
1960
|
+
id: SearchFieldDataType.BSN,
|
|
1961
|
+
},
|
|
1807
1962
|
].map(item => ({ ...item, selected: item.id === dataTypeValue?.id }))));
|
|
1808
1963
|
this.fieldTypeItems$ = combineLatest([
|
|
1809
1964
|
this._dataTypeValue$.pipe(distinctUntilChanged()),
|
|
@@ -1838,10 +1993,6 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
1838
1993
|
content: this.translateService.instant('searchFieldsOverview.dropdownDatabaseDataProvider'),
|
|
1839
1994
|
id: SearchDropdownDataProvider.DATABASE,
|
|
1840
1995
|
},
|
|
1841
|
-
{
|
|
1842
|
-
content: this.translateService.instant('searchFieldsOverview.dropdownJsonFileDataProvider'),
|
|
1843
|
-
id: SearchDropdownDataProvider.JSON,
|
|
1844
|
-
},
|
|
1845
1996
|
].map(item => ({ ...item, selected: item.id === dataProviderValue?.id }))));
|
|
1846
1997
|
this.matchTypeItems$ = this.translateService
|
|
1847
1998
|
.stream('key')
|
|
@@ -1986,10 +2137,10 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
1986
2137
|
this.formGroup.enable();
|
|
1987
2138
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
1988
2139
|
}
|
|
1989
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1990
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: IkoManagementSearchFieldModalComponent, isStandalone: true, selector: "valtimo-iko-management-search-field-modal", inputs: { open: "open", prefillData: "prefillData" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ (!prefillData ? 'searchFieldsOverview.add' : 'searchFieldsOverview.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [formGroup]=\"formGroup\" class=\"valtimo-search-fields-modal__content\">\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.title' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input-label>\n\n <input data-testid=\"-search-title\" cdsText type=\"text\" formControlName=\"title\" cdsLayer />\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.key' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input-label>\n\n <input cdsLayer data-testid=\"iko-search-key\" cdsText type=\"text\" formControlName=\"key\" />\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.path' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input-label>\n\n <input cdsLayer data-testid=\"iko-search-key\" cdsText type=\"text\" formControlName=\"path\" />\n\n <!-- TODO: When BE value resolver is in place -->\n <!-- <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n ></valtimo-value-path-selector> -->\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-dataType\" formControlName=\"dataType\">\n <cds-dropdown-list [items]=\"dataTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dataTypeValue === SearchFieldDataType.TEXT) {\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-matchType\" formControlName=\"matchType\">\n <cds-dropdown-list [items]=\"matchTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-fieldType\" formControlName=\"fieldType\">\n <cds-dropdown-list [items]=\"fieldTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (\n dataTypeValue === SearchFieldDataType.TEXT &&\n (fieldTypeValue === SearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n fieldTypeValue === SearchFieldFieldType.MULTI_SELECT_DROPDOWN)\n ) {\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown\n data-testid=\"-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\n <cds-dropdown-list [items]=\"dataProviderItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dropdownDataProviderValue === SearchDropdownDataProvider.DATABASE) {\n <div class=\"valtimo-search-fields-modal__list\" formArrayName=\"dropdownValues\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n [noMargin]=\"true\"\n >\n </v-input-label>\n\n @for (dropdownValue of dropdownValuesArray?.controls; track $index) {\n <form [formGroup]=\"dropdownValue\" class=\"valtimo-search-fields-modal__dropdown-values\">\n <cds-text-label>\n {{ 'interface.value' | translate }}\n\n <input\n data-testid=\"iko-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"iko-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\n {{ 'interface.addRow' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n }\n }\n </form>\n\n <cds-modal-footer>\n <button data-testid=\"-search-cancel\" cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"formGroup.invalid\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-search-fields-modal__content,.valtimo-search-fields-modal__dropdown-values{display:flex;gap:16px}.valtimo-search-fields-modal__content{flex-direction:column}.valtimo-search-fields-modal__dropdown-values{align-items:flex-end;gap:16px}.valtimo-search-fields-modal__label{display:flex;gap:4px}.valtimo-search-fields-modal__list{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2025 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: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchFieldModalComponent, deps: [{ token: i6.IconService }, { token: i1$3.FormBuilder }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoManagementSearchFieldModalComponent, isStandalone: true, selector: "valtimo-iko-management-search-field-modal", inputs: { open: "open", usedKeys: "usedKeys", modalMode: "modalMode", prefillData: "prefillData" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ (!prefillData ? 'searchFieldsOverview.add' : 'searchFieldsOverview.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [formGroup]=\"formGroup\" class=\"valtimo-search-fields-modal__content\">\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.title' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input-label>\n\n <input data-testid=\"-search-title\" cdsText type=\"text\" formControlName=\"title\" cdsLayer />\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n data-testid=\"iko-search-key\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.path' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input-label>\n\n <input cdsLayer data-testid=\"iko-search-key\" cdsText type=\"text\" formControlName=\"path\" />\n\n <!-- TODO: When BE value resolver is in place -->\n <!-- <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n ></valtimo-value-path-selector> -->\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-dataType\" formControlName=\"dataType\">\n <cds-dropdown-list [items]=\"dataTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dataTypeValue === SearchFieldDataType.TEXT) {\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-matchType\" formControlName=\"matchType\">\n <cds-dropdown-list [items]=\"matchTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-fieldType\" formControlName=\"fieldType\">\n <cds-dropdown-list [items]=\"fieldTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (\n dataTypeValue === SearchFieldDataType.TEXT &&\n (fieldTypeValue === SearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n fieldTypeValue === SearchFieldFieldType.MULTI_SELECT_DROPDOWN)\n ) {\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown\n data-testid=\"-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\n <cds-dropdown-list [items]=\"dataProviderItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dropdownDataProviderValue === SearchDropdownDataProvider.DATABASE) {\n <div class=\"valtimo-search-fields-modal__list\" formArrayName=\"dropdownValues\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n [noMargin]=\"true\"\n >\n </v-input-label>\n\n @for (dropdownValue of dropdownValuesArray?.controls; track $index) {\n <form [formGroup]=\"dropdownValue\" class=\"valtimo-search-fields-modal__dropdown-values\">\n <cds-text-label>\n {{ 'interface.value' | translate }}\n\n <input\n data-testid=\"iko-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"iko-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\n {{ 'interface.addRow' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n }\n }\n </form>\n\n <cds-modal-footer>\n <button data-testid=\"-search-cancel\" cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"formGroup.invalid\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-search-fields-modal__content,.valtimo-search-fields-modal__dropdown-values{display:flex;gap:16px}.valtimo-search-fields-modal__content{flex-direction:column}.valtimo-search-fields-modal__dropdown-values{align-items:flex-end;gap:16px}.valtimo-search-fields-modal__label{display:flex;gap:4px}.valtimo-search-fields-modal__list{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2025 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: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i2$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1991
2142
|
}
|
|
1992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchFieldModalComponent, decorators: [{
|
|
1993
2144
|
type: Component,
|
|
1994
2145
|
args: [{ selector: 'valtimo-iko-management-search-field-modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1995
2146
|
ButtonModule,
|
|
@@ -2002,10 +2153,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2002
2153
|
ReactiveFormsModule,
|
|
2003
2154
|
TranslateModule,
|
|
2004
2155
|
ValtimoCdsModalDirective,
|
|
2005
|
-
|
|
2006
|
-
|
|
2156
|
+
AutoKeyInputComponent,
|
|
2157
|
+
], template: "<!--\n ~ Copyright 2015-2025 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 [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ (!prefillData ? 'searchFieldsOverview.add' : 'searchFieldsOverview.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [formGroup]=\"formGroup\" class=\"valtimo-search-fields-modal__content\">\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.title' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input-label>\n\n <input data-testid=\"-search-title\" cdsText type=\"text\" formControlName=\"title\" cdsLayer />\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n data-testid=\"iko-search-key\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.path' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input-label>\n\n <input cdsLayer data-testid=\"iko-search-key\" cdsText type=\"text\" formControlName=\"path\" />\n\n <!-- TODO: When BE value resolver is in place -->\n <!-- <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n ></valtimo-value-path-selector> -->\n </div>\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-dataType\" formControlName=\"dataType\">\n <cds-dropdown-list [items]=\"dataTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dataTypeValue === SearchFieldDataType.TEXT) {\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-matchType\" formControlName=\"matchType\">\n <cds-dropdown-list [items]=\"matchTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown cdsLayer data-testid=\"-search-fieldType\" formControlName=\"fieldType\">\n <cds-dropdown-list [items]=\"fieldTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (\n dataTypeValue === SearchFieldDataType.TEXT &&\n (fieldTypeValue === SearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n fieldTypeValue === SearchFieldFieldType.MULTI_SELECT_DROPDOWN)\n ) {\n <div class=\"valtimo-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown\n data-testid=\"-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\n <cds-dropdown-list [items]=\"dataProviderItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dropdownDataProviderValue === SearchDropdownDataProvider.DATABASE) {\n <div class=\"valtimo-search-fields-modal__list\" formArrayName=\"dropdownValues\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n [noMargin]=\"true\"\n >\n </v-input-label>\n\n @for (dropdownValue of dropdownValuesArray?.controls; track $index) {\n <form [formGroup]=\"dropdownValue\" class=\"valtimo-search-fields-modal__dropdown-values\">\n <cds-text-label>\n {{ 'interface.value' | translate }}\n\n <input\n data-testid=\"iko-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"iko-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\n {{ 'interface.addRow' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n }\n }\n </form>\n\n <cds-modal-footer>\n <button data-testid=\"-search-cancel\" cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"formGroup.invalid\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-search-fields-modal__content,.valtimo-search-fields-modal__dropdown-values{display:flex;gap:16px}.valtimo-search-fields-modal__content{flex-direction:column}.valtimo-search-fields-modal__dropdown-values{align-items:flex-end;gap:16px}.valtimo-search-fields-modal__label{display:flex;gap:4px}.valtimo-search-fields-modal__list{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
2158
|
+
}], ctorParameters: () => [{ type: i6.IconService }, { type: i1$3.FormBuilder }, { type: i5.TranslateService }], propDecorators: { open: [{
|
|
2007
2159
|
type: Input,
|
|
2008
2160
|
args: [{ required: true }]
|
|
2161
|
+
}], usedKeys: [{
|
|
2162
|
+
type: Input
|
|
2163
|
+
}], modalMode: [{
|
|
2164
|
+
type: Input
|
|
2009
2165
|
}], prefillData: [{
|
|
2010
2166
|
type: Input
|
|
2011
2167
|
}], closeEvent: [{
|
|
@@ -2034,6 +2190,7 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2034
2190
|
this.pageTitleService = pageTitleService;
|
|
2035
2191
|
this.route = route;
|
|
2036
2192
|
this.translateService = translateService;
|
|
2193
|
+
this.$modalMode = signal('add');
|
|
2037
2194
|
this._refresh$ = new BehaviorSubject(null);
|
|
2038
2195
|
this.params$ = this.route.params.pipe(map$1((params) => ({
|
|
2039
2196
|
apiKey: params.apiKey,
|
|
@@ -2042,6 +2199,7 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2042
2199
|
tabKey: params.tabKey,
|
|
2043
2200
|
})));
|
|
2044
2201
|
this.loading$ = new BehaviorSubject(true);
|
|
2202
|
+
this.usedKeys$ = new BehaviorSubject([]);
|
|
2045
2203
|
this.searchFields$ = combineLatest([
|
|
2046
2204
|
this.params$,
|
|
2047
2205
|
this.translateService.stream('key'),
|
|
@@ -2050,12 +2208,16 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2050
2208
|
...field,
|
|
2051
2209
|
dataTypeText: this.translateService.instant(`searchFields.${field.dataType}`),
|
|
2052
2210
|
fieldTypeText: this.translateService.instant(`searchFieldsOverview.${field.fieldType}`),
|
|
2053
|
-
}))), tap(
|
|
2211
|
+
}))), tap(content => {
|
|
2212
|
+
const keys = content?.map(item => item.key) ?? [];
|
|
2213
|
+
this.usedKeys$.next(keys);
|
|
2214
|
+
this.loading$.next(false);
|
|
2215
|
+
}));
|
|
2054
2216
|
this.deleteModalOpen$ = new BehaviorSubject(false);
|
|
2055
|
-
this.
|
|
2217
|
+
this.deleteField$ = new BehaviorSubject(null);
|
|
2056
2218
|
this.fieldModalOpen$ = new BehaviorSubject(false);
|
|
2057
2219
|
this.prefillData$ = new BehaviorSubject(null);
|
|
2058
|
-
this._searchAction$ = this.params$.pipe(switchMap((params) => this.ikoManagementApiService.
|
|
2220
|
+
this._searchAction$ = this.params$.pipe(switchMap((params) => this.ikoManagementApiService.getIkoSearchAction(params.aggregateKey, params.actionKey)));
|
|
2059
2221
|
this._ikoRepositoryConfig$ = this.params$.pipe(switchMap((params) => this.ikoManagementApiService.getIkoRepositoryConfig(params.apiKey)));
|
|
2060
2222
|
this.FIELDS = [
|
|
2061
2223
|
{
|
|
@@ -2118,29 +2280,59 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2118
2280
|
.subscribe();
|
|
2119
2281
|
}
|
|
2120
2282
|
openAddModal() {
|
|
2283
|
+
this.$modalMode.set('add');
|
|
2121
2284
|
this.fieldModalOpen$.next(true);
|
|
2122
2285
|
}
|
|
2123
2286
|
deleteSearchField(field) {
|
|
2124
|
-
this.
|
|
2287
|
+
this.deleteField$.next(field);
|
|
2125
2288
|
this.deleteModalOpen$.next(true);
|
|
2126
2289
|
}
|
|
2127
2290
|
editSearchField(field) {
|
|
2291
|
+
if (!!field.dropdownDataProvider) {
|
|
2292
|
+
this.params$
|
|
2293
|
+
.pipe(switchMap((params) => this.ikoManagementApiService.getDropdownData(field.dropdownDataProvider, params.aggregateKey, params.actionKey, field.key)), take(1))
|
|
2294
|
+
.subscribe(dropdownValues => {
|
|
2295
|
+
field.dropdownValues = dropdownValues;
|
|
2296
|
+
this.prefillData$.next(field);
|
|
2297
|
+
this.fieldModalOpen$.next(true);
|
|
2298
|
+
});
|
|
2299
|
+
return;
|
|
2300
|
+
}
|
|
2301
|
+
this.$modalMode.set('edit');
|
|
2128
2302
|
this.prefillData$.next(field);
|
|
2129
2303
|
this.fieldModalOpen$.next(true);
|
|
2130
2304
|
}
|
|
2131
|
-
onDeleteSearchField(
|
|
2305
|
+
onDeleteSearchField(field) {
|
|
2132
2306
|
this.params$
|
|
2133
|
-
.pipe(switchMap((params) =>
|
|
2307
|
+
.pipe(switchMap((params) => {
|
|
2308
|
+
const dropdown$ = field.dropdownDataProvider
|
|
2309
|
+
? this.ikoManagementApiService
|
|
2310
|
+
.deleteDropdownData(field.dropdownDataProvider, params.aggregateKey, params.actionKey, field.key)
|
|
2311
|
+
.pipe(map$1(result => ({ params, dropdownResult: result })))
|
|
2312
|
+
: of({ params, dropdownResult: null });
|
|
2313
|
+
return dropdown$.pipe(switchMap(({ params }) => this.ikoManagementApiService.deleteIkoSearchField(params.aggregateKey, params.actionKey, field.key)));
|
|
2314
|
+
}))
|
|
2134
2315
|
.subscribe(() => this._refresh$.next(null));
|
|
2316
|
+
this.prefillData$.next(null);
|
|
2135
2317
|
}
|
|
2136
2318
|
onModalClose(field) {
|
|
2137
2319
|
this.fieldModalOpen$.next(false);
|
|
2320
|
+
this.prefillData$.next(null);
|
|
2138
2321
|
if (!field)
|
|
2139
2322
|
return;
|
|
2323
|
+
const hasDropdownValues = field.fieldType === SearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||
|
|
2324
|
+
field.fieldType === SearchFieldFieldType.MULTI_SELECT_DROPDOWN;
|
|
2140
2325
|
this.params$
|
|
2141
|
-
.pipe(switchMap((params) =>
|
|
2142
|
-
|
|
2143
|
-
|
|
2326
|
+
.pipe(switchMap((params) => {
|
|
2327
|
+
const save$ = this.$modalMode() === 'add'
|
|
2328
|
+
? this.ikoManagementApiService.createIkoSearchField(params.aggregateKey, params.actionKey, field.key, field)
|
|
2329
|
+
: this.ikoManagementApiService.updateIkoSearchField(params.aggregateKey, params.actionKey, field.key, field);
|
|
2330
|
+
return save$.pipe(map$1(result => ({ result, params })));
|
|
2331
|
+
}), switchMap(({ result, params }) => {
|
|
2332
|
+
if (!hasDropdownValues)
|
|
2333
|
+
return of(result);
|
|
2334
|
+
return this.ikoManagementApiService.postDropdownData(field.dropdownDataProvider ?? '', params.aggregateKey, params.actionKey, field.key, field.dropdownValues ?? {});
|
|
2335
|
+
}))
|
|
2144
2336
|
.subscribe(() => this._refresh$.next(null));
|
|
2145
2337
|
}
|
|
2146
2338
|
setBreadcrumbs() {
|
|
@@ -2161,10 +2353,10 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2161
2353
|
});
|
|
2162
2354
|
});
|
|
2163
2355
|
}
|
|
2164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2356
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchFieldsComponent, deps: [{ token: i2$2.BreadcrumbService }, { token: IkoManagementApiService }, { token: i2$2.PageTitleService }, { token: i1$2.ActivatedRoute }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2357
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoManagementSearchFieldsComponent, isStandalone: true, selector: "valtimo-iko-management-search-fields", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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@if (params$ | async; as params) {\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [dragAndDrop]=\"true\"\n [fields]=\"FIELDS\"\n [items]=\"searchFields$ | async\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event, params)\"\n (rowClicked)=\"editSearchField($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addFieldButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addFieldButton\"\n [description]=\"'ikoManagement.searchFields.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.searchFields.noResultsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n}\n\n<valtimo-iko-management-search-field-modal\n [open]=\"fieldModalOpen$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n [modalMode]=\"$modalMode()\"\n [prefillData]=\"prefillData$ | async\"\n (closeEvent)=\"onModalClose($event)\"\n></valtimo-iko-management-search-field-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchFields.deleteModalText\"\n [outputOnConfirm]=\"deleteField$ | async\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteSearchField($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #addFieldButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'searchFieldsOverview.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "showActionItems", "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: CommonModule }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: IkoManagementSearchFieldModalComponent, selector: "valtimo-iko-management-search-field-modal", inputs: ["open", "usedKeys", "modalMode", "prefillData"], outputs: ["closeEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2166
2358
|
}
|
|
2167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchFieldsComponent, decorators: [{
|
|
2168
2360
|
type: Component,
|
|
2169
2361
|
args: [{ selector: 'valtimo-iko-management-search-fields', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
2170
2362
|
ButtonModule,
|
|
@@ -2174,8 +2366,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2174
2366
|
IconModule,
|
|
2175
2367
|
TranslateModule,
|
|
2176
2368
|
IkoManagementSearchFieldModalComponent,
|
|
2177
|
-
], template: "<!--\n ~ Copyright 2015-2025 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@if (params$ | async; as params) {\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [dragAndDrop]=\"true\"\n [fields]=\"FIELDS\"\n [items]=\"searchFields$ | async\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event, params)\"\n (rowClicked)=\"editSearchField($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addFieldButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addFieldButton\"\n [description]=\"'ikoManagement.searchFields.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.searchFields.noResultsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n}\n\n<valtimo-iko-management-search-field-modal\n [open]=\"fieldModalOpen$ | async\"\n [prefillData]=\"prefillData$ | async\"\n (closeEvent)=\"onModalClose($event)\"\n></valtimo-iko-management-search-field-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchFields.deleteModalText\"\n [outputOnConfirm]=\"
|
|
2178
|
-
}], ctorParameters: () => [{ type:
|
|
2369
|
+
], template: "<!--\n ~ Copyright 2015-2025 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@if (params$ | async; as params) {\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [dragAndDrop]=\"true\"\n [fields]=\"FIELDS\"\n [items]=\"searchFields$ | async\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event, params)\"\n (rowClicked)=\"editSearchField($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addFieldButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addFieldButton\"\n [description]=\"'ikoManagement.searchFields.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.searchFields.noResultsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n}\n\n<valtimo-iko-management-search-field-modal\n [open]=\"fieldModalOpen$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n [modalMode]=\"$modalMode()\"\n [prefillData]=\"prefillData$ | async\"\n (closeEvent)=\"onModalClose($event)\"\n></valtimo-iko-management-search-field-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchFields.deleteModalText\"\n [outputOnConfirm]=\"deleteField$ | async\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteSearchField($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #addFieldButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'searchFieldsOverview.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n" }]
|
|
2370
|
+
}], ctorParameters: () => [{ type: i2$2.BreadcrumbService }, { type: IkoManagementApiService }, { type: i2$2.PageTitleService }, { type: i1$2.ActivatedRoute }, { type: i5.TranslateService }] });
|
|
2179
2371
|
|
|
2180
2372
|
/*
|
|
2181
2373
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -2192,8 +2384,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2192
2384
|
* See the License for the specific language governing permissions and
|
|
2193
2385
|
* limitations under the License.
|
|
2194
2386
|
*/
|
|
2195
|
-
class IkoManagementWidgetsComponent {
|
|
2196
|
-
constructor(breadcrumbService, ikoManagementApiService, route, translateService, ikoWidgetManagementApiService) {
|
|
2387
|
+
class IkoManagementWidgetsComponent extends ManagementWidgetDetailsComponent {
|
|
2388
|
+
constructor(widgetWizardService, breadcrumbService, ikoManagementApiService, route, translateService, ikoWidgetManagementApiService) {
|
|
2389
|
+
super(widgetWizardService);
|
|
2390
|
+
this.widgetWizardService = widgetWizardService;
|
|
2197
2391
|
this.breadcrumbService = breadcrumbService;
|
|
2198
2392
|
this.ikoManagementApiService = ikoManagementApiService;
|
|
2199
2393
|
this.route = route;
|
|
@@ -2212,12 +2406,14 @@ class IkoManagementWidgetsComponent {
|
|
|
2212
2406
|
WidgetType.COLLECTION,
|
|
2213
2407
|
WidgetType.TABLE,
|
|
2214
2408
|
WidgetType.INTERACTIVE_TABLE,
|
|
2409
|
+
WidgetType.MAP,
|
|
2215
2410
|
];
|
|
2216
2411
|
this._ikoRepositoryConfig$ = this.params$.pipe(switchMap((params) => this.ikoManagementApiService.getIkoRepositoryConfig(params.apiKey)));
|
|
2217
2412
|
this._ikoTabConfig$ = this.params$.pipe(switchMap((params) => this.ikoManagementApiService.getIkoTab(params.aggregateKey, params.widgetTabKey)));
|
|
2218
2413
|
this._subscriptions = new Subscription();
|
|
2219
2414
|
}
|
|
2220
2415
|
ngOnInit() {
|
|
2416
|
+
this.setContext('iko');
|
|
2221
2417
|
this.setBreadcrumbs();
|
|
2222
2418
|
}
|
|
2223
2419
|
ngOnDestroy() {
|
|
@@ -2250,15 +2446,15 @@ class IkoManagementWidgetsComponent {
|
|
|
2250
2446
|
}))
|
|
2251
2447
|
.subscribe());
|
|
2252
2448
|
}
|
|
2253
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2254
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
2449
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementWidgetsComponent, deps: [{ token: i2$1.WidgetWizardService }, { token: i2$2.BreadcrumbService }, { token: IkoManagementApiService }, { token: i1$2.ActivatedRoute }, { token: i5.TranslateService }, { token: WIDGET_MANAGEMENT_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2450
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementWidgetsComponent, isStandalone: true, selector: "ng-component", providers: [
|
|
2255
2451
|
{
|
|
2256
2452
|
provide: WIDGET_MANAGEMENT_SERVICE,
|
|
2257
2453
|
useClass: IkoWidgetManagementApiService,
|
|
2258
2454
|
},
|
|
2259
|
-
], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-management\n [params]=\"params$ | async\"\n [availableWidgetTypes]=\"AVAILABLE_WIDGET_TYPES\"\n></valtimo-widget-management>\n", styles: ["/*!\n * Copyright 2015-2025 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: i4.AsyncPipe, name: "async" }, { kind: "component", type: WidgetManagementComponent, selector: "valtimo-widget-management", inputs: ["params", "availableWidgetTypes", "
|
|
2455
|
+
], usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-widget-management\n [params]=\"params$ | async\"\n [availableWidgetTypes]=\"AVAILABLE_WIDGET_TYPES\"\n></valtimo-widget-management>\n", styles: ["/*!\n * Copyright 2015-2025 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: i4.AsyncPipe, name: "async" }, { kind: "component", type: WidgetManagementComponent, selector: "valtimo-widget-management", inputs: ["params", "availableWidgetTypes", "disableDuplicate", "enableWidgetDivider", "singleWidget", "disableJsonEditor", "defaultWidth", "widgetWizardSteps"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2260
2456
|
}
|
|
2261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2457
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementWidgetsComponent, decorators: [{
|
|
2262
2458
|
type: Component,
|
|
2263
2459
|
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, WidgetManagementComponent, TranslateModule], providers: [
|
|
2264
2460
|
{
|
|
@@ -2266,7 +2462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2266
2462
|
useClass: IkoWidgetManagementApiService,
|
|
2267
2463
|
},
|
|
2268
2464
|
], template: "<!--\n ~ Copyright 2015-2025 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-widget-management\n [params]=\"params$ | async\"\n [availableWidgetTypes]=\"AVAILABLE_WIDGET_TYPES\"\n></valtimo-widget-management>\n", styles: ["/*!\n * Copyright 2015-2025 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"] }]
|
|
2269
|
-
}], ctorParameters: () => [{ type:
|
|
2465
|
+
}], ctorParameters: () => [{ type: i2$1.WidgetWizardService }, { type: i2$2.BreadcrumbService }, { type: IkoManagementApiService }, { type: i1$2.ActivatedRoute }, { type: i5.TranslateService }, { type: undefined, decorators: [{
|
|
2270
2466
|
type: Inject,
|
|
2271
2467
|
args: [WIDGET_MANAGEMENT_SERVICE]
|
|
2272
2468
|
}] }] });
|
|
@@ -2287,36 +2483,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2287
2483
|
* limitations under the License.
|
|
2288
2484
|
*/
|
|
2289
2485
|
class IkoManagementSearchActionModalComponent {
|
|
2486
|
+
set modalMode(value) {
|
|
2487
|
+
this._modalMode = value;
|
|
2488
|
+
}
|
|
2489
|
+
get modalMode() {
|
|
2490
|
+
return this._modalMode;
|
|
2491
|
+
}
|
|
2290
2492
|
set open(value) {
|
|
2291
2493
|
this.$isOpen.set(value);
|
|
2292
2494
|
if (value)
|
|
2293
2495
|
return;
|
|
2294
2496
|
setTimeout(() => {
|
|
2295
|
-
this.$modalType.set('add');
|
|
2296
2497
|
this.formGroup.reset();
|
|
2297
2498
|
this.formGroup.get('key')?.enable();
|
|
2298
2499
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
2299
2500
|
}
|
|
2300
2501
|
set prefillData(value) {
|
|
2301
|
-
|
|
2302
|
-
|
|
2502
|
+
if (!value) {
|
|
2503
|
+
this.$prefillData.set(null);
|
|
2303
2504
|
return;
|
|
2304
|
-
|
|
2505
|
+
}
|
|
2506
|
+
this.$prefillData.set(value);
|
|
2305
2507
|
this.formGroup.patchValue(value);
|
|
2306
2508
|
this.formGroup.get('key')?.disable();
|
|
2307
2509
|
}
|
|
2510
|
+
get title() {
|
|
2511
|
+
return this.formGroup.get('title');
|
|
2512
|
+
}
|
|
2308
2513
|
constructor(fb, ikoManagementApiService) {
|
|
2309
2514
|
this.fb = fb;
|
|
2310
2515
|
this.ikoManagementApiService = ikoManagementApiService;
|
|
2311
|
-
this.$modalType = signal('add');
|
|
2312
2516
|
this.$isOpen = signal(false);
|
|
2313
2517
|
this.$prefillData = signal(null);
|
|
2518
|
+
this.usedKeys = [];
|
|
2314
2519
|
this.modalClose = new EventEmitter();
|
|
2315
|
-
this.propertyFields$ = toObservable(this.$isOpen).pipe(filter((open) => !!open), map$1(() => this.repositoryKey), switchMap((repositoryKey) => this.ikoManagementApiService.getIkoRepositoryConfig(repositoryKey ?? '')), switchMap((repository) => this.ikoManagementApiService.
|
|
2520
|
+
this.propertyFields$ = toObservable(this.$isOpen).pipe(filter((open) => !!open), map$1(() => this.repositoryKey), switchMap((repositoryKey) => this.ikoManagementApiService.getIkoRepositoryConfig(repositoryKey ?? '')), switchMap((repository) => this.ikoManagementApiService.getIkoSearchActionPropertyFields(repository.type)));
|
|
2316
2521
|
this.formGroup = this.fb.group({
|
|
2317
2522
|
key: this.fb.control('', Validators.required),
|
|
2318
2523
|
title: this.fb.control('', Validators.required),
|
|
2319
|
-
|
|
2524
|
+
ikoViewKey: this.fb.control(''),
|
|
2320
2525
|
properties: this.fb.group({}),
|
|
2321
2526
|
});
|
|
2322
2527
|
}
|
|
@@ -2345,10 +2550,10 @@ class IkoManagementSearchActionModalComponent {
|
|
|
2345
2550
|
this.modalClose.emit(formData);
|
|
2346
2551
|
});
|
|
2347
2552
|
}
|
|
2348
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2349
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
2553
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchActionModalComponent, deps: [{ token: i1$3.FormBuilder }, { token: IkoManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2554
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementSearchActionModalComponent, isStandalone: true, selector: "valtimo-iko-management-search-action-modal", inputs: { modalMode: "modalMode", open: "open", prefillData: "prefillData", usedKeys: "usedKeys", repositoryKey: "repositoryKey", aggregateKey: "aggregateKey" }, outputs: { modalClose: "modalClose" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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\n valtimoCdsModal\n [open]=\"$isOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n [title]=\"'ikoManagement.searchActions.' + modalMode + 'ActionTitle' | translate\"\n (close)=\"onCancel()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ 'ikoManagement.searchActions.' + modalMode + 'ActionTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [formGroup]=\"formGroup\">\n <cds-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n cdsLayer\n placeholder=\"{{ 'interface.title' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n labelTranslationKey=\"ikoManagement.keyTitle\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"$prefillData()?.properties\"\n />\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2025 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: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: PropertiesFormComponent, selector: "valtimo-iko-management-properties", inputs: ["propertiesFormGroup", "fields", "prefillData"] }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2350
2555
|
}
|
|
2351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2556
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchActionModalComponent, decorators: [{
|
|
2352
2557
|
type: Component,
|
|
2353
2558
|
args: [{ selector: 'valtimo-iko-management-search-action-modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2354
2559
|
CommonModule,
|
|
@@ -2360,11 +2565,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2360
2565
|
ButtonModule,
|
|
2361
2566
|
LayerModule,
|
|
2362
2567
|
PropertiesFormComponent,
|
|
2363
|
-
|
|
2364
|
-
|
|
2568
|
+
AutoKeyInputComponent,
|
|
2569
|
+
], template: "<!--\n ~ Copyright 2015-2025 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\n valtimoCdsModal\n [open]=\"$isOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n [title]=\"'ikoManagement.searchActions.' + modalMode + 'ActionTitle' | translate\"\n (close)=\"onCancel()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ 'ikoManagement.searchActions.' + modalMode + 'ActionTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [formGroup]=\"formGroup\">\n <cds-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n cdsLayer\n placeholder=\"{{ 'interface.title' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n labelTranslationKey=\"ikoManagement.keyTitle\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"$prefillData()?.properties\"\n />\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
2570
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: IkoManagementApiService }], propDecorators: { modalMode: [{
|
|
2571
|
+
type: Input
|
|
2572
|
+
}], open: [{
|
|
2365
2573
|
type: Input
|
|
2366
2574
|
}], prefillData: [{
|
|
2367
2575
|
type: Input
|
|
2576
|
+
}], usedKeys: [{
|
|
2577
|
+
type: Input
|
|
2368
2578
|
}], repositoryKey: [{
|
|
2369
2579
|
type: Input
|
|
2370
2580
|
}], aggregateKey: [{
|
|
@@ -2389,10 +2599,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2389
2599
|
* limitations under the License.
|
|
2390
2600
|
*/
|
|
2391
2601
|
class IkoManagementSearchActionsComponent {
|
|
2392
|
-
constructor(route, router, ikoManagementApiService) {
|
|
2602
|
+
constructor(document, route, router, ikoManagementApiService, notificationService, translateService) {
|
|
2603
|
+
this.document = document;
|
|
2393
2604
|
this.route = route;
|
|
2394
2605
|
this.router = router;
|
|
2395
2606
|
this.ikoManagementApiService = ikoManagementApiService;
|
|
2607
|
+
this.notificationService = notificationService;
|
|
2608
|
+
this.translateService = translateService;
|
|
2609
|
+
this.$modalMode = signal('add');
|
|
2396
2610
|
this.loading$ = new BehaviorSubject(true);
|
|
2397
2611
|
this.FIELDS = [
|
|
2398
2612
|
{
|
|
@@ -2421,13 +2635,19 @@ class IkoManagementSearchActionsComponent {
|
|
|
2421
2635
|
this.prefillData$ = new BehaviorSubject(null);
|
|
2422
2636
|
this.actionModalOpen$ = new BehaviorSubject(false);
|
|
2423
2637
|
this.deleteModalOpen$ = new BehaviorSubject(false);
|
|
2638
|
+
this.exporting$ = new BehaviorSubject(false);
|
|
2424
2639
|
this.repositoryKey$ = this.route.params.pipe(map((params) => params.apiKey), filter(repositoryKey => !!repositoryKey));
|
|
2425
2640
|
this.aggregateKey$ = this.route.params.pipe(map((params) => params.key), filter(key => !!key));
|
|
2641
|
+
this.usedKeys$ = new BehaviorSubject([]);
|
|
2426
2642
|
this._refresh$ = new BehaviorSubject(null);
|
|
2427
2643
|
this.searchActions$ = combineLatest([
|
|
2428
2644
|
this.aggregateKey$,
|
|
2429
2645
|
this._refresh$,
|
|
2430
|
-
]).pipe(switchMap(([key]) => this.ikoManagementApiService.
|
|
2646
|
+
]).pipe(switchMap(([key]) => this.ikoManagementApiService.getManagementIkoSearchActions(key)), tap(content => {
|
|
2647
|
+
const keys = content?.map(item => item.key) ?? [];
|
|
2648
|
+
this.usedKeys$.next(keys);
|
|
2649
|
+
this.loading$.next(false);
|
|
2650
|
+
}));
|
|
2431
2651
|
}
|
|
2432
2652
|
onSearchActionClick(action) {
|
|
2433
2653
|
this.router.navigate([`search-action/${action.key}`], { relativeTo: this.route });
|
|
@@ -2438,40 +2658,99 @@ class IkoManagementSearchActionsComponent {
|
|
|
2438
2658
|
}
|
|
2439
2659
|
onDeleteSearchAction(key) {
|
|
2440
2660
|
this.aggregateKey$
|
|
2441
|
-
.pipe(switchMap((aggregateKey) => this.ikoManagementApiService.
|
|
2661
|
+
.pipe(switchMap((aggregateKey) => this.ikoManagementApiService.deleteIkoSearchAction(aggregateKey, key)))
|
|
2442
2662
|
.subscribe(() => this._refresh$.next(null));
|
|
2443
2663
|
}
|
|
2444
2664
|
editSearchAction(action) {
|
|
2665
|
+
this.$modalMode.set('edit');
|
|
2445
2666
|
this.prefillData$.next(action);
|
|
2446
2667
|
this.actionModalOpen$.next(true);
|
|
2447
2668
|
}
|
|
2448
2669
|
onItemsReordered(searchActions, aggregateKey) {
|
|
2449
2670
|
this.ikoManagementApiService
|
|
2450
|
-
.
|
|
2671
|
+
.updateIkoSearchActions(aggregateKey, searchActions)
|
|
2451
2672
|
.pipe(take$1(1))
|
|
2452
2673
|
.subscribe();
|
|
2453
2674
|
}
|
|
2454
2675
|
onModalClose(action) {
|
|
2455
2676
|
this.actionModalOpen$.next(false);
|
|
2456
|
-
const prefillData = this.prefillData$.getValue();
|
|
2457
2677
|
this.prefillData$.next(null);
|
|
2458
2678
|
if (!action)
|
|
2459
2679
|
return;
|
|
2460
2680
|
this.aggregateKey$
|
|
2461
|
-
.pipe(switchMap((aggregateKey) =>
|
|
2462
|
-
? this.ikoManagementApiService.
|
|
2463
|
-
: this.ikoManagementApiService.
|
|
2681
|
+
.pipe(switchMap((aggregateKey) => this.$modalMode() === 'add'
|
|
2682
|
+
? this.ikoManagementApiService.createIkoSearchAction(aggregateKey, action.key, action)
|
|
2683
|
+
: this.ikoManagementApiService.updateIkoSearchAction(aggregateKey, action.key, action)))
|
|
2464
2684
|
.subscribe(() => {
|
|
2465
2685
|
this._refresh$.next(null);
|
|
2466
2686
|
});
|
|
2467
2687
|
}
|
|
2688
|
+
exportConfiguration() {
|
|
2689
|
+
this.closeCurrentNotification();
|
|
2690
|
+
this._currentNotification = this.notificationService.showNotification({
|
|
2691
|
+
type: 'info',
|
|
2692
|
+
title: '',
|
|
2693
|
+
showClose: false,
|
|
2694
|
+
template: this._exportMessageTemplateRef,
|
|
2695
|
+
});
|
|
2696
|
+
this.startExporting();
|
|
2697
|
+
combineLatest([this.aggregateKey$])
|
|
2698
|
+
.pipe(take$1(1), switchMap(([aggregateKey]) => this.ikoManagementApiService.exportIKOConfiguration(aggregateKey)))
|
|
2699
|
+
.subscribe({
|
|
2700
|
+
next: response => {
|
|
2701
|
+
this.closeCurrentNotification();
|
|
2702
|
+
this._currentNotification = this.notificationService.showNotification({
|
|
2703
|
+
type: 'success',
|
|
2704
|
+
title: this.translateService.instant('caseManagement.exportSuccessTitle'),
|
|
2705
|
+
duration: 5000,
|
|
2706
|
+
});
|
|
2707
|
+
this.downloadZip(response);
|
|
2708
|
+
this.stopExporting();
|
|
2709
|
+
},
|
|
2710
|
+
error: () => {
|
|
2711
|
+
this.closeCurrentNotification();
|
|
2712
|
+
this._currentNotification = this.notificationService.showNotification({
|
|
2713
|
+
type: 'error',
|
|
2714
|
+
title: this.translateService.instant('caseManagement.exportErrorTitle'),
|
|
2715
|
+
message: this.translateService.instant('caseManagement.exportErrorMessage'),
|
|
2716
|
+
duration: 5000,
|
|
2717
|
+
});
|
|
2718
|
+
this.stopExporting();
|
|
2719
|
+
},
|
|
2720
|
+
});
|
|
2721
|
+
}
|
|
2468
2722
|
openAddModal() {
|
|
2723
|
+
this.$modalMode.set('add');
|
|
2469
2724
|
this.actionModalOpen$.next(true);
|
|
2470
2725
|
}
|
|
2471
|
-
|
|
2472
|
-
|
|
2726
|
+
startExporting() {
|
|
2727
|
+
this.exporting$.next(true);
|
|
2728
|
+
}
|
|
2729
|
+
downloadZip(response) {
|
|
2730
|
+
this.aggregateKey$.pipe(take$1(1)).subscribe(key => {
|
|
2731
|
+
const link = document.createElement('a');
|
|
2732
|
+
const contentDisposition = response.headers.get('content-disposition');
|
|
2733
|
+
const splitContentDisposition = contentDisposition?.split('filename=') ?? [];
|
|
2734
|
+
const fileName = splitContentDisposition.length > 1 && splitContentDisposition[1];
|
|
2735
|
+
link.href = this.document.defaultView?.URL.createObjectURL(response.body) ?? '';
|
|
2736
|
+
link.download = fileName || `${key}.valtimo.zip`;
|
|
2737
|
+
link.target = '_blank';
|
|
2738
|
+
link.click();
|
|
2739
|
+
link.remove();
|
|
2740
|
+
});
|
|
2741
|
+
}
|
|
2742
|
+
closeCurrentNotification() {
|
|
2743
|
+
if (this._currentNotification) {
|
|
2744
|
+
this.notificationService.close(this._currentNotification);
|
|
2745
|
+
}
|
|
2746
|
+
}
|
|
2747
|
+
stopExporting() {
|
|
2748
|
+
this.exporting$.next(false);
|
|
2749
|
+
}
|
|
2750
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchActionsComponent, deps: [{ token: DOCUMENT }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: IkoManagementApiService }, { token: i2.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2751
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoManagementSearchActionsComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "_exportMessageTemplateRef", first: true, predicate: ["exportingMessage"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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@if (aggregateKey$ | async; as aggregateKey) {\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [dragAndDrop]=\"true\"\n [fields]=\"FIELDS\"\n [items]=\"searchActions$ | async\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event, aggregateKey)\"\n (rowClicked)=\"onSearchActionClick($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"exportButton\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"addActionButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addActionButton\"\n [description]=\"'ikoManagement.searchActions.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.searchActions.noResultsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-iko-management-search-action-modal\n [usedKeys]=\"usedKeys$ | async\"\n [modalMode]=\"$modalMode()\"\n [repositoryKey]=\"repositoryKey$ | async\"\n [aggregateKey]=\"aggregateKey\"\n [open]=\"actionModalOpen$ | async\"\n [prefillData]=\"prefillData$ | async\"\n (modalClose)=\"onModalClose($event)\"\n ></valtimo-iko-management-search-action-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchActions.deleteModalText\"\n [outputOnConfirm]=\"deleteSearchActionKey$ | async\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteSearchAction($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #exportButton>\n <button [iconOnly]=\"true\" cdsButton=\"ghost\" (click)=\"exportConfiguration()\">\n <svg cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n </ng-template>\n\n <ng-template #addActionButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'ikoManagement.searchActions.addActionTitle' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-template>\n\n <ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'ikoManagement.preparingDownload' | translate\n }}</span>\n\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "showActionItems", "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: CommonModule }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: IkoManagementSearchActionModalComponent, selector: "valtimo-iko-management-search-action-modal", inputs: ["modalMode", "open", "prefillData", "usedKeys", "repositoryKey", "aggregateKey"], outputs: ["modalClose"] }, { kind: "ngmodule", type: TabsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i6.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }] }); }
|
|
2473
2752
|
}
|
|
2474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchActionsComponent, decorators: [{
|
|
2475
2754
|
type: Component,
|
|
2476
2755
|
args: [{ standalone: true, imports: [
|
|
2477
2756
|
ButtonModule,
|
|
@@ -2482,8 +2761,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2482
2761
|
IkoManagementSearchActionModalComponent,
|
|
2483
2762
|
TabsModule,
|
|
2484
2763
|
TranslateModule,
|
|
2485
|
-
|
|
2486
|
-
|
|
2764
|
+
LoadingModule,
|
|
2765
|
+
], template: "<!--\n ~ Copyright 2015-2025 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@if (aggregateKey$ | async; as aggregateKey) {\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [dragAndDrop]=\"true\"\n [fields]=\"FIELDS\"\n [items]=\"searchActions$ | async\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event, aggregateKey)\"\n (rowClicked)=\"onSearchActionClick($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"exportButton\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"addActionButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addActionButton\"\n [description]=\"'ikoManagement.searchActions.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.searchActions.noResultsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-iko-management-search-action-modal\n [usedKeys]=\"usedKeys$ | async\"\n [modalMode]=\"$modalMode()\"\n [repositoryKey]=\"repositoryKey$ | async\"\n [aggregateKey]=\"aggregateKey\"\n [open]=\"actionModalOpen$ | async\"\n [prefillData]=\"prefillData$ | async\"\n (modalClose)=\"onModalClose($event)\"\n ></valtimo-iko-management-search-action-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchActions.deleteModalText\"\n [outputOnConfirm]=\"deleteSearchActionKey$ | async\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteSearchAction($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #exportButton>\n <button [iconOnly]=\"true\" cdsButton=\"ghost\" (click)=\"exportConfiguration()\">\n <svg cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n </ng-template>\n\n <ng-template #addActionButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'ikoManagement.searchActions.addActionTitle' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-template>\n\n <ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'ikoManagement.preparingDownload' | translate\n }}</span>\n\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n </ng-template>\n}\n" }]
|
|
2766
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
2767
|
+
type: Inject,
|
|
2768
|
+
args: [DOCUMENT]
|
|
2769
|
+
}] }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: IkoManagementApiService }, { type: i2.GlobalNotificationService }, { type: i5.TranslateService }], propDecorators: { _exportMessageTemplateRef: [{
|
|
2770
|
+
type: ViewChild,
|
|
2771
|
+
args: ['exportingMessage']
|
|
2772
|
+
}] } });
|
|
2487
2773
|
|
|
2488
2774
|
/*
|
|
2489
2775
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -2585,7 +2871,7 @@ class IkoManagementListModalComponent {
|
|
|
2585
2871
|
ViewType.TAGS,
|
|
2586
2872
|
ViewType.HIDDEN,
|
|
2587
2873
|
];
|
|
2588
|
-
this.
|
|
2874
|
+
this._ikoViewKey$ = this.route.params.pipe(map(params => params?.key), filter(key => !!key));
|
|
2589
2875
|
this.displayTypeSelectItems = this._DISPLAY_TYPES.map(displayType => ({
|
|
2590
2876
|
id: displayType,
|
|
2591
2877
|
translationKey: `listColumnDisplayType.${displayType}`,
|
|
@@ -2630,10 +2916,10 @@ class IkoManagementListModalComponent {
|
|
|
2630
2916
|
const formValue = this.form.getRawValue();
|
|
2631
2917
|
const requestBody = this.getCreateRequestBodyFromFormValue();
|
|
2632
2918
|
this.disableForm();
|
|
2633
|
-
this.
|
|
2634
|
-
.pipe(switchMap(
|
|
2635
|
-
? this.ikoManagementApiService.createIkoListColumn(
|
|
2636
|
-
: this.ikoManagementApiService.updateListColumn(
|
|
2919
|
+
this._ikoViewKey$
|
|
2920
|
+
.pipe(switchMap(ikoViewKey => this.modalMode === 'add'
|
|
2921
|
+
? this.ikoManagementApiService.createIkoListColumn(ikoViewKey, formValue.key, requestBody)
|
|
2922
|
+
: this.ikoManagementApiService.updateListColumn(ikoViewKey, formValue.key, requestBody)))
|
|
2637
2923
|
.subscribe({
|
|
2638
2924
|
next: () => {
|
|
2639
2925
|
this.enableForm();
|
|
@@ -2729,10 +3015,10 @@ class IkoManagementListModalComponent {
|
|
|
2729
3015
|
return of(exists ? { keyTaken: true } : null).pipe(delay(200));
|
|
2730
3016
|
};
|
|
2731
3017
|
}
|
|
2732
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2733
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: IkoManagementListModalComponent, isStandalone: true, selector: "valtimo-iko-management-list-modal", inputs: { openModal: "openModal", listColumns: "listColumns", selectedListColumn: "selectedListColumn", modalMode: "modalMode" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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\n valtimoCdsModal\n *ngIf=\"{\n title:\n (modalMode === 'add' ? 'ikoManagement.addColumn' : 'ikoManagement.editColumn') | translate,\n } as state\"\n [open]=\"$openModal()\"\n [title]=\"state.title\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ state.title }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\" class=\"iko-column-form\">\n <cds-label>\n {{ 'ikoManagement.titleTitle' | translate }}\n\n <input\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnTitlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label>\n {{ 'ikoManagement.keyTitle' | translate }}\n\n <input\n [invalid]=\"key.dirty && key.invalid\"\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnKeyPlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label>\n {{ 'ikoManagement.pathTitle' | translate }}\n\n <input\n [invalid]=\"path.dirty && path.invalid\"\n formControlName=\"path\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnPathPlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-toggle\n formControlName=\"sortable\"\n [label]=\"'ikoManagement.sortableTitle' | translate\"\n [onText]=\"'ikoManagement.sortingEnabled' | translate\"\n [offText]=\"'ikoManagement.sortingDisabled' | translate\"\n ></cds-toggle>\n\n <v-select\n [invalid]=\"defaultSort.dirty && defaultSort.invalid\"\n formControlName=\"defaultSort\"\n [items]=\"sortSelectItems\"\n titleTranslationKey=\"ikoManagement.defaultSortTitle\"\n [appendInline]=\"false\"\n ></v-select>\n\n <v-select\n [invalid]=\"displayType.dirty && displayType.invalid\"\n formControlName=\"displayType\"\n [items]=\"displayTypeSelectItems\"\n titleTranslationKey=\"ikoManagement.displayType\"\n [appendInline]=\"false\"\n ></v-select>\n\n <v-input-label\n *ngIf=\"isDateDisplayType$ | async\"\n titleTranslationKey=\"listColumn.dateFormat\"\n tooltipTranslationKey=\"listColumn.dateFormatTooltip\"\n >\n <input cdsText formControlName=\"dateFormat\" />\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isBooleanDisplayType$ | async\"\n titleTranslationKey=\"listColumn.enumTitleOptional\"\n tooltipTranslationKey=\"listColumn.enumTooltipOptional\"\n >\n <valtimo-carbon-multi-input\n type=\"keyValue\"\n formControlName=\"booleanDisplayTypeParameters\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n ></valtimo-carbon-multi-input>\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isEnumDisplayType$ | async\"\n titleTranslationKey=\"listColumn.enumTitle\"\n tooltipTranslationKey=\"listColumn.enumTooltip\"\n >\n <valtimo-carbon-multi-input\n type=\"keyValue\"\n formControlName=\"enumDisplayTypeParameters\"\n ></valtimo-carbon-multi-input>\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isTagsDisplayType$ | async\"\n titleTranslationKey=\"listColumn.tagAmount\"\n tooltipTranslationKey=\"listColumn.tagAmountTooltip\"\n >\n <cds-number formControlName=\"tagAmount\" [min]=\"1\" [step]=\"1\"></cds-number>\n </v-input-label>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"form.invalid || form.disabled || !form.dirty\"\n cdsButton=\"primary\"\n (click)=\"addColumn()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".iko-column-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i6.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "ariaLabel", "skeleton"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: CarbonMultiInputModule }, { kind: "component", type: i1$2.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addButtonType", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorCaseDefinitionKey", "valuePathSelectorPrefixes", "valuePathSelectorShowCaseDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: NumberModule }, { kind: "component", type: i6.NumberComponent, selector: "cds-number, ibm-number", inputs: ["readonly", "theme", "disabled", "skeleton", "invalid", "id", "placeholder", "size", "required", "value", "min", "max", "label", "helperText", "invalidText", "step", "precision", "warn", "warnText", "ariaLabel", "decrementLabel", "incrementLabel", "fluid"], outputs: ["change"] }] }); }
|
|
3018
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementListModalComponent, deps: [{ token: IkoManagementApiService }, { token: i1$3.FormBuilder }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3019
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementListModalComponent, isStandalone: true, selector: "valtimo-iko-management-list-modal", inputs: { openModal: "openModal", listColumns: "listColumns", selectedListColumn: "selectedListColumn", modalMode: "modalMode" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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\n valtimoCdsModal\n *ngIf=\"{\n title:\n (modalMode === 'add' ? 'ikoManagement.addColumn' : 'ikoManagement.editColumn') | translate,\n } as state\"\n [open]=\"$openModal()\"\n [title]=\"state.title\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ state.title }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\" class=\"iko-column-form\">\n <cds-label>\n {{ 'ikoManagement.titleTitle' | translate }}\n\n <input\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnTitlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label>\n {{ 'ikoManagement.keyTitle' | translate }}\n\n <input\n [invalid]=\"key.dirty && key.invalid\"\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnKeyPlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label>\n {{ 'ikoManagement.pathTitle' | translate }}\n\n <input\n [invalid]=\"path.dirty && path.invalid\"\n formControlName=\"path\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnPathPlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-toggle\n formControlName=\"sortable\"\n [label]=\"'ikoManagement.sortableTitle' | translate\"\n [onText]=\"'ikoManagement.sortingEnabled' | translate\"\n [offText]=\"'ikoManagement.sortingDisabled' | translate\"\n ></cds-toggle>\n\n <v-select\n [invalid]=\"defaultSort.dirty && defaultSort.invalid\"\n formControlName=\"defaultSort\"\n [items]=\"sortSelectItems\"\n titleTranslationKey=\"ikoManagement.defaultSortTitle\"\n [appendInline]=\"false\"\n ></v-select>\n\n <v-select\n [invalid]=\"displayType.dirty && displayType.invalid\"\n formControlName=\"displayType\"\n [items]=\"displayTypeSelectItems\"\n titleTranslationKey=\"ikoManagement.displayType\"\n [appendInline]=\"false\"\n ></v-select>\n\n <v-input-label\n *ngIf=\"isDateDisplayType$ | async\"\n titleTranslationKey=\"listColumn.dateFormat\"\n tooltipTranslationKey=\"listColumn.dateFormatTooltip\"\n >\n <input cdsText formControlName=\"dateFormat\" />\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isBooleanDisplayType$ | async\"\n titleTranslationKey=\"listColumn.enumTitleOptional\"\n tooltipTranslationKey=\"listColumn.enumTooltipOptional\"\n >\n <valtimo-carbon-multi-input\n type=\"keyValue\"\n formControlName=\"booleanDisplayTypeParameters\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n ></valtimo-carbon-multi-input>\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isEnumDisplayType$ | async\"\n titleTranslationKey=\"listColumn.enumTitle\"\n tooltipTranslationKey=\"listColumn.enumTooltip\"\n >\n <valtimo-carbon-multi-input\n type=\"keyValue\"\n formControlName=\"enumDisplayTypeParameters\"\n ></valtimo-carbon-multi-input>\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isTagsDisplayType$ | async\"\n titleTranslationKey=\"listColumn.tagAmount\"\n tooltipTranslationKey=\"listColumn.tagAmountTooltip\"\n >\n <cds-number formControlName=\"tagAmount\" [min]=\"1\" [step]=\"1\"></cds-number>\n </v-input-label>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"form.invalid || form.disabled || !form.dirty\"\n cdsButton=\"primary\"\n (click)=\"addColumn()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".iko-column-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i6.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "ariaLabel", "skeleton"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: CarbonMultiInputModule }, { kind: "component", type: i2$2.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addButtonType", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorCaseDefinitionKey", "valuePathSelectorPrefixes", "valuePathSelectorShowCaseDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i2$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: NumberModule }, { kind: "component", type: i6.NumberComponent, selector: "cds-number, ibm-number", inputs: ["readonly", "theme", "disabled", "skeleton", "invalid", "id", "placeholder", "size", "required", "value", "min", "max", "label", "helperText", "invalidText", "step", "precision", "warn", "warnText", "ariaLabel", "decrementLabel", "incrementLabel", "fluid"], outputs: ["change"] }] }); }
|
|
2734
3020
|
}
|
|
2735
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3021
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementListModalComponent, decorators: [{
|
|
2736
3022
|
type: Component,
|
|
2737
3023
|
args: [{ standalone: true, selector: 'valtimo-iko-management-list-modal', imports: [
|
|
2738
3024
|
CommonModule,
|
|
@@ -2750,7 +3036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2750
3036
|
InputLabelModule,
|
|
2751
3037
|
NumberModule,
|
|
2752
3038
|
], template: "<!--\n ~ Copyright 2015-2025 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\n valtimoCdsModal\n *ngIf=\"{\n title:\n (modalMode === 'add' ? 'ikoManagement.addColumn' : 'ikoManagement.editColumn') | translate,\n } as state\"\n [open]=\"$openModal()\"\n [title]=\"state.title\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ state.title }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\" class=\"iko-column-form\">\n <cds-label>\n {{ 'ikoManagement.titleTitle' | translate }}\n\n <input\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnTitlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label>\n {{ 'ikoManagement.keyTitle' | translate }}\n\n <input\n [invalid]=\"key.dirty && key.invalid\"\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnKeyPlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label>\n {{ 'ikoManagement.pathTitle' | translate }}\n\n <input\n [invalid]=\"path.dirty && path.invalid\"\n formControlName=\"path\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnPathPlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-toggle\n formControlName=\"sortable\"\n [label]=\"'ikoManagement.sortableTitle' | translate\"\n [onText]=\"'ikoManagement.sortingEnabled' | translate\"\n [offText]=\"'ikoManagement.sortingDisabled' | translate\"\n ></cds-toggle>\n\n <v-select\n [invalid]=\"defaultSort.dirty && defaultSort.invalid\"\n formControlName=\"defaultSort\"\n [items]=\"sortSelectItems\"\n titleTranslationKey=\"ikoManagement.defaultSortTitle\"\n [appendInline]=\"false\"\n ></v-select>\n\n <v-select\n [invalid]=\"displayType.dirty && displayType.invalid\"\n formControlName=\"displayType\"\n [items]=\"displayTypeSelectItems\"\n titleTranslationKey=\"ikoManagement.displayType\"\n [appendInline]=\"false\"\n ></v-select>\n\n <v-input-label\n *ngIf=\"isDateDisplayType$ | async\"\n titleTranslationKey=\"listColumn.dateFormat\"\n tooltipTranslationKey=\"listColumn.dateFormatTooltip\"\n >\n <input cdsText formControlName=\"dateFormat\" />\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isBooleanDisplayType$ | async\"\n titleTranslationKey=\"listColumn.enumTitleOptional\"\n tooltipTranslationKey=\"listColumn.enumTooltipOptional\"\n >\n <valtimo-carbon-multi-input\n type=\"keyValue\"\n formControlName=\"booleanDisplayTypeParameters\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n ></valtimo-carbon-multi-input>\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isEnumDisplayType$ | async\"\n titleTranslationKey=\"listColumn.enumTitle\"\n tooltipTranslationKey=\"listColumn.enumTooltip\"\n >\n <valtimo-carbon-multi-input\n type=\"keyValue\"\n formControlName=\"enumDisplayTypeParameters\"\n ></valtimo-carbon-multi-input>\n </v-input-label>\n\n <v-input-label\n *ngIf=\"isTagsDisplayType$ | async\"\n titleTranslationKey=\"listColumn.tagAmount\"\n tooltipTranslationKey=\"listColumn.tagAmountTooltip\"\n >\n <cds-number formControlName=\"tagAmount\" [min]=\"1\" [step]=\"1\"></cds-number>\n </v-input-label>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"form.invalid || form.disabled || !form.dirty\"\n cdsButton=\"primary\"\n (click)=\"addColumn()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".iko-column-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
2753
|
-
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$3.FormBuilder }, { type:
|
|
3039
|
+
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$3.FormBuilder }, { type: i1$2.ActivatedRoute }], propDecorators: { openModal: [{
|
|
2754
3040
|
type: Input
|
|
2755
3041
|
}], listColumns: [{
|
|
2756
3042
|
type: Input
|
|
@@ -2787,7 +3073,7 @@ class IkoManagementListComponent {
|
|
|
2787
3073
|
this.$loading = signal(true);
|
|
2788
3074
|
this.$disableInput = signal(true);
|
|
2789
3075
|
this.$modalMode = signal('add');
|
|
2790
|
-
this.
|
|
3076
|
+
this._ikoViewKey$ = this.route.params.pipe(map(params => params?.key), filter(key => !!key));
|
|
2791
3077
|
this.$ikoListColumnDtos = signal([]);
|
|
2792
3078
|
this.$selectedListColumn = signal(null);
|
|
2793
3079
|
this._reloadColumns$ = new BehaviorSubject(null);
|
|
@@ -2866,7 +3152,7 @@ class IkoManagementListComponent {
|
|
|
2866
3152
|
this._subscriptions = new Subscription();
|
|
2867
3153
|
}
|
|
2868
3154
|
ngOnInit() {
|
|
2869
|
-
this._subscriptions.add(combineLatest([this.
|
|
3155
|
+
this._subscriptions.add(combineLatest([this._ikoViewKey$, this._reloadColumns$])
|
|
2870
3156
|
.pipe(tap(() => this.$disableInput.set(true)), switchMap(([key]) => this.ikoManagementApiService.getIkoListColumns(key)), tap(res => {
|
|
2871
3157
|
this.$ikoListColumnDtos.set(res);
|
|
2872
3158
|
this.$loading.set(false);
|
|
@@ -2882,7 +3168,7 @@ class IkoManagementListComponent {
|
|
|
2882
3168
|
.map(item => listColumns.find(column => column.id === item.id))
|
|
2883
3169
|
.map((item, index) => ({ ...item, order: index }));
|
|
2884
3170
|
this.disableInput();
|
|
2885
|
-
this.
|
|
3171
|
+
this._ikoViewKey$
|
|
2886
3172
|
.pipe(switchMap(key => this.ikoManagementApiService.updateIkoListColumnOrder(key, mappedItems)))
|
|
2887
3173
|
.subscribe({
|
|
2888
3174
|
next: () => {
|
|
@@ -2911,7 +3197,7 @@ class IkoManagementListComponent {
|
|
|
2911
3197
|
}
|
|
2912
3198
|
onDeleteListColumn(event) {
|
|
2913
3199
|
this.disableInput();
|
|
2914
|
-
this.
|
|
3200
|
+
this._ikoViewKey$
|
|
2915
3201
|
.pipe(switchMap(key => this.ikoManagementApiService.deleteIkoListColumn(key, event.key)))
|
|
2916
3202
|
.subscribe({
|
|
2917
3203
|
next: () => {
|
|
@@ -2947,10 +3233,10 @@ class IkoManagementListComponent {
|
|
|
2947
3233
|
reloadColumns() {
|
|
2948
3234
|
this._reloadColumns$.next(null);
|
|
2949
3235
|
}
|
|
2950
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2951
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3236
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementListComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: IkoManagementApiService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3237
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementListComponent, isStandalone: true, selector: "valtimo-iko-management-list-columns", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 columns: (ikoListColumns$ | async) || [],\n ikoListColumnDtos: $ikoListColumnDtos(),\n selectedListColumn: $selectedListColumn(),\n loading: $loading(),\n openModal: $openModal(),\n disableInput: $disableInput(),\n modalMode: $modalMode(),\n } as state\"\n>\n <valtimo-carbon-list\n [items]=\"state.columns\"\n [loading]=\"state.loading\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"state.disableInput\"\n [actionItems]=\"ACTION_ITEMS\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <div carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"onCreateButtonClicked()\">\n {{ 'ikoManagement.addColumn' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-iko-management-list-modal\n [openModal]=\"state.openModal\"\n [listColumns]=\"state.ikoListColumnDtos\"\n [selectedListColumn]=\"state.selectedListColumn\"\n [modalMode]=\"state.modalMode\"\n (closeModalEvent)=\"onCloseModalEvent($event)\"\n ></valtimo-iko-management-list-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchActions.deleteModalText\"\n [showModalSubject$]=\"openConfirmationModal$\"\n [outputOnConfirm]=\"state.selectedListColumn\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteListColumn($event)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n", styles: ["::ng-deep .tab-container{min-height:unset!important}::ng-deep .cds--inline-notification{max-width:100%}::ng-deep .cds--label{width:100%}.center-link{display:flex;align-items:center}.iko-list-columns__actions{display:flex;gap:8px}.list-columns__buttons{display:flex;gap:16px;flex-direction:row;justify-content:flex-end}\n/*!\n * Copyright 2015-2025 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.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", "showActionItems", "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: TabsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: IkoManagementListModalComponent, selector: "valtimo-iko-management-list-modal", inputs: ["openModal", "listColumns", "selectedListColumn", "modalMode"], outputs: ["closeModalEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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"] }] }); }
|
|
2952
3238
|
}
|
|
2953
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementListComponent, decorators: [{
|
|
2954
3240
|
type: Component,
|
|
2955
3241
|
args: [{ standalone: true, selector: 'valtimo-iko-management-list-columns', imports: [
|
|
2956
3242
|
CommonModule,
|
|
@@ -2962,7 +3248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2962
3248
|
IconModule,
|
|
2963
3249
|
ConfirmationModalModule,
|
|
2964
3250
|
], template: "<!--\n ~ Copyright 2015-2025 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 columns: (ikoListColumns$ | async) || [],\n ikoListColumnDtos: $ikoListColumnDtos(),\n selectedListColumn: $selectedListColumn(),\n loading: $loading(),\n openModal: $openModal(),\n disableInput: $disableInput(),\n modalMode: $modalMode(),\n } as state\"\n>\n <valtimo-carbon-list\n [items]=\"state.columns\"\n [loading]=\"state.loading\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"state.disableInput\"\n [actionItems]=\"ACTION_ITEMS\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <div carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"onCreateButtonClicked()\">\n {{ 'ikoManagement.addColumn' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-iko-management-list-modal\n [openModal]=\"state.openModal\"\n [listColumns]=\"state.ikoListColumnDtos\"\n [selectedListColumn]=\"state.selectedListColumn\"\n [modalMode]=\"state.modalMode\"\n (closeModalEvent)=\"onCloseModalEvent($event)\"\n ></valtimo-iko-management-list-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.searchActions.deleteModalText\"\n [showModalSubject$]=\"openConfirmationModal$\"\n [outputOnConfirm]=\"state.selectedListColumn\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteListColumn($event)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n", styles: ["::ng-deep .tab-container{min-height:unset!important}::ng-deep .cds--inline-notification{max-width:100%}::ng-deep .cds--label{width:100%}.center-link{display:flex;align-items:center}.iko-list-columns__actions{display:flex;gap:8px}.list-columns__buttons{display:flex;gap:16px;flex-direction:row;justify-content:flex-end}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
2965
|
-
}], ctorParameters: () => [{ type:
|
|
3251
|
+
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: IkoManagementApiService }, { type: i5.TranslateService }] });
|
|
2966
3252
|
|
|
2967
3253
|
/*
|
|
2968
3254
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -3019,7 +3305,7 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3019
3305
|
key: this.formBuilder.control('', [Validators.required]),
|
|
3020
3306
|
type: this.formBuilder.control('', [Validators.required]),
|
|
3021
3307
|
});
|
|
3022
|
-
this.
|
|
3308
|
+
this._ikoViewKey$ = this.route.params.pipe(map$1(params => params?.key), filter(key => !!key));
|
|
3023
3309
|
this._TAB_TYPES = [IkoTabType.WIDGETS];
|
|
3024
3310
|
this.tabTypeSelectItems = this._TAB_TYPES.map(tabType => ({
|
|
3025
3311
|
id: tabType,
|
|
@@ -3039,10 +3325,10 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3039
3325
|
addTab() {
|
|
3040
3326
|
const formValue = this.form.getRawValue();
|
|
3041
3327
|
this.disableForm();
|
|
3042
|
-
this.
|
|
3043
|
-
.pipe(switchMap(
|
|
3044
|
-
? this.ikoManagementApiService.createIkoTab(
|
|
3045
|
-
: this.ikoManagementApiService.updateIkoTab(
|
|
3328
|
+
this._ikoViewKey$
|
|
3329
|
+
.pipe(switchMap(ikoViewKey => this.modalMode === 'add'
|
|
3330
|
+
? this.ikoManagementApiService.createIkoTab(ikoViewKey, formValue.key, formValue)
|
|
3331
|
+
: this.ikoManagementApiService.updateIkoTab(ikoViewKey, formValue.key, formValue)))
|
|
3046
3332
|
.subscribe({
|
|
3047
3333
|
next: () => {
|
|
3048
3334
|
this.enableForm();
|
|
@@ -3060,10 +3346,10 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3060
3346
|
enableForm() {
|
|
3061
3347
|
this.form.enable();
|
|
3062
3348
|
}
|
|
3063
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3064
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3349
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementTabDetailsModalComponent, deps: [{ token: IkoManagementApiService }, { token: i1$3.FormBuilder }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3350
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementTabDetailsModalComponent, isStandalone: true, selector: "valtimo-iko-management-tab-details-modal", inputs: { openModal: "openModal", usedKeys: "usedKeys", selectedTab: "selectedTab", modalMode: "modalMode" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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\n (close)=\"closeModal()\"\n *ngIf=\"{\n title: (modalMode === 'add' ? 'ikoManagement.addTab' : 'ikoManagement.editTab') | translate,\n } as state\"\n [open]=\"$openModal()\"\n [title]=\"state.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ state.title }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\" class=\"iko-tab-form\">\n <cds-label>\n {{ 'ikoManagement.tabTitle' | translate }}\n\n <input\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.tabTitlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n formControlName=\"key\"\n labelTranslationKey=\"ikoManagement.keyTitle\"\n placeholderTranslationKey=\"ikoManagement.tabKeyPlaceholder\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"modalMode === 'edit' ? $selectedKey() : title.value\"\n [mode]=\"modalMode\"\n >\n </valtimo-auto-key-input>\n\n <v-select\n [invalid]=\"type.dirty && type.invalid\"\n [dropUp]=\"false\"\n formControlName=\"type\"\n [items]=\"tabTypeSelectItems\"\n titleTranslationKey=\"ikoManagement.tabTypeTitle\"\n [appendInline]=\"false\"\n ></v-select>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"form.invalid || form.disabled || !form.dirty\"\n cdsButton=\"primary\"\n (click)=\"addTab()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".iko-tab-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: CarbonMultiInputModule }, { kind: "ngmodule", type: InputLabelModule }, { kind: "ngmodule", type: NumberModule }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3065
3351
|
}
|
|
3066
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementTabDetailsModalComponent, decorators: [{
|
|
3067
3353
|
type: Component,
|
|
3068
3354
|
args: [{ selector: 'valtimo-iko-management-tab-details-modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3069
3355
|
CommonModule,
|
|
@@ -3081,8 +3367,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3081
3367
|
InputLabelModule,
|
|
3082
3368
|
NumberModule,
|
|
3083
3369
|
AutoKeyInputComponent,
|
|
3084
|
-
], template: "<!--\n ~ Copyright 2015-2025 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\n
|
|
3085
|
-
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$3.FormBuilder }, { type:
|
|
3370
|
+
], template: "<!--\n ~ Copyright 2015-2025 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\n (close)=\"closeModal()\"\n *ngIf=\"{\n title: (modalMode === 'add' ? 'ikoManagement.addTab' : 'ikoManagement.editTab') | translate,\n } as state\"\n [open]=\"$openModal()\"\n [title]=\"state.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ state.title }}\n </h3>\n </cds-modal-header>\n\n <form cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\" class=\"iko-tab-form\">\n <cds-label>\n {{ 'ikoManagement.tabTitle' | translate }}\n\n <input\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.tabTitlePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n formControlName=\"key\"\n labelTranslationKey=\"ikoManagement.keyTitle\"\n placeholderTranslationKey=\"ikoManagement.tabKeyPlaceholder\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"modalMode === 'edit' ? $selectedKey() : title.value\"\n [mode]=\"modalMode\"\n >\n </valtimo-auto-key-input>\n\n <v-select\n [invalid]=\"type.dirty && type.invalid\"\n [dropUp]=\"false\"\n formControlName=\"type\"\n [items]=\"tabTypeSelectItems\"\n titleTranslationKey=\"ikoManagement.tabTypeTitle\"\n [appendInline]=\"false\"\n ></v-select>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"form.invalid || form.disabled || !form.dirty\"\n cdsButton=\"primary\"\n (click)=\"addTab()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".iko-tab-form{display:flex;flex-direction:column;gap:16px;width:100%}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
3371
|
+
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$3.FormBuilder }, { type: i1$2.ActivatedRoute }], propDecorators: { openModal: [{
|
|
3086
3372
|
type: Input
|
|
3087
3373
|
}], usedKeys: [{
|
|
3088
3374
|
type: Input
|
|
@@ -3123,7 +3409,7 @@ class IkoManagementTabsComponent {
|
|
|
3123
3409
|
this.$openModal = signal(false);
|
|
3124
3410
|
this.$modalMode = signal('add');
|
|
3125
3411
|
this.openConfirmationModal$ = new BehaviorSubject(false);
|
|
3126
|
-
this.
|
|
3412
|
+
this._ikoViewKey$ = this.route.params.pipe(map(params => params?.key), filter(key => !!key));
|
|
3127
3413
|
this._reloadTabs$ = new BehaviorSubject(null);
|
|
3128
3414
|
this.ikoTabs$ = combineLatest([
|
|
3129
3415
|
toObservable(this.$ikoTabDtos),
|
|
@@ -3166,7 +3452,7 @@ class IkoManagementTabsComponent {
|
|
|
3166
3452
|
this._subscriptions = new Subscription();
|
|
3167
3453
|
}
|
|
3168
3454
|
ngOnInit() {
|
|
3169
|
-
this._subscriptions.add(combineLatest([this.
|
|
3455
|
+
this._subscriptions.add(combineLatest([this._ikoViewKey$, this._reloadTabs$])
|
|
3170
3456
|
.pipe(tap(() => this.$disableInput.set(true)), switchMap(([key]) => this.ikoManagementApiService.getIkoTabs(key)), tap(res => {
|
|
3171
3457
|
this.$ikoTabDtos.set(res);
|
|
3172
3458
|
this.$loading.set(false);
|
|
@@ -3207,7 +3493,7 @@ class IkoManagementTabsComponent {
|
|
|
3207
3493
|
.map(item => tabs.find(column => column.key === item.key))
|
|
3208
3494
|
.map((item, index) => ({ ...item, order: index, title: item.title || null }));
|
|
3209
3495
|
this.disableInput();
|
|
3210
|
-
this.
|
|
3496
|
+
this._ikoViewKey$
|
|
3211
3497
|
.pipe(switchMap(key => this.ikoManagementApiService.updateIkoTabs(key, mappedItems)))
|
|
3212
3498
|
.subscribe({
|
|
3213
3499
|
next: () => {
|
|
@@ -3237,7 +3523,7 @@ class IkoManagementTabsComponent {
|
|
|
3237
3523
|
}
|
|
3238
3524
|
onDeleteTab(event) {
|
|
3239
3525
|
this.disableInput();
|
|
3240
|
-
this.
|
|
3526
|
+
this._ikoViewKey$
|
|
3241
3527
|
.pipe(switchMap(key => this.ikoManagementApiService.deleteIkoTab(key, event.key)))
|
|
3242
3528
|
.subscribe({
|
|
3243
3529
|
next: () => {
|
|
@@ -3258,10 +3544,10 @@ class IkoManagementTabsComponent {
|
|
|
3258
3544
|
reloadTabs() {
|
|
3259
3545
|
this._reloadTabs$.next(null);
|
|
3260
3546
|
}
|
|
3261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3547
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementTabsComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: IkoManagementApiService }, { token: i5.TranslateService }, { token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3548
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementTabsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 tabs: (ikoTabs$ | async) || [],\n ikoTabColumnDtos: $ikoTabDtos(),\n selectedTab: $selectedTab(),\n loading: $loading(),\n openModal: $openModal(),\n disableInput: $disableInput(),\n modalMode: $modalMode(),\n usedKeys: $usedKeys(),\n } as state\"\n>\n <valtimo-carbon-list\n [items]=\"state.tabs\"\n [loading]=\"state.loading\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"state.disableInput\"\n [actionItems]=\"ACTION_ITEMS\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <div carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"onCreateButtonClicked()\">\n {{ 'ikoManagement.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n\n <valtimo-no-results\n [title]=\"'ikoManagement.noTabConfigWarningTitle' | translate\"\n [description]=\"'ikoManagement.noTabConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.deleteTabModalText\"\n [showModalSubject$]=\"openConfirmationModal$\"\n [outputOnConfirm]=\"state.selectedTab\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteTab($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-iko-management-tab-details-modal\n [openModal]=\"state.openModal\"\n [selectedTab]=\"state.selectedTab\"\n [modalMode]=\"state.modalMode\"\n [usedKeys]=\"state.usedKeys\"\n (closeModalEvent)=\"onCloseModalEvent($event)\"\n ></valtimo-iko-management-tab-details-modal>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.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", "showActionItems", "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: TabsModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: IkoManagementTabDetailsModalComponent, selector: "valtimo-iko-management-tab-details-modal", inputs: ["openModal", "usedKeys", "selectedTab", "modalMode"], outputs: ["closeModalEvent"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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"] }] }); }
|
|
3263
3549
|
}
|
|
3264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementTabsComponent, decorators: [{
|
|
3265
3551
|
type: Component,
|
|
3266
3552
|
args: [{ standalone: true, imports: [
|
|
3267
3553
|
CommonModule,
|
|
@@ -3274,7 +3560,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3274
3560
|
TranslatePipe,
|
|
3275
3561
|
ConfirmationModalModule,
|
|
3276
3562
|
], template: "<!--\n ~ Copyright 2015-2025 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 tabs: (ikoTabs$ | async) || [],\n ikoTabColumnDtos: $ikoTabDtos(),\n selectedTab: $selectedTab(),\n loading: $loading(),\n openModal: $openModal(),\n disableInput: $disableInput(),\n modalMode: $modalMode(),\n usedKeys: $usedKeys(),\n } as state\"\n>\n <valtimo-carbon-list\n [items]=\"state.tabs\"\n [loading]=\"state.loading\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"state.disableInput\"\n [actionItems]=\"ACTION_ITEMS\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <div carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"onCreateButtonClicked()\">\n {{ 'ikoManagement.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n\n <valtimo-no-results\n [title]=\"'ikoManagement.noTabConfigWarningTitle' | translate\"\n [description]=\"'ikoManagement.noTabConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.deleteTabModalText\"\n [showModalSubject$]=\"openConfirmationModal$\"\n [outputOnConfirm]=\"state.selectedTab\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteTab($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-iko-management-tab-details-modal\n [openModal]=\"state.openModal\"\n [selectedTab]=\"state.selectedTab\"\n [modalMode]=\"state.modalMode\"\n [usedKeys]=\"state.usedKeys\"\n (closeModalEvent)=\"onCloseModalEvent($event)\"\n ></valtimo-iko-management-tab-details-modal>\n</ng-container>\n" }]
|
|
3277
|
-
}], ctorParameters: () => [{ type:
|
|
3563
|
+
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: IkoManagementApiService }, { type: i5.TranslateService }, { type: i1$2.Router }] });
|
|
3278
3564
|
|
|
3279
3565
|
/*
|
|
3280
3566
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -3409,13 +3695,13 @@ class IkoManagementDetailsComponent {
|
|
|
3409
3695
|
});
|
|
3410
3696
|
});
|
|
3411
3697
|
}
|
|
3412
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3413
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementDetailsComponent, deps: [{ token: IkoApiService }, { token: i1$2.ActivatedRoute }, { token: i2$2.PageTitleService }, { token: i1$2.Router }, { token: i2$2.BreadcrumbService }, { token: IkoManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3699
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementDetailsComponent, isStandalone: true, selector: "valtimo-iko-management-details", viewQueries: [{ propertyName: "dynamicContainer", first: true, predicate: ["tabComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 currentMenuItem: currentMenuItem$ | async,\n tabKey: tabKey$ | async,\n } as obs\"\n>\n <cds-tabs type=\"contained\">\n <cds-tab\n *ngFor=\"let tab of TABS\"\n [active]=\"obs.tabKey === tab.key\"\n [heading]=\"tab.title | translate\"\n (selected)=\"onTabSelected(tab)\"\n >\n </cds-tab>\n </cds-tabs>\n\n <ng-template #tabComponent></ng-template>\n</ng-container>\n", styles: [":host ::ng-deep .cds--tab-content{display:none}\n/*!\n * Copyright 2015-2025 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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i6.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i6.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
|
|
3414
3700
|
}
|
|
3415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementDetailsComponent, decorators: [{
|
|
3416
3702
|
type: Component,
|
|
3417
3703
|
args: [{ selector: 'valtimo-iko-management-details', standalone: true, imports: [CommonModule, CarbonListModule, TabsModule, TranslateModule], template: "<!--\n ~ Copyright 2015-2025 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 currentMenuItem: currentMenuItem$ | async,\n tabKey: tabKey$ | async,\n } as obs\"\n>\n <cds-tabs type=\"contained\">\n <cds-tab\n *ngFor=\"let tab of TABS\"\n [active]=\"obs.tabKey === tab.key\"\n [heading]=\"tab.title | translate\"\n (selected)=\"onTabSelected(tab)\"\n >\n </cds-tab>\n </cds-tabs>\n\n <ng-template #tabComponent></ng-template>\n</ng-container>\n", styles: [":host ::ng-deep .cds--tab-content{display:none}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
3418
|
-
}], ctorParameters: () => [{ type: IkoApiService }, { type:
|
|
3704
|
+
}], ctorParameters: () => [{ type: IkoApiService }, { type: i1$2.ActivatedRoute }, { type: i2$2.PageTitleService }, { type: i1$2.Router }, { type: i2$2.BreadcrumbService }, { type: IkoManagementApiService }], propDecorators: { dynamicContainer: [{
|
|
3419
3705
|
type: ViewChild,
|
|
3420
3706
|
args: ['tabComponent', { static: false, read: ViewContainerRef }]
|
|
3421
3707
|
}] } });
|
|
@@ -3424,22 +3710,32 @@ class IkoManagementViewModalComponent {
|
|
|
3424
3710
|
set open(value) {
|
|
3425
3711
|
this._open$.next(value);
|
|
3426
3712
|
if (!value)
|
|
3427
|
-
this.
|
|
3713
|
+
this.formGroup.reset();
|
|
3428
3714
|
}
|
|
3429
3715
|
get open$() {
|
|
3430
3716
|
return this._open$.asObservable();
|
|
3431
3717
|
}
|
|
3718
|
+
set modalMode(value) {
|
|
3719
|
+
this._modalMode = value;
|
|
3720
|
+
}
|
|
3721
|
+
get modalMode() {
|
|
3722
|
+
return this._modalMode;
|
|
3723
|
+
}
|
|
3432
3724
|
set apiKey(value) {
|
|
3433
3725
|
if (!value)
|
|
3434
3726
|
return;
|
|
3435
3727
|
this._apiKey$.next(value);
|
|
3436
3728
|
}
|
|
3437
3729
|
set prefillData(value) {
|
|
3438
|
-
|
|
3439
|
-
|
|
3730
|
+
if (!value) {
|
|
3731
|
+
this.$prefillData.set(null);
|
|
3440
3732
|
return;
|
|
3733
|
+
}
|
|
3734
|
+
this.$prefillData.set(value);
|
|
3441
3735
|
this.formGroup.patchValue(value);
|
|
3442
|
-
|
|
3736
|
+
}
|
|
3737
|
+
get title() {
|
|
3738
|
+
return this.formGroup.get('title');
|
|
3443
3739
|
}
|
|
3444
3740
|
constructor(fb, ikoManagementApiService) {
|
|
3445
3741
|
this.fb = fb;
|
|
@@ -3447,8 +3743,9 @@ class IkoManagementViewModalComponent {
|
|
|
3447
3743
|
this._open$ = new BehaviorSubject(false);
|
|
3448
3744
|
this._apiKey$ = new BehaviorSubject(null);
|
|
3449
3745
|
this.$prefillData = signal(null);
|
|
3746
|
+
this.usedKeys = [];
|
|
3450
3747
|
this.modalClose = new EventEmitter();
|
|
3451
|
-
this.propertyFields$ = this.open$.pipe(filter((open) => !!open), switchMap(() => this._apiKey$), switchMap((repositoryKey) => this.ikoManagementApiService.
|
|
3748
|
+
this.propertyFields$ = this.open$.pipe(filter((open) => !!open), switchMap(() => this._apiKey$), switchMap((repositoryKey) => this.ikoManagementApiService.getIkoViewType(repositoryKey ?? '')), switchMap((repository) => this.ikoManagementApiService.getIkoViewPropertyFields(repository.type)));
|
|
3452
3749
|
this.formGroup = this.fb.group({
|
|
3453
3750
|
title: this.fb.control('', Validators.required),
|
|
3454
3751
|
key: this.fb.control('', Validators.required),
|
|
@@ -3461,6 +3758,9 @@ class IkoManagementViewModalComponent {
|
|
|
3461
3758
|
}
|
|
3462
3759
|
onCancel() {
|
|
3463
3760
|
this.modalClose.emit(null);
|
|
3761
|
+
runAfterCarbonModalClosed(() => {
|
|
3762
|
+
this.resetForm();
|
|
3763
|
+
});
|
|
3464
3764
|
}
|
|
3465
3765
|
onSave() {
|
|
3466
3766
|
this.propertyFields$.pipe(take(1)).subscribe(fields => {
|
|
@@ -3479,6 +3779,9 @@ class IkoManagementViewModalComponent {
|
|
|
3479
3779
|
});
|
|
3480
3780
|
this.modalClose.emit(formData);
|
|
3481
3781
|
});
|
|
3782
|
+
runAfterCarbonModalClosed(() => {
|
|
3783
|
+
this.resetForm();
|
|
3784
|
+
});
|
|
3482
3785
|
}
|
|
3483
3786
|
resetForm() {
|
|
3484
3787
|
setTimeout(() => {
|
|
@@ -3487,13 +3790,12 @@ class IkoManagementViewModalComponent {
|
|
|
3487
3790
|
key: '',
|
|
3488
3791
|
properties: {},
|
|
3489
3792
|
});
|
|
3490
|
-
this.formGroup.get('key')?.enable();
|
|
3491
3793
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
3492
3794
|
}
|
|
3493
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3494
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3795
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementViewModalComponent, deps: [{ token: i1$3.FormBuilder }, { token: IkoManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3796
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementViewModalComponent, isStandalone: true, selector: "valtimo-iko-management-view-modal", inputs: { open: "open", modalMode: "modalMode", apiKey: "apiKey", prefillData: "prefillData", usedKeys: "usedKeys" }, outputs: { modalClose: "modalClose" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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$ | async\" size=\"sm\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ 'ikoManagement.views.' + modalMode | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"formGroup\" cdsModalContent>\n <cds-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n cdsLayer\n placeholder=\"{{ 'interface.title' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"$prefillData()?.properties\"\n />\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"formGroup.invalid\" cdsButton=\"primary\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}fieldset{display:flex;gap:16px}::ng-deep label{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: PropertiesFormComponent, selector: "valtimo-iko-management-properties", inputs: ["propertiesFormGroup", "fields", "prefillData"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3495
3797
|
}
|
|
3496
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementViewModalComponent, decorators: [{
|
|
3497
3799
|
type: Component,
|
|
3498
3800
|
args: [{ selector: 'valtimo-iko-management-view-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
3499
3801
|
CommonModule,
|
|
@@ -3505,13 +3807,261 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3505
3807
|
ButtonModule,
|
|
3506
3808
|
IconModule,
|
|
3507
3809
|
PropertiesFormComponent,
|
|
3508
|
-
|
|
3810
|
+
LayerModule,
|
|
3811
|
+
AutoKeyInputComponent,
|
|
3812
|
+
], template: "<!--\n ~ Copyright 2015-2025 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$ | async\" size=\"sm\" showFooter=\"true\" (close)=\"onCancel()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ 'ikoManagement.views.' + modalMode | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"formGroup\" cdsModalContent>\n <cds-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n cdsLayer\n placeholder=\"{{ 'interface.title' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"$prefillData()?.properties\"\n />\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"formGroup.invalid\" cdsButton=\"primary\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["form{display:flex;flex-direction:column;gap:16px}fieldset{display:flex;gap:16px}::ng-deep label{width:100%}\n"] }]
|
|
3509
3813
|
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: IkoManagementApiService }], propDecorators: { open: [{
|
|
3510
3814
|
type: Input
|
|
3815
|
+
}], modalMode: [{
|
|
3816
|
+
type: Input
|
|
3511
3817
|
}], apiKey: [{
|
|
3512
3818
|
type: Input
|
|
3513
3819
|
}], prefillData: [{
|
|
3514
3820
|
type: Input
|
|
3821
|
+
}], usedKeys: [{
|
|
3822
|
+
type: Input
|
|
3823
|
+
}], modalClose: [{
|
|
3824
|
+
type: Output
|
|
3825
|
+
}] } });
|
|
3826
|
+
|
|
3827
|
+
/*
|
|
3828
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
3829
|
+
*
|
|
3830
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3831
|
+
* you may not use this file except in compliance with the License.
|
|
3832
|
+
* You may obtain a copy of the License at
|
|
3833
|
+
*
|
|
3834
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3835
|
+
*
|
|
3836
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3837
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3838
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3839
|
+
* See the License for the specific language governing permissions and
|
|
3840
|
+
* limitations under the License.
|
|
3841
|
+
*/
|
|
3842
|
+
var UPLOAD_STATUS;
|
|
3843
|
+
(function (UPLOAD_STATUS) {
|
|
3844
|
+
UPLOAD_STATUS["ACTIVE"] = "active";
|
|
3845
|
+
UPLOAD_STATUS["ERROR"] = "error";
|
|
3846
|
+
UPLOAD_STATUS["FINISHED"] = "finished";
|
|
3847
|
+
})(UPLOAD_STATUS || (UPLOAD_STATUS = {}));
|
|
3848
|
+
var UPLOAD_STEP;
|
|
3849
|
+
(function (UPLOAD_STEP) {
|
|
3850
|
+
UPLOAD_STEP["FILE_SELECT"] = "fileSelect";
|
|
3851
|
+
UPLOAD_STEP["FILE_UPLOAD"] = "fileUpload";
|
|
3852
|
+
UPLOAD_STEP["ACCESS_CONTROL"] = "accessControl";
|
|
3853
|
+
})(UPLOAD_STEP || (UPLOAD_STEP = {}));
|
|
3854
|
+
const STEPS = [UPLOAD_STEP.FILE_SELECT, UPLOAD_STEP.FILE_UPLOAD, UPLOAD_STEP.ACCESS_CONTROL];
|
|
3855
|
+
|
|
3856
|
+
/*
|
|
3857
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
3858
|
+
*
|
|
3859
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3860
|
+
* you may not use this file except in compliance with the License.
|
|
3861
|
+
* You may obtain a copy of the License at
|
|
3862
|
+
*
|
|
3863
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3864
|
+
*
|
|
3865
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3866
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3867
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3868
|
+
* See the License for the specific language governing permissions and
|
|
3869
|
+
* limitations under the License.
|
|
3870
|
+
*/
|
|
3871
|
+
class IkoManagementUploadStepComponent {
|
|
3872
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementUploadStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3873
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementUploadStepComponent, isStandalone: true, selector: "valtimo-case-management-upload-step", inputs: { illustration: "illustration", message: "message", title: "title" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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=\"valtimo-upload-step__content\">\n <div class=\"valtimo-upload-step__title\">{{ title }}</div>\n\n <div class=\"valtimo-upload-step__message\">{{ message }}</div>\n</div>\n\n<img [src]=\"illustration\" alt=\"{{ illustration }}\" class=\"valtimo-upload-step__illustration\" />\n", styles: [":host{display:flex;justify-content:space-around;align-items:center;gap:32px;height:100%}:host label{color:unset}.valtimo-upload-step__content{display:flex;flex-direction:column;gap:16px}.valtimo-upload-step__title{font-weight:600;font-size:16px}.valtimo-upload-step__message{font-size:16px;line-height:28px}.valtimo-upload-step__illustration{max-width:200px}\n/*!\n * Copyright 2015-2025 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"] }); }
|
|
3874
|
+
}
|
|
3875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementUploadStepComponent, decorators: [{
|
|
3876
|
+
type: Component,
|
|
3877
|
+
args: [{ standalone: true, selector: 'valtimo-case-management-upload-step', template: "<!--\n ~ Copyright 2015-2025 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=\"valtimo-upload-step__content\">\n <div class=\"valtimo-upload-step__title\">{{ title }}</div>\n\n <div class=\"valtimo-upload-step__message\">{{ message }}</div>\n</div>\n\n<img [src]=\"illustration\" alt=\"{{ illustration }}\" class=\"valtimo-upload-step__illustration\" />\n", styles: [":host{display:flex;justify-content:space-around;align-items:center;gap:32px;height:100%}:host label{color:unset}.valtimo-upload-step__content{display:flex;flex-direction:column;gap:16px}.valtimo-upload-step__title{font-weight:600;font-size:16px}.valtimo-upload-step__message{font-size:16px;line-height:28px}.valtimo-upload-step__illustration{max-width:200px}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
3878
|
+
}], propDecorators: { illustration: [{
|
|
3879
|
+
type: Input
|
|
3880
|
+
}], message: [{
|
|
3881
|
+
type: Input
|
|
3882
|
+
}], title: [{
|
|
3883
|
+
type: Input
|
|
3884
|
+
}] } });
|
|
3885
|
+
|
|
3886
|
+
/*
|
|
3887
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
3888
|
+
*
|
|
3889
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3890
|
+
* you may not use this file except in compliance with the License.
|
|
3891
|
+
* You may obtain a copy of the License at
|
|
3892
|
+
*
|
|
3893
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3894
|
+
*
|
|
3895
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3896
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3897
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3898
|
+
* See the License for the specific language governing permissions and
|
|
3899
|
+
* limitations under the License.
|
|
3900
|
+
*/
|
|
3901
|
+
class IkoManagementUploadModalComponent {
|
|
3902
|
+
set open(value) {
|
|
3903
|
+
this._open$.next(value);
|
|
3904
|
+
if (!value)
|
|
3905
|
+
this.resetForm();
|
|
3906
|
+
}
|
|
3907
|
+
get open$() {
|
|
3908
|
+
return this._open$.asObservable();
|
|
3909
|
+
}
|
|
3910
|
+
constructor(fb, translateService, ikoManagementApiService) {
|
|
3911
|
+
this.fb = fb;
|
|
3912
|
+
this.translateService = translateService;
|
|
3913
|
+
this.ikoManagementApiService = ikoManagementApiService;
|
|
3914
|
+
this._open$ = new BehaviorSubject(false);
|
|
3915
|
+
this.modalClose = new EventEmitter();
|
|
3916
|
+
this.showCheckboxError$ = new BehaviorSubject(false);
|
|
3917
|
+
this.activeStep$ = new BehaviorSubject(UPLOAD_STEP.FILE_SELECT);
|
|
3918
|
+
this.backButtonEnabled$ = this.activeStep$.pipe(map$1((activeStep) => [UPLOAD_STEP.ACCESS_CONTROL].includes(activeStep)));
|
|
3919
|
+
this._disabled$ = new BehaviorSubject(true);
|
|
3920
|
+
this.uploadStatus$ = new BehaviorSubject(UPLOAD_STATUS.ACTIVE);
|
|
3921
|
+
this.nextButtonDisabled$ = combineLatest([
|
|
3922
|
+
this.activeStep$,
|
|
3923
|
+
this._disabled$,
|
|
3924
|
+
this.uploadStatus$,
|
|
3925
|
+
]).pipe(map$1(([activeStep, disabled, status]) => activeStep === UPLOAD_STEP.FILE_UPLOAD ? status !== UPLOAD_STATUS.FINISHED : disabled));
|
|
3926
|
+
this.isStepAfterUpload$ = this.activeStep$.pipe(map$1((activeStep) => ![UPLOAD_STEP.FILE_SELECT].includes(activeStep)));
|
|
3927
|
+
this.notificationObj$ = combineLatest([
|
|
3928
|
+
this.translateService.stream('interface.warning'),
|
|
3929
|
+
this.translateService.stream('ikoManagement.importDefinition.overwriteWarning'),
|
|
3930
|
+
]).pipe(map$1(([title, message]) => ({
|
|
3931
|
+
type: 'warning',
|
|
3932
|
+
title,
|
|
3933
|
+
message,
|
|
3934
|
+
showClose: false,
|
|
3935
|
+
lowContrast: true,
|
|
3936
|
+
})));
|
|
3937
|
+
this.showCloseButton$ = this.activeStep$.pipe(map$1((activeStep) => [UPLOAD_STEP.FILE_SELECT, UPLOAD_STEP.FILE_UPLOAD].includes(activeStep)));
|
|
3938
|
+
this.acceptedFiles = ['.zip'];
|
|
3939
|
+
this.UPLOAD_STATUS = UPLOAD_STATUS;
|
|
3940
|
+
this.UPLOAD_STEP = UPLOAD_STEP;
|
|
3941
|
+
this._subscriptions = new Subscription();
|
|
3942
|
+
this._importFile$ = new BehaviorSubject('');
|
|
3943
|
+
this.form = this.fb.group({
|
|
3944
|
+
file: this.fb.control(new Set(), [Validators.required]),
|
|
3945
|
+
});
|
|
3946
|
+
this._checked = false;
|
|
3947
|
+
}
|
|
3948
|
+
ngOnInit() {
|
|
3949
|
+
const control = this.form.get('file');
|
|
3950
|
+
if (!control)
|
|
3951
|
+
return;
|
|
3952
|
+
this._subscriptions.add(this.form.get('file').valueChanges.subscribe((fileSet) => {
|
|
3953
|
+
const [fileItem] = fileSet;
|
|
3954
|
+
if (!fileItem) {
|
|
3955
|
+
this._disabled$.next(true);
|
|
3956
|
+
this.showCheckboxError$.next(false);
|
|
3957
|
+
this._checked = false;
|
|
3958
|
+
return;
|
|
3959
|
+
}
|
|
3960
|
+
this.setZipFile(fileItem);
|
|
3961
|
+
}));
|
|
3962
|
+
}
|
|
3963
|
+
ngOnDestroy() {
|
|
3964
|
+
this._subscriptions.unsubscribe();
|
|
3965
|
+
this.resetModal();
|
|
3966
|
+
}
|
|
3967
|
+
onCloseModal(definitionUploaded) {
|
|
3968
|
+
this.modalClose.emit(definitionUploaded ?? false);
|
|
3969
|
+
this.resetModal();
|
|
3970
|
+
}
|
|
3971
|
+
onNextClick(activeStep) {
|
|
3972
|
+
const nextIndex = STEPS.findIndex((step) => step === activeStep) + 1;
|
|
3973
|
+
if (nextIndex === STEPS.length) {
|
|
3974
|
+
return;
|
|
3975
|
+
}
|
|
3976
|
+
if (activeStep === UPLOAD_STEP.FILE_SELECT && !this._checked) {
|
|
3977
|
+
this.showCheckboxError$.next(true);
|
|
3978
|
+
return;
|
|
3979
|
+
}
|
|
3980
|
+
this.showCheckboxError$.next(false);
|
|
3981
|
+
this.activeStep$.next(STEPS[nextIndex]);
|
|
3982
|
+
if (STEPS[nextIndex] === UPLOAD_STEP.FILE_UPLOAD) {
|
|
3983
|
+
this.uploadDefinition();
|
|
3984
|
+
}
|
|
3985
|
+
}
|
|
3986
|
+
onBackClick(activeStep) {
|
|
3987
|
+
const prevIndex = STEPS.findIndex((step) => step === activeStep) - 1;
|
|
3988
|
+
if (prevIndex === -1) {
|
|
3989
|
+
return;
|
|
3990
|
+
}
|
|
3991
|
+
this.activeStep$.next(STEPS[prevIndex]);
|
|
3992
|
+
}
|
|
3993
|
+
onCheckedChange(checked) {
|
|
3994
|
+
this._checked = checked;
|
|
3995
|
+
if (!checked) {
|
|
3996
|
+
return;
|
|
3997
|
+
}
|
|
3998
|
+
this.showCheckboxError$.next(false);
|
|
3999
|
+
}
|
|
4000
|
+
onCancel() {
|
|
4001
|
+
this.modalClose.emit(false);
|
|
4002
|
+
}
|
|
4003
|
+
uploadDefinition() {
|
|
4004
|
+
this._disabled$.next(true);
|
|
4005
|
+
this._importFile$
|
|
4006
|
+
.pipe(switchMap((file) => this.ikoManagementApiService.importConfigurationZip(file)), take(1))
|
|
4007
|
+
.subscribe({
|
|
4008
|
+
next: () => {
|
|
4009
|
+
this._disabled$.next(false);
|
|
4010
|
+
this.uploadStatus$.next(UPLOAD_STATUS.FINISHED);
|
|
4011
|
+
},
|
|
4012
|
+
error: () => {
|
|
4013
|
+
this.uploadStatus$.next(UPLOAD_STATUS.ERROR);
|
|
4014
|
+
this._disabled$.next(false);
|
|
4015
|
+
},
|
|
4016
|
+
});
|
|
4017
|
+
}
|
|
4018
|
+
setZipFile(fileItem) {
|
|
4019
|
+
const file = fileItem?.file;
|
|
4020
|
+
if (!file) {
|
|
4021
|
+
this._importFile$.next('');
|
|
4022
|
+
return;
|
|
4023
|
+
}
|
|
4024
|
+
const blob = new Blob([fileItem.file], { type: fileItem.file.type });
|
|
4025
|
+
const fd = new FormData();
|
|
4026
|
+
fd.append('file', blob, fileItem.file.name);
|
|
4027
|
+
this._importFile$.next(fd);
|
|
4028
|
+
this._disabled$.next(false);
|
|
4029
|
+
}
|
|
4030
|
+
resetForm() {
|
|
4031
|
+
this.form.get('file')?.setValue(new Set());
|
|
4032
|
+
}
|
|
4033
|
+
resetModal() {
|
|
4034
|
+
setTimeout(() => {
|
|
4035
|
+
this.resetForm();
|
|
4036
|
+
this.activeStep$.next(UPLOAD_STEP.FILE_SELECT);
|
|
4037
|
+
this.uploadStatus$.next(UPLOAD_STATUS.ACTIVE);
|
|
4038
|
+
this.showCheckboxError$.next(false);
|
|
4039
|
+
this._disabled$.next(true);
|
|
4040
|
+
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
4041
|
+
}
|
|
4042
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementUploadModalComponent, deps: [{ token: i1$3.FormBuilder }, { token: i5.TranslateService }, { token: IkoManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4043
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoManagementUploadModalComponent, isStandalone: true, selector: "valtimo-iko-management-upload-modal", inputs: { open: "open" }, outputs: { modalClose: "modalClose" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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\n *ngIf=\"{\n activeStep: activeStep$ | async,\n uploadStatus: uploadStatus$ | async,\n backButtonEnabled: backButtonEnabled$ | async,\n nextButtonDisabled: nextButtonDisabled$ | async,\n notificationObj: notificationObj$ | async,\n showCheckboxError: showCheckboxError$ | async,\n isStepAfterUpload: isStepAfterUpload$ | async,\n showCloseButton: showCloseButton$ | async,\n } as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n class=\"valtimo-definition-uploader\"\n (close)=\"onCancel()\"\n>\n <cds-modal-header\n [showCloseButton]=\"obs.showCloseButton\"\n (closeSelect)=\"onCloseModal(obs.isStepAfterUpload && obs.uploadStatus !== UPLOAD_STATUS.ERROR)\"\n >\n <h3 cdsModalHeaderHeading>\n {{ 'ikoManagement.importDefinition.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-definition-uploader__content\">\n @switch (obs.activeStep) {\n @case (UPLOAD_STEP.FILE_SELECT) {\n <form [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"acceptedFiles\"\n [buttonText]=\"'ikoManagement.importDefinition.upload.buttonText' | translate\"\n [description]=\"'ikoManagement.importDefinition.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'ikoManagement.importDefinition.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n class=\"valtimo-definition-uploader__file-uploader\"\n >\n </cds-file-uploader>\n\n @if (!obs.nextButtonDisabled) {\n <cds-inline-notification\n [notificationObj]=\"obs.notificationObj\"\n ></cds-inline-notification>\n\n <div class=\"valtimo-definition-uploader__checkbox\">\n <cds-checkbox\n [class.valtimo-definition-uploader__checkbox--invalid]=\"obs.showCheckboxError\"\n (checkedChange)=\"onCheckedChange($event)\"\n >\n {{ 'ikoManagement.importDefinition.checkbox.message' | translate }}\n </cds-checkbox>\n\n @if (obs.showCheckboxError) {\n <div class=\"valtimo-definition-uploader__error\">\n <svg cdsIcon=\"warning--filled\" size=\"16\"></svg>\n {{ 'ikoManagement.importDefinition.checkbox.error' | translate }}\n </div>\n }\n </div>\n }\n </form>\n }\n\n @case (UPLOAD_STEP.FILE_UPLOAD) {\n <cds-progress-bar\n class=\"valtimo-definition-uploader__progress-bar\"\n [label]=\"'ikoManagement.importDefinition.progressBar.label' | translate\"\n [status]=\"obs.uploadStatus\"\n [helperText]=\"\n 'ikoManagement.importDefinition.progressBar.' + obs.uploadStatus | translate\n \"\n ></cds-progress-bar>\n }\n\n @default {\n <valtimo-case-management-upload-step\n [message]=\"\n 'ikoManagement.importDefinition.steps.' + obs.activeStep + '.message' | translate\n \"\n [title]=\"'ikoManagement.importDefinition.steps.' + obs.activeStep + '.title' | translate\"\n [illustration]=\"'valtimo-layout/img/' + obs.activeStep + '.svg'\"\n >\n </valtimo-case-management-upload-step>\n }\n }\n </section>\n\n <cds-modal-footer class=\"valtimo-definition-uploader__footer\">\n <button\n *ngIf=\"obs.uploadStatus !== UPLOAD_STATUS.ERROR\"\n class=\"valtimo-definition-uploader__cancel\"\n cdsButton=\"ghost\"\n (click)=\"onCloseModal(obs.isStepAfterUpload)\"\n >\n {{ (obs.isStepAfterUpload ? 'interface.skip' : 'interface.cancel') | translate }}\n </button>\n\n <div class=\"valtimo-definition-uploader__actions\">\n <button\n *ngIf=\"obs.backButtonEnabled\"\n cdsButton=\"secondary\"\n (click)=\"onBackClick(obs.activeStep)\"\n >\n {{ 'interface.back' | translate }}\n </button>\n\n <button\n *ngIf=\"\n obs.uploadStatus !== UPLOAD_STATUS.ERROR && obs.activeStep !== UPLOAD_STEP.ACCESS_CONTROL\n \"\n cdsButton=\"primary\"\n [disabled]=\"\n obs.nextButtonDisabled || (obs.activeStep === UPLOAD_STEP.FILE_SELECT && !_checked)\n \"\n (click)=\"onNextClick(obs.activeStep)\"\n >\n {{\n (obs.activeStep === UPLOAD_STEP.FILE_SELECT\n ? 'ikoManagement.importDefinition.startUpload'\n : 'interface.next'\n ) | translate\n }}\n </button>\n\n <button\n *ngIf=\"\n obs.uploadStatus === UPLOAD_STATUS.ERROR || obs.activeStep === UPLOAD_STEP.ACCESS_CONTROL\n \"\n class=\"valtimo-definition-uploader__cancel\"\n cdsButton=\"primary\"\n (click)=\"onCloseModal(true)\"\n >\n {{ 'interface.finish' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-definition-uploader__content form{width:100%}.valtimo-definition-uploader__content,.valtimo-definition-uploader__content form{display:flex;flex-direction:column;gap:16px}.valtimo-definition-uploader__footer ::ng-deep .cds--modal-footer{justify-content:unset!important;display:grid!important;grid-template-columns:1fr 1fr 2fr!important;grid-template-areas:\"cancel . actions\"!important}.valtimo-definition-uploader__progress-bar{height:100%;display:flex;flex-direction:column;justify-content:center}.valtimo-definition-uploader__error{display:flex;align-items:center;gap:10px;color:#da1e28;fill:#da1e28;font-size:12px}.valtimo-definition-uploader__cancel{grid-area:cancel;width:100%}.valtimo-definition-uploader__actions{grid-area:actions;display:flex}.valtimo-definition-uploader__actions button{flex:unset;width:100%}.valtimo-definition-uploader__file-uploader ::ng-deep cds-file{max-width:unset}.valtimo-definition-uploader__checkbox{display:flex;flex-direction:column;gap:8px}.valtimo-definition-uploader__checkbox--invalid ::ng-deep label:before{border-color:#da1e28;margin-inline:0}.valtimo-definition-uploader ::ng-deep .cds--modal-container{height:550px}.valtimo-definition-uploader ::ng-deep .cds--checkbox-label-text{color:#000}.valtimo-definition-uploader ::ng-deep cds-inline-notification,.valtimo-definition-uploader ::ng-deep .cds--inline-notification{width:100%!important;max-width:none!important}\n/*!\n * Copyright 2015-2025 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i6.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ProgressBarModule }, { kind: "component", type: i6.ProgressBar, selector: "cds-progress-bar, ibm-progress-bar", inputs: ["value", "id", "label", "helperText", "max", "type", "status", "size"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i6.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: FileUploaderModule }, { kind: "component", type: i6.FileUploader, selector: "cds-file-uploader, ibm-file-uploader", inputs: ["buttonText", "buttonType", "title", "description", "accept", "multiple", "skeleton", "size", "fileItemSize", "drop", "dropText", "fileUploaderId", "files", "disabled"], outputs: ["filesChange"] }, { kind: "component", type: IkoManagementUploadStepComponent, selector: "valtimo-case-management-upload-step", inputs: ["illustration", "message", "title"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i6.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4044
|
+
}
|
|
4045
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementUploadModalComponent, decorators: [{
|
|
4046
|
+
type: Component,
|
|
4047
|
+
args: [{ standalone: true, selector: 'valtimo-iko-management-upload-modal', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
4048
|
+
CommonModule,
|
|
4049
|
+
TranslateModule,
|
|
4050
|
+
ModalModule,
|
|
4051
|
+
ValtimoCdsModalDirective,
|
|
4052
|
+
InputModule,
|
|
4053
|
+
ReactiveFormsModule,
|
|
4054
|
+
ButtonModule,
|
|
4055
|
+
IconModule,
|
|
4056
|
+
ProgressBarModule,
|
|
4057
|
+
CheckboxModule,
|
|
4058
|
+
FileUploaderModule,
|
|
4059
|
+
IkoManagementUploadStepComponent,
|
|
4060
|
+
NotificationModule,
|
|
4061
|
+
TranslateModule,
|
|
4062
|
+
], template: "<!--\n ~ Copyright 2015-2025 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\n *ngIf=\"{\n activeStep: activeStep$ | async,\n uploadStatus: uploadStatus$ | async,\n backButtonEnabled: backButtonEnabled$ | async,\n nextButtonDisabled: nextButtonDisabled$ | async,\n notificationObj: notificationObj$ | async,\n showCheckboxError: showCheckboxError$ | async,\n isStepAfterUpload: isStepAfterUpload$ | async,\n showCloseButton: showCloseButton$ | async,\n } as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n class=\"valtimo-definition-uploader\"\n (close)=\"onCancel()\"\n>\n <cds-modal-header\n [showCloseButton]=\"obs.showCloseButton\"\n (closeSelect)=\"onCloseModal(obs.isStepAfterUpload && obs.uploadStatus !== UPLOAD_STATUS.ERROR)\"\n >\n <h3 cdsModalHeaderHeading>\n {{ 'ikoManagement.importDefinition.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-definition-uploader__content\">\n @switch (obs.activeStep) {\n @case (UPLOAD_STEP.FILE_SELECT) {\n <form [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"acceptedFiles\"\n [buttonText]=\"'ikoManagement.importDefinition.upload.buttonText' | translate\"\n [description]=\"'ikoManagement.importDefinition.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'ikoManagement.importDefinition.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n class=\"valtimo-definition-uploader__file-uploader\"\n >\n </cds-file-uploader>\n\n @if (!obs.nextButtonDisabled) {\n <cds-inline-notification\n [notificationObj]=\"obs.notificationObj\"\n ></cds-inline-notification>\n\n <div class=\"valtimo-definition-uploader__checkbox\">\n <cds-checkbox\n [class.valtimo-definition-uploader__checkbox--invalid]=\"obs.showCheckboxError\"\n (checkedChange)=\"onCheckedChange($event)\"\n >\n {{ 'ikoManagement.importDefinition.checkbox.message' | translate }}\n </cds-checkbox>\n\n @if (obs.showCheckboxError) {\n <div class=\"valtimo-definition-uploader__error\">\n <svg cdsIcon=\"warning--filled\" size=\"16\"></svg>\n {{ 'ikoManagement.importDefinition.checkbox.error' | translate }}\n </div>\n }\n </div>\n }\n </form>\n }\n\n @case (UPLOAD_STEP.FILE_UPLOAD) {\n <cds-progress-bar\n class=\"valtimo-definition-uploader__progress-bar\"\n [label]=\"'ikoManagement.importDefinition.progressBar.label' | translate\"\n [status]=\"obs.uploadStatus\"\n [helperText]=\"\n 'ikoManagement.importDefinition.progressBar.' + obs.uploadStatus | translate\n \"\n ></cds-progress-bar>\n }\n\n @default {\n <valtimo-case-management-upload-step\n [message]=\"\n 'ikoManagement.importDefinition.steps.' + obs.activeStep + '.message' | translate\n \"\n [title]=\"'ikoManagement.importDefinition.steps.' + obs.activeStep + '.title' | translate\"\n [illustration]=\"'valtimo-layout/img/' + obs.activeStep + '.svg'\"\n >\n </valtimo-case-management-upload-step>\n }\n }\n </section>\n\n <cds-modal-footer class=\"valtimo-definition-uploader__footer\">\n <button\n *ngIf=\"obs.uploadStatus !== UPLOAD_STATUS.ERROR\"\n class=\"valtimo-definition-uploader__cancel\"\n cdsButton=\"ghost\"\n (click)=\"onCloseModal(obs.isStepAfterUpload)\"\n >\n {{ (obs.isStepAfterUpload ? 'interface.skip' : 'interface.cancel') | translate }}\n </button>\n\n <div class=\"valtimo-definition-uploader__actions\">\n <button\n *ngIf=\"obs.backButtonEnabled\"\n cdsButton=\"secondary\"\n (click)=\"onBackClick(obs.activeStep)\"\n >\n {{ 'interface.back' | translate }}\n </button>\n\n <button\n *ngIf=\"\n obs.uploadStatus !== UPLOAD_STATUS.ERROR && obs.activeStep !== UPLOAD_STEP.ACCESS_CONTROL\n \"\n cdsButton=\"primary\"\n [disabled]=\"\n obs.nextButtonDisabled || (obs.activeStep === UPLOAD_STEP.FILE_SELECT && !_checked)\n \"\n (click)=\"onNextClick(obs.activeStep)\"\n >\n {{\n (obs.activeStep === UPLOAD_STEP.FILE_SELECT\n ? 'ikoManagement.importDefinition.startUpload'\n : 'interface.next'\n ) | translate\n }}\n </button>\n\n <button\n *ngIf=\"\n obs.uploadStatus === UPLOAD_STATUS.ERROR || obs.activeStep === UPLOAD_STEP.ACCESS_CONTROL\n \"\n class=\"valtimo-definition-uploader__cancel\"\n cdsButton=\"primary\"\n (click)=\"onCloseModal(true)\"\n >\n {{ 'interface.finish' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-definition-uploader__content form{width:100%}.valtimo-definition-uploader__content,.valtimo-definition-uploader__content form{display:flex;flex-direction:column;gap:16px}.valtimo-definition-uploader__footer ::ng-deep .cds--modal-footer{justify-content:unset!important;display:grid!important;grid-template-columns:1fr 1fr 2fr!important;grid-template-areas:\"cancel . actions\"!important}.valtimo-definition-uploader__progress-bar{height:100%;display:flex;flex-direction:column;justify-content:center}.valtimo-definition-uploader__error{display:flex;align-items:center;gap:10px;color:#da1e28;fill:#da1e28;font-size:12px}.valtimo-definition-uploader__cancel{grid-area:cancel;width:100%}.valtimo-definition-uploader__actions{grid-area:actions;display:flex}.valtimo-definition-uploader__actions button{flex:unset;width:100%}.valtimo-definition-uploader__file-uploader ::ng-deep cds-file{max-width:unset}.valtimo-definition-uploader__checkbox{display:flex;flex-direction:column;gap:8px}.valtimo-definition-uploader__checkbox--invalid ::ng-deep label:before{border-color:#da1e28;margin-inline:0}.valtimo-definition-uploader ::ng-deep .cds--modal-container{height:550px}.valtimo-definition-uploader ::ng-deep .cds--checkbox-label-text{color:#000}.valtimo-definition-uploader ::ng-deep cds-inline-notification,.valtimo-definition-uploader ::ng-deep .cds--inline-notification{width:100%!important;max-width:none!important}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
4063
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i5.TranslateService }, { type: IkoManagementApiService }], propDecorators: { open: [{
|
|
4064
|
+
type: Input
|
|
3515
4065
|
}], modalClose: [{
|
|
3516
4066
|
type: Output
|
|
3517
4067
|
}] } });
|
|
@@ -3532,18 +4082,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3532
4082
|
* limitations under the License.
|
|
3533
4083
|
*/
|
|
3534
4084
|
class IkoManagementComponent {
|
|
3535
|
-
constructor(ikoManagementApiService, router, route, pageTitleService) {
|
|
4085
|
+
constructor(ikoManagementApiService, router, route, pageTitleService, menuService, iconService) {
|
|
3536
4086
|
this.ikoManagementApiService = ikoManagementApiService;
|
|
3537
4087
|
this.router = router;
|
|
3538
4088
|
this.route = route;
|
|
3539
4089
|
this.pageTitleService = pageTitleService;
|
|
4090
|
+
this.menuService = menuService;
|
|
4091
|
+
this.iconService = iconService;
|
|
3540
4092
|
this.$loading = signal(true);
|
|
4093
|
+
this.usedKeys$ = new BehaviorSubject([]);
|
|
3541
4094
|
this.apiKey$ = this.route.params.pipe(map(params => params?.apiKey), filter(key => !!key));
|
|
3542
4095
|
this._refresh$ = new BehaviorSubject(null);
|
|
3543
|
-
this.
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
4096
|
+
this.ikoViews$ = combineLatest([this.apiKey$, this._refresh$]).pipe(tap(() => this.$loading.set(true)), switchMap(([apiKey]) => this.ikoManagementApiService.getManagementIkoViews(undefined, undefined, apiKey).pipe(map(ikoViewPage => ikoViewPage.content), tap(content => {
|
|
4097
|
+
const keys = content?.map(item => item.key) ?? [];
|
|
4098
|
+
this.usedKeys$.next(keys);
|
|
4099
|
+
this.$loading.set(false);
|
|
4100
|
+
}))));
|
|
4101
|
+
this.$modalMode = signal('add');
|
|
4102
|
+
this.$viewModalOpen = signal(false);
|
|
4103
|
+
this.$uploadModalOpen = signal(false);
|
|
3547
4104
|
this.$prefillData = signal(null);
|
|
3548
4105
|
this.$keyToDelete = signal(null);
|
|
3549
4106
|
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
@@ -3564,6 +4121,7 @@ class IkoManagementComponent {
|
|
|
3564
4121
|
type: 'danger',
|
|
3565
4122
|
},
|
|
3566
4123
|
];
|
|
4124
|
+
this.iconService.registerAll([Upload16]);
|
|
3567
4125
|
}
|
|
3568
4126
|
ngOnInit() {
|
|
3569
4127
|
this.pageTitleService.disableReset();
|
|
@@ -3578,41 +4136,60 @@ class IkoManagementComponent {
|
|
|
3578
4136
|
});
|
|
3579
4137
|
}
|
|
3580
4138
|
openAddModal() {
|
|
3581
|
-
this.$
|
|
4139
|
+
this.$modalMode.set('add');
|
|
4140
|
+
this.$prefillData.set(null);
|
|
4141
|
+
this.$viewModalOpen.set(true);
|
|
4142
|
+
}
|
|
4143
|
+
openUploadModal() {
|
|
4144
|
+
this.$uploadModalOpen.set(true);
|
|
3582
4145
|
}
|
|
3583
4146
|
onEditClick(item) {
|
|
4147
|
+
this.$modalMode.set('edit');
|
|
3584
4148
|
this.$prefillData.set(item);
|
|
3585
|
-
this.$
|
|
4149
|
+
this.$viewModalOpen.set(true);
|
|
3586
4150
|
}
|
|
3587
4151
|
onDeleteClick(item) {
|
|
3588
4152
|
this.$keyToDelete.set(item.key);
|
|
3589
4153
|
this.showDeleteModal$.next(true);
|
|
3590
4154
|
}
|
|
3591
4155
|
onDeleteConfirm(key) {
|
|
3592
|
-
this.ikoManagementApiService
|
|
3593
|
-
.
|
|
3594
|
-
|
|
4156
|
+
this.ikoManagementApiService.deleteIkoView(key).subscribe(() => {
|
|
4157
|
+
this.menuService.reload();
|
|
4158
|
+
this._refresh$.next(null);
|
|
4159
|
+
});
|
|
3595
4160
|
}
|
|
3596
|
-
|
|
3597
|
-
this.$
|
|
3598
|
-
const prefillData = this.$prefillData();
|
|
4161
|
+
onViewModalClose(item, ikoRepositoryConfigKey) {
|
|
4162
|
+
this.$viewModalOpen.set(false);
|
|
3599
4163
|
this.$prefillData.set(null);
|
|
3600
4164
|
if (!item)
|
|
3601
4165
|
return;
|
|
3602
|
-
if (
|
|
4166
|
+
if (this.$modalMode() === 'edit') {
|
|
3603
4167
|
this.ikoManagementApiService
|
|
3604
|
-
.
|
|
4168
|
+
.updateIkoView(item.key, {
|
|
3605
4169
|
...item,
|
|
3606
4170
|
ikoRepositoryConfigKey,
|
|
3607
4171
|
})
|
|
3608
4172
|
.pipe(take(1))
|
|
3609
|
-
.subscribe(() =>
|
|
4173
|
+
.subscribe(() => {
|
|
4174
|
+
this.menuService.reload();
|
|
4175
|
+
this._refresh$.next(null);
|
|
4176
|
+
});
|
|
3610
4177
|
return;
|
|
3611
4178
|
}
|
|
3612
4179
|
this.ikoManagementApiService
|
|
3613
|
-
.
|
|
4180
|
+
.createIkoView(item.key, { ...item, ikoRepositoryConfigKey })
|
|
3614
4181
|
.pipe(take(1))
|
|
3615
|
-
.subscribe(() =>
|
|
4182
|
+
.subscribe(() => {
|
|
4183
|
+
this.menuService.reload();
|
|
4184
|
+
this._refresh$.next(null);
|
|
4185
|
+
});
|
|
4186
|
+
}
|
|
4187
|
+
onUploadModalClose(item) {
|
|
4188
|
+
this.$uploadModalOpen.set(false);
|
|
4189
|
+
if (!item)
|
|
4190
|
+
return;
|
|
4191
|
+
this._refresh$.next(null);
|
|
4192
|
+
this.menuService.reload();
|
|
3616
4193
|
}
|
|
3617
4194
|
setPageTitle() {
|
|
3618
4195
|
this.apiKey$
|
|
@@ -3621,10 +4198,10 @@ class IkoManagementComponent {
|
|
|
3621
4198
|
this.pageTitleService.setCustomPageTitle(repositoryConfig.title);
|
|
3622
4199
|
});
|
|
3623
4200
|
}
|
|
3624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3625
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
4201
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementComponent, deps: [{ token: IkoManagementApiService }, { token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2$2.PageTitleService }, { token: i2$2.MenuService }, { token: i6.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4202
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IkoManagementComponent, isStandalone: true, selector: "valtimo-iko-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [items]=\"ikoViews$ | async\"\n [loading]=\"$loading()\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"uploadButton\"></ng-container>\n\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addViewButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addViewButton\"\n [description]=\"'ikoManagement.views.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.views.noResultsTitle' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #uploadButton>\n <button [iconOnly]=\"true\" cdsButton=\"ghost\" (click)=\"openUploadModal()\">\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #addViewButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'ikoManagement.views.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-iko-management-view-modal\n *ngIf=\"apiKey$ | async as apiKey\"\n [apiKey]=\"apiKey\"\n [open]=\"$viewModalOpen()\"\n [prefillData]=\"$prefillData()\"\n [usedKeys]=\"usedKeys$ | async\"\n [modalMode]=\"$modalMode()\"\n (modalClose)=\"onViewModalClose($event, apiKey)\"\n></valtimo-iko-management-view-modal>\n\n<valtimo-iko-management-upload-modal\n [open]=\"$uploadModalOpen()\"\n (modalClose)=\"onUploadModalClose($event)\"\n></valtimo-iko-management-upload-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.views.deleteContent\"\n [outputOnConfirm]=\"$keyToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.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", "showActionItems", "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: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: IkoManagementViewModalComponent, selector: "valtimo-iko-management-view-modal", inputs: ["open", "modalMode", "apiKey", "prefillData", "usedKeys"], outputs: ["modalClose"] }, { kind: "component", type: IkoManagementUploadModalComponent, selector: "valtimo-iko-management-upload-modal", inputs: ["open"], outputs: ["modalClose"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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"] }] }); }
|
|
3626
4203
|
}
|
|
3627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementComponent, decorators: [{
|
|
3628
4205
|
type: Component,
|
|
3629
4206
|
args: [{ selector: 'valtimo-iko-management', standalone: true, imports: [
|
|
3630
4207
|
CommonModule,
|
|
@@ -3632,10 +4209,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3632
4209
|
ButtonModule,
|
|
3633
4210
|
IconModule,
|
|
3634
4211
|
IkoManagementViewModalComponent,
|
|
4212
|
+
IkoManagementUploadModalComponent,
|
|
3635
4213
|
TranslateModule,
|
|
3636
4214
|
ConfirmationModalModule,
|
|
3637
|
-
], template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [items]=\"
|
|
3638
|
-
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type:
|
|
4215
|
+
], template: "<!--\n ~ Copyright 2015-2025 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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [items]=\"ikoViews$ | async\"\n [loading]=\"$loading()\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"uploadButton\"></ng-container>\n\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addViewButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addViewButton\"\n [description]=\"'ikoManagement.views.noResultsDescription' | translate\"\n [title]=\"'ikoManagement.views.noResultsTitle' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #uploadButton>\n <button [iconOnly]=\"true\" cdsButton=\"ghost\" (click)=\"openUploadModal()\">\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #addViewButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'ikoManagement.views.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-iko-management-view-modal\n *ngIf=\"apiKey$ | async as apiKey\"\n [apiKey]=\"apiKey\"\n [open]=\"$viewModalOpen()\"\n [prefillData]=\"$prefillData()\"\n [usedKeys]=\"usedKeys$ | async\"\n [modalMode]=\"$modalMode()\"\n (modalClose)=\"onViewModalClose($event, apiKey)\"\n></valtimo-iko-management-view-modal>\n\n<valtimo-iko-management-upload-modal\n [open]=\"$uploadModalOpen()\"\n (modalClose)=\"onUploadModalClose($event)\"\n></valtimo-iko-management-upload-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"ikoManagement.views.deleteContent\"\n [outputOnConfirm]=\"$keyToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n" }]
|
|
4216
|
+
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2$2.PageTitleService }, { type: i2$2.MenuService }, { type: i6.IconService }] });
|
|
3639
4217
|
|
|
3640
4218
|
/*
|
|
3641
4219
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -3653,62 +4231,233 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3653
4231
|
* limitations under the License.
|
|
3654
4232
|
*/
|
|
3655
4233
|
class IkoSearchComponent {
|
|
3656
|
-
constructor(route, router, pageTitleService, iconService, ikoApiService) {
|
|
4234
|
+
constructor(route, router, pageTitleService, iconService, ikoApiService, translateService) {
|
|
3657
4235
|
this.route = route;
|
|
3658
4236
|
this.router = router;
|
|
3659
4237
|
this.pageTitleService = pageTitleService;
|
|
3660
4238
|
this.iconService = iconService;
|
|
3661
4239
|
this.ikoApiService = ikoApiService;
|
|
4240
|
+
this.translateService = translateService;
|
|
3662
4241
|
this.formValues = {};
|
|
4242
|
+
this.dropdownSelectItemsMap = new Map();
|
|
4243
|
+
this.values$ = new BehaviorSubject({});
|
|
4244
|
+
this.bsnErrors = {};
|
|
4245
|
+
this.BOOLEAN_POSITIVE = 'booleanPositive';
|
|
4246
|
+
this.BOOLEAN_NEGATIVE = 'booleanNegative';
|
|
4247
|
+
this._BOOLEAN_TYPES = [
|
|
4248
|
+
this.BOOLEAN_POSITIVE,
|
|
4249
|
+
this.BOOLEAN_NEGATIVE,
|
|
4250
|
+
];
|
|
4251
|
+
this.booleanItems$ = this.translateService.stream('key').pipe(map$1(() => this._BOOLEAN_TYPES.map(type => ({
|
|
4252
|
+
id: type,
|
|
4253
|
+
text: this.translateService.instant(`searchFields.${type}`),
|
|
4254
|
+
}))));
|
|
3663
4255
|
this._key$ = this.route.params.pipe(map$1(params => params?.key), filter(key => !!key));
|
|
3664
|
-
this.
|
|
4256
|
+
this.ikoSearchActions$ = this._key$.pipe(switchMap(key => combineLatest([
|
|
3665
4257
|
of(key),
|
|
3666
4258
|
this.ikoApiService.cachedMenuItems$,
|
|
3667
|
-
this.ikoApiService.
|
|
3668
|
-
])), map$1(([key, menuItems,
|
|
4259
|
+
this.ikoApiService.getIkoSearchActions(key),
|
|
4260
|
+
])), map$1(([key, menuItems, ikoSearchActions]) => {
|
|
3669
4261
|
const currentMenuItem = menuItems.find(item => item.key === key);
|
|
3670
4262
|
if (currentMenuItem && currentMenuItem?.title)
|
|
3671
4263
|
this.pageTitleService.setCustomPageTitle(currentMenuItem.title, true);
|
|
3672
|
-
return
|
|
4264
|
+
return ikoSearchActions;
|
|
3673
4265
|
}));
|
|
3674
4266
|
this.iconService.register(Search16);
|
|
3675
4267
|
}
|
|
4268
|
+
ngOnInit() {
|
|
4269
|
+
this.openDropdownSubscription();
|
|
4270
|
+
}
|
|
3676
4271
|
ngOnDestroy() {
|
|
3677
4272
|
this.pageTitleService.enableReset();
|
|
3678
4273
|
}
|
|
3679
4274
|
searchDisabled(params) {
|
|
3680
|
-
|
|
4275
|
+
const hasMissingRequired = params.some(param => {
|
|
4276
|
+
if (!param.required)
|
|
4277
|
+
return false;
|
|
4278
|
+
return !this.hasValue(this.formValues[param.key]);
|
|
4279
|
+
});
|
|
4280
|
+
const hasInvalidBsn = params.some(param => param.dataType === 'bsn' && this.bsnErrors[param.key] !== null);
|
|
4281
|
+
return hasMissingRequired || hasInvalidBsn;
|
|
3681
4282
|
}
|
|
3682
4283
|
isQueryGroup(param) {
|
|
3683
4284
|
return param && param.group === true && Array.isArray(param.fields);
|
|
3684
4285
|
}
|
|
3685
4286
|
searchGroup(paramKey, params) {
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
const
|
|
4287
|
+
this.values$.pipe(take(1)).subscribe(values => {
|
|
4288
|
+
const queryParams = {};
|
|
4289
|
+
for (const param of params) {
|
|
4290
|
+
const value = values[param.key];
|
|
4291
|
+
if (value === null)
|
|
4292
|
+
continue;
|
|
4293
|
+
if (typeof value === 'object' && value.start !== null && value.end !== null) {
|
|
4294
|
+
queryParams[param.key] = JSON.stringify({
|
|
4295
|
+
rangeFrom: value.start,
|
|
4296
|
+
rangeTo: value.end,
|
|
4297
|
+
});
|
|
4298
|
+
}
|
|
4299
|
+
else {
|
|
4300
|
+
queryParams[param.key] = value;
|
|
4301
|
+
}
|
|
4302
|
+
}
|
|
4303
|
+
this.router.navigate([paramKey], {
|
|
4304
|
+
relativeTo: this.route,
|
|
4305
|
+
queryParams,
|
|
4306
|
+
});
|
|
4307
|
+
});
|
|
4308
|
+
}
|
|
4309
|
+
singleValueChange(searchFieldKey, value, dataType) {
|
|
4310
|
+
this.formValues[searchFieldKey] = value;
|
|
4311
|
+
this.values$.pipe(take(1)).subscribe(values => {
|
|
4312
|
+
if (dataType === 'bsn') {
|
|
4313
|
+
this.validateBsnValue(searchFieldKey, value);
|
|
4314
|
+
}
|
|
3689
4315
|
if (value) {
|
|
3690
|
-
|
|
4316
|
+
this.values$.next({
|
|
4317
|
+
...values,
|
|
4318
|
+
[searchFieldKey]: this.getSingleValue(value, dataType),
|
|
4319
|
+
});
|
|
4320
|
+
}
|
|
4321
|
+
else if (Object.keys(values).includes(searchFieldKey)) {
|
|
4322
|
+
const valuesCopy = { ...values };
|
|
4323
|
+
delete valuesCopy[searchFieldKey];
|
|
4324
|
+
this.values$.next(valuesCopy);
|
|
4325
|
+
}
|
|
4326
|
+
});
|
|
4327
|
+
}
|
|
4328
|
+
multipleValueChange(searchFieldKey, value, dataType) {
|
|
4329
|
+
this.values$.pipe(take(1)).subscribe(values => {
|
|
4330
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
4331
|
+
const hasStart = value.start !== undefined && value.start !== '';
|
|
4332
|
+
const hasEnd = value.end !== undefined && value.end !== '';
|
|
4333
|
+
if (hasStart || hasEnd) {
|
|
4334
|
+
this.values$.next({
|
|
4335
|
+
...values,
|
|
4336
|
+
[searchFieldKey]: {
|
|
4337
|
+
start: hasStart ? this.getSingleValue(value.start, dataType) : null,
|
|
4338
|
+
end: hasEnd ? this.getSingleValue(value.end, dataType) : null,
|
|
4339
|
+
},
|
|
4340
|
+
});
|
|
4341
|
+
return;
|
|
4342
|
+
}
|
|
4343
|
+
}
|
|
4344
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
4345
|
+
this.values$.next({
|
|
4346
|
+
...values,
|
|
4347
|
+
[searchFieldKey]: value.map(v => this.getSingleValue(typeof v === 'object' && 'id' in v ? v.id : v, dataType)),
|
|
4348
|
+
});
|
|
4349
|
+
return;
|
|
4350
|
+
}
|
|
4351
|
+
if (values[searchFieldKey] !== undefined) {
|
|
4352
|
+
const valuesCopy = { ...values };
|
|
4353
|
+
delete valuesCopy[searchFieldKey];
|
|
4354
|
+
this.values$.next(valuesCopy);
|
|
4355
|
+
}
|
|
4356
|
+
});
|
|
4357
|
+
}
|
|
4358
|
+
openDropdownSubscription() {
|
|
4359
|
+
combineLatest([this._key$, this.ikoSearchActions$]).subscribe(([aggregateKey, searchActions]) => {
|
|
4360
|
+
searchActions.forEach(action => {
|
|
4361
|
+
action.searchFields?.forEach(field => {
|
|
4362
|
+
if (field.dataType === 'time' &&
|
|
4363
|
+
field.fieldType === 'single' &&
|
|
4364
|
+
this.formValues[field.key] === undefined) {
|
|
4365
|
+
this.formValues[field.key] = '';
|
|
4366
|
+
}
|
|
4367
|
+
if (field.dataType === 'time' && field.fieldType === 'range') {
|
|
4368
|
+
if (this.formValues[field.key + '_start'] === undefined) {
|
|
4369
|
+
this.formValues[field.key + '_start'] = '';
|
|
4370
|
+
}
|
|
4371
|
+
if (this.formValues[field.key + '_end'] === undefined) {
|
|
4372
|
+
this.formValues[field.key + '_end'] = '';
|
|
4373
|
+
}
|
|
4374
|
+
}
|
|
4375
|
+
});
|
|
4376
|
+
});
|
|
4377
|
+
searchActions.forEach(action => {
|
|
4378
|
+
const actionKey = action.key;
|
|
4379
|
+
action.searchFields
|
|
4380
|
+
?.filter(field => field.dropdownDataProvider)
|
|
4381
|
+
.forEach(field => {
|
|
4382
|
+
this.ikoApiService
|
|
4383
|
+
.getDropdownData(field.dropdownDataProvider, aggregateKey, actionKey, field.key)
|
|
4384
|
+
.subscribe(dropdownData => {
|
|
4385
|
+
this.dropdownSelectItemsMap[field.key] = dropdownData
|
|
4386
|
+
? Object.keys(dropdownData).map(dropdownFieldKey => ({
|
|
4387
|
+
id: dropdownFieldKey,
|
|
4388
|
+
text: dropdownData[dropdownFieldKey],
|
|
4389
|
+
}))
|
|
4390
|
+
: [];
|
|
4391
|
+
});
|
|
4392
|
+
});
|
|
4393
|
+
});
|
|
4394
|
+
});
|
|
4395
|
+
}
|
|
4396
|
+
getSingleValue(value, dataType) {
|
|
4397
|
+
if (dataType === 'boolean') {
|
|
4398
|
+
if (value === this.BOOLEAN_POSITIVE) {
|
|
4399
|
+
return true;
|
|
4400
|
+
}
|
|
4401
|
+
if (value === this.BOOLEAN_NEGATIVE) {
|
|
4402
|
+
return false;
|
|
3691
4403
|
}
|
|
3692
4404
|
}
|
|
3693
|
-
|
|
4405
|
+
return value;
|
|
3694
4406
|
}
|
|
3695
|
-
|
|
3696
|
-
|
|
4407
|
+
validateBsnValue(fieldKey, value) {
|
|
4408
|
+
if (!value) {
|
|
4409
|
+
this.bsnErrors[fieldKey] = null;
|
|
4410
|
+
return;
|
|
4411
|
+
}
|
|
4412
|
+
const validation = validateBsn(value);
|
|
4413
|
+
this.bsnErrors[fieldKey] = validation.isValid ? null : validation.errorKey;
|
|
4414
|
+
}
|
|
4415
|
+
hasValue(value) {
|
|
4416
|
+
if (value === null || value === undefined)
|
|
4417
|
+
return false;
|
|
4418
|
+
if (typeof value === 'string')
|
|
4419
|
+
return value.trim().length > 0;
|
|
4420
|
+
if (typeof value === 'boolean')
|
|
4421
|
+
return true;
|
|
4422
|
+
if (Array.isArray(value))
|
|
4423
|
+
return value.length > 0;
|
|
4424
|
+
if (typeof value === 'object') {
|
|
4425
|
+
const v = value;
|
|
4426
|
+
return ((v.start !== null && v.start !== undefined && v.start !== '') ||
|
|
4427
|
+
(v.end !== null && v.end !== undefined && v.end !== ''));
|
|
4428
|
+
}
|
|
4429
|
+
return false;
|
|
4430
|
+
}
|
|
4431
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoSearchComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: i2$2.PageTitleService }, { token: i6.IconService }, { token: IkoApiService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4432
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: IkoSearchComponent, isStandalone: true, selector: "valtimo-iko-search", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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@if (ikoSearchActions$ | async; as ikoSearchActions) {\n @if (ikoSearchActions.length === 0) {\n <valtimo-no-results [title]=\"'iko.searchFieldsNoResults' | translate\"></valtimo-no-results>\n\n } @else {\n <h4>{{ 'iko.searchVia' | translate }}</h4>\n\n <cds-tabs class=\"iko-search-tabs\" type=\"line\">\n @for (param of ikoSearchActions; track param.key ?? param.fields?.[0]?.key) {\n <cds-tab class=\"query-group\" [heading]=\"param.title\" [cdsLayer]=\"1\">\n <div class=\"query-group__row\">\n @for (field of param.searchFields; track field.key) {\n <div\n class=\"query-group__field\"\n [ngClass]=\"{\n 'query-group__field--time': field.dataType === 'time',\n 'query-group__field--date': field.dataType === 'date',\n 'query-group__field--datetime': field.dataType === 'datetime',\n }\"\n >\n <v-input-label *ngIf=\"field.title\" [title]=\"field.title\"></v-input-label>\n\n @if (field.dataType === 'text' && field.fieldType === 'single') {\n <v-input\n [dataTestId]=\"'iko-search-field-' + field.key\"\n [name]=\"field.key\"\n [placeholder]=\"'searchFields.textPlaceholder' | translate\"\n [defaultValue]=\"formValues[field.key]\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></v-input>\n\n } @else if (field.dataType === 'text' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <v-input\n name=\"start\"\n [placeholder]=\"'searchFields.textPlaceholder' | translate\"\n ></v-input>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <v-input\n name=\"end\"\n [placeholder]=\"'searchFields.textPlaceholder' | translate\"\n ></v-input>\n </v-form>\n }\n @else if (field.dataType === 'number' && field.fieldType === 'single') {\n <v-input\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [placeholder]=\"'searchFields.numberPlaceholder' | translate\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></v-input>\n\n } @else if (field.dataType === 'number' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <v-input\n type=\"number\"\n name=\"start\"\n [placeholder]=\"'searchFields.numberPlaceholder' | translate\"\n ></v-input>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <v-input\n type=\"number\"\n name=\"end\"\n [placeholder]=\"'searchFields.numberPlaceholder' | translate\"\n ></v-input>\n </v-form>\n }\n @else if (field.dataType === 'boolean' && field.fieldType === 'single') {\n <v-select\n *ngIf=\"booleanItems$ | async as booleanItems\"\n [items]=\"booleanItems\"\n (selectedChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></v-select>\n }\n\n @else if (field.dataType === 'time' && field.fieldType === 'single') {\n <cds-timepicker\n [placeholder]=\"'searchFields.timePlaceholder' | translate\"\n [ngModel]=\"formValues[field.key]\"\n (ngModelChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></cds-timepicker>\n\n } @else if (field.dataType === 'time' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <cds-timepicker [(ngModel)]=\"formValues[field.key + '_start']\"></cds-timepicker>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <cds-timepicker [(ngModel)]=\"formValues[field.key + '_end']\"></cds-timepicker>\n </v-form>\n }\n @else if (field.dataType === 'date' && field.fieldType === 'single') {\n <valtimo-date-time-picker\n [defaultDate]=\"formValues[field.key] ?? ''\"\n [enableTime]=\"false\"\n [showFieldLabel]=\"false\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></valtimo-date-time-picker>\n\n } @else if (field.dataType === 'date' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <valtimo-date-time-picker\n name=\"start\"\n [enableTime]=\"false\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <valtimo-date-time-picker\n name=\"end\"\n [enableTime]=\"false\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n </v-form>\n }\n @else if (field.dataType === 'datetime' && field.fieldType === 'single') {\n <valtimo-date-time-picker\n [enableTime]=\"true\"\n [showFieldLabel]=\"false\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></valtimo-date-time-picker>\n\n } @else if (field.dataType === 'datetime' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <valtimo-date-time-picker\n name=\"start\"\n [enableTime]=\"true\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <valtimo-date-time-picker\n name=\"end\"\n [enableTime]=\"true\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n </v-form>\n }\n </div>\n }\n </div>\n\n <button\n cdsButton=\"primary\"\n class=\"query-group__search-button\"\n [disabled]=\"searchDisabled(param.searchFields)\"\n (click)=\"searchGroup(param.key, param.searchFields)\"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n <svg cdsIcon=\"search\" size=\"16\"></svg>\n </button>\n </cds-tab>\n }\n </cds-tabs>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;gap:24px}.query-group__row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.query-group__field{display:flex;flex-direction:column;flex:1 1 200px;max-width:320px}.query-group__field input{width:100%}.query-group__field--time,.query-group__field--date,.query-group__field--datetime{flex:0 0 auto;max-width:none}.query-group__label{font-size:14px;font-weight:600;color:var(--cds-text-primary)}.query-group__search-button{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;height:40px;max-height:40px;min-height:40px;padding:8px 16px;min-width:120px;white-space:nowrap;overflow:hidden;margin-left:auto}:host ::ng-deep .cds--tab-content{display:flex;flex-direction:column;gap:16px;outline:none!important;background:var(--cds-layer-01)}v-input{width:100%}::ng-deep .multiple-search-fields{display:flex!important;flex-direction:row!important;align-items:center}.to-text{margin-inline-start:8px;margin-inline-end:8px}.iko-datetime{display:flex;gap:8px;align-items:flex-end}::ng-deep .iko-search-tabs .cds--tab-content{margin-top:24px}\n/*!\n * Copyright 2015-2025 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: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule$1 }, { 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", "dataTestId", "trim", "presetsTitle", "presetOptions"], outputs: ["valueChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.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"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i6.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i6.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading", "dataTestId"] }, { kind: "ngmodule", type: TimePickerModule }, { kind: "component", type: i6.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }, { kind: "component", type: DateTimePickerComponent, selector: "valtimo-date-time-picker", inputs: ["fullWidth", "margin", "name", "title", "placeholder", "titleTranslationKey", "disabled", "tooltip", "required", "smallLabel", "enableTime", "carbonTheme", "dateFormat", "showFieldLabel", "datePlaceholder", "timePlaceholder", "labelText", "defaultDate", "defaultDateIsToday", "clear$"], outputs: ["valueChange"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i2$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: FormModule }, { kind: "component", type: i2$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }] }); }
|
|
3697
4433
|
}
|
|
3698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4434
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoSearchComponent, decorators: [{
|
|
3699
4435
|
type: Component,
|
|
3700
4436
|
args: [{ selector: 'valtimo-iko-search', standalone: true, imports: [
|
|
3701
4437
|
CommonModule,
|
|
3702
|
-
InputModule,
|
|
4438
|
+
InputModule$1,
|
|
3703
4439
|
ButtonModule,
|
|
4440
|
+
InputModule,
|
|
3704
4441
|
IconModule,
|
|
3705
4442
|
FormsModule,
|
|
3706
4443
|
ReactiveFormsModule,
|
|
3707
4444
|
TranslateModule,
|
|
3708
|
-
IkoListComponent,
|
|
3709
4445
|
CarbonListModule,
|
|
3710
|
-
|
|
3711
|
-
|
|
4446
|
+
TabsModule,
|
|
4447
|
+
LayerModule,
|
|
4448
|
+
AsyncPipe,
|
|
4449
|
+
SelectModule,
|
|
4450
|
+
DatePickerModule,
|
|
4451
|
+
NgIf,
|
|
4452
|
+
NgClass,
|
|
4453
|
+
ParagraphModule,
|
|
4454
|
+
TimePickerModule,
|
|
4455
|
+
DateTimePickerComponent,
|
|
4456
|
+
InputLabelModule,
|
|
4457
|
+
InputModule$1,
|
|
4458
|
+
FormModule,
|
|
4459
|
+
], template: "<!--\n ~ Copyright 2015-2025 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@if (ikoSearchActions$ | async; as ikoSearchActions) {\n @if (ikoSearchActions.length === 0) {\n <valtimo-no-results [title]=\"'iko.searchFieldsNoResults' | translate\"></valtimo-no-results>\n\n } @else {\n <h4>{{ 'iko.searchVia' | translate }}</h4>\n\n <cds-tabs class=\"iko-search-tabs\" type=\"line\">\n @for (param of ikoSearchActions; track param.key ?? param.fields?.[0]?.key) {\n <cds-tab class=\"query-group\" [heading]=\"param.title\" [cdsLayer]=\"1\">\n <div class=\"query-group__row\">\n @for (field of param.searchFields; track field.key) {\n <div\n class=\"query-group__field\"\n [ngClass]=\"{\n 'query-group__field--time': field.dataType === 'time',\n 'query-group__field--date': field.dataType === 'date',\n 'query-group__field--datetime': field.dataType === 'datetime',\n }\"\n >\n <v-input-label *ngIf=\"field.title\" [title]=\"field.title\"></v-input-label>\n\n @if (field.dataType === 'text' && field.fieldType === 'single') {\n <v-input\n [dataTestId]=\"'iko-search-field-' + field.key\"\n [name]=\"field.key\"\n [placeholder]=\"'searchFields.textPlaceholder' | translate\"\n [defaultValue]=\"formValues[field.key]\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></v-input>\n\n } @else if (field.dataType === 'text' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <v-input\n name=\"start\"\n [placeholder]=\"'searchFields.textPlaceholder' | translate\"\n ></v-input>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <v-input\n name=\"end\"\n [placeholder]=\"'searchFields.textPlaceholder' | translate\"\n ></v-input>\n </v-form>\n }\n @else if (field.dataType === 'number' && field.fieldType === 'single') {\n <v-input\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [placeholder]=\"'searchFields.numberPlaceholder' | translate\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></v-input>\n\n } @else if (field.dataType === 'number' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <v-input\n type=\"number\"\n name=\"start\"\n [placeholder]=\"'searchFields.numberPlaceholder' | translate\"\n ></v-input>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <v-input\n type=\"number\"\n name=\"end\"\n [placeholder]=\"'searchFields.numberPlaceholder' | translate\"\n ></v-input>\n </v-form>\n }\n @else if (field.dataType === 'boolean' && field.fieldType === 'single') {\n <v-select\n *ngIf=\"booleanItems$ | async as booleanItems\"\n [items]=\"booleanItems\"\n (selectedChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></v-select>\n }\n\n @else if (field.dataType === 'time' && field.fieldType === 'single') {\n <cds-timepicker\n [placeholder]=\"'searchFields.timePlaceholder' | translate\"\n [ngModel]=\"formValues[field.key]\"\n (ngModelChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></cds-timepicker>\n\n } @else if (field.dataType === 'time' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <cds-timepicker [(ngModel)]=\"formValues[field.key + '_start']\"></cds-timepicker>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <cds-timepicker [(ngModel)]=\"formValues[field.key + '_end']\"></cds-timepicker>\n </v-form>\n }\n @else if (field.dataType === 'date' && field.fieldType === 'single') {\n <valtimo-date-time-picker\n [defaultDate]=\"formValues[field.key] ?? ''\"\n [enableTime]=\"false\"\n [showFieldLabel]=\"false\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></valtimo-date-time-picker>\n\n } @else if (field.dataType === 'date' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <valtimo-date-time-picker\n name=\"start\"\n [enableTime]=\"false\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <valtimo-date-time-picker\n name=\"end\"\n [enableTime]=\"false\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n </v-form>\n }\n @else if (field.dataType === 'datetime' && field.fieldType === 'single') {\n <valtimo-date-time-picker\n [enableTime]=\"true\"\n [showFieldLabel]=\"false\"\n (valueChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n ></valtimo-date-time-picker>\n\n } @else if (field.dataType === 'datetime' && field.fieldType === 'range') {\n <v-form\n className=\"multiple-search-fields\"\n (valueChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n >\n <valtimo-date-time-picker\n name=\"start\"\n [enableTime]=\"true\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n\n <valtimo-date-time-picker\n name=\"end\"\n [enableTime]=\"true\"\n [showFieldLabel]=\"false\"\n ></valtimo-date-time-picker>\n </v-form>\n }\n </div>\n }\n </div>\n\n <button\n cdsButton=\"primary\"\n class=\"query-group__search-button\"\n [disabled]=\"searchDisabled(param.searchFields)\"\n (click)=\"searchGroup(param.key, param.searchFields)\"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n <svg cdsIcon=\"search\" size=\"16\"></svg>\n </button>\n </cds-tab>\n }\n </cds-tabs>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;gap:24px}.query-group__row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.query-group__field{display:flex;flex-direction:column;flex:1 1 200px;max-width:320px}.query-group__field input{width:100%}.query-group__field--time,.query-group__field--date,.query-group__field--datetime{flex:0 0 auto;max-width:none}.query-group__label{font-size:14px;font-weight:600;color:var(--cds-text-primary)}.query-group__search-button{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;height:40px;max-height:40px;min-height:40px;padding:8px 16px;min-width:120px;white-space:nowrap;overflow:hidden;margin-left:auto}:host ::ng-deep .cds--tab-content{display:flex;flex-direction:column;gap:16px;outline:none!important;background:var(--cds-layer-01)}v-input{width:100%}::ng-deep .multiple-search-fields{display:flex!important;flex-direction:row!important;align-items:center}.to-text{margin-inline-start:8px;margin-inline-end:8px}.iko-datetime{display:flex;gap:8px;align-items:flex-end}::ng-deep .iko-search-tabs .cds--tab-content{margin-top:24px}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
4460
|
+
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: i2$2.PageTitleService }, { type: i6.IconService }, { type: IkoApiService }, { type: i5.TranslateService }] });
|
|
3712
4461
|
|
|
3713
4462
|
/*
|
|
3714
4463
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
@@ -3822,11 +4571,11 @@ const routes = [
|
|
|
3822
4571
|
},
|
|
3823
4572
|
];
|
|
3824
4573
|
class IkoRoutingModule {
|
|
3825
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3826
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
3827
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
4574
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4575
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: IkoRoutingModule, imports: [CommonModule, i1$2.RouterModule], exports: [RouterModule] }); }
|
|
4576
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
3828
4577
|
}
|
|
3829
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoRoutingModule, decorators: [{
|
|
3830
4579
|
type: NgModule,
|
|
3831
4580
|
args: [{
|
|
3832
4581
|
declarations: [],
|
|
@@ -3856,9 +4605,9 @@ class IkoModule {
|
|
|
3856
4605
|
this.menuService = menuService;
|
|
3857
4606
|
this.menuService.registerAppendMenuItemsFunction(this.ikoMenuService.appendIkoMenuItems);
|
|
3858
4607
|
}
|
|
3859
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3860
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
3861
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
4608
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoModule, deps: [{ token: IkoMenuService }, { token: i2$2.MenuService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4609
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: IkoModule, imports: [CommonModule, IkoRoutingModule, IkoSearchComponent] }); }
|
|
4610
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoModule, providers: [
|
|
3862
4611
|
IkoMenuService,
|
|
3863
4612
|
{
|
|
3864
4613
|
provide: IKO_TOKEN,
|
|
@@ -3866,7 +4615,7 @@ class IkoModule {
|
|
|
3866
4615
|
},
|
|
3867
4616
|
], imports: [CommonModule, IkoRoutingModule, IkoSearchComponent] }); }
|
|
3868
4617
|
}
|
|
3869
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoModule, decorators: [{
|
|
3870
4619
|
type: NgModule,
|
|
3871
4620
|
args: [{
|
|
3872
4621
|
imports: [CommonModule, IkoRoutingModule, IkoSearchComponent],
|
|
@@ -3878,7 +4627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
3878
4627
|
},
|
|
3879
4628
|
],
|
|
3880
4629
|
}]
|
|
3881
|
-
}], ctorParameters: () => [{ type: IkoMenuService }, { type:
|
|
4630
|
+
}], ctorParameters: () => [{ type: IkoMenuService }, { type: i2$2.MenuService }] });
|
|
3882
4631
|
|
|
3883
4632
|
/*
|
|
3884
4633
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|