@valtimo/iko 13.10.0 → 13.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/valtimo-iko.mjs +97 -45
- package/fesm2022/valtimo-iko.mjs.map +1 -1
- 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-modal/list-modal.component.d.ts.map +1 -1
- 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 +1 -0
- 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 +7 -3
- 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 +2 -0
- package/lib/components/iko-management-details/components/tabs/iko-management-tabs.component.d.ts.map +1 -1
- package/lib/components/iko-search/iko-search.component.d.ts.map +1 -1
- package/lib/components/widget-collection/iko-widget-collection.component.d.ts.map +1 -1
- package/lib/components/widget-interactive-table/iko-widget-interactive-table.component.d.ts +2 -2
- package/lib/components/widget-interactive-table/iko-widget-interactive-table.component.d.ts.map +1 -1
- package/lib/components/widget-table/iko-widget-table.component.d.ts +0 -1
- package/lib/components/widget-table/iko-widget-table.component.d.ts.map +1 -1
- package/lib/models/iko-management.model.d.ts +3 -0
- package/lib/models/iko-management.model.d.ts.map +1 -1
- package/lib/services/iko-api.service.d.ts +2 -2
- package/lib/services/iko-api.service.d.ts.map +1 -1
- package/lib/services/iko-management-api.service.d.ts +1 -1
- package/lib/services/iko-management-api.service.d.ts.map +1 -1
- package/package.json +1 -1
package/fesm2022/valtimo-iko.mjs
CHANGED
|
@@ -10,8 +10,8 @@ import { AuthGuardService } from '@valtimo/security';
|
|
|
10
10
|
import * as i2$2 from '@valtimo/components';
|
|
11
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, TooltipModule, DropdownModule,
|
|
14
|
-
import { BehaviorSubject, filter, of, switchMap, combineLatest, tap, map as map$1, startWith, take,
|
|
13
|
+
import { InputModule, PaginationModule, TilesModule, ButtonModule, ModalModule, TabsModule, IconModule, LayerModule, TooltipModule, DropdownModule, ToggleModule, LoadingModule, NumberModule, ProgressBarModule, CheckboxModule, FileUploaderModule, NotificationModule, TimePickerModule } from 'carbon-components-angular';
|
|
14
|
+
import { BehaviorSubject, filter, of, switchMap, combineLatest, distinctUntilChanged, tap, map as map$1, startWith, take, Subscription, delay } from 'rxjs';
|
|
15
15
|
import * as i2$1 from '@valtimo/layout';
|
|
16
16
|
import { WidgetCollectionComponent, WidgetCustomComponent, WidgetFieldComponent, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetTableComponent, WidgetMapComponent, WidgetType, WidgetContainerComponent, ManagementWidgetDetailsComponent, WIDGET_MANAGEMENT_SERVICE, WidgetManagementComponent } from '@valtimo/layout';
|
|
17
17
|
import * as i5 from '@ngx-translate/core';
|
|
@@ -77,8 +77,8 @@ class IkoApiService extends BaseApiService {
|
|
|
77
77
|
getIkoWidget(ikoViewKey, tabKey) {
|
|
78
78
|
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget`));
|
|
79
79
|
}
|
|
80
|
-
getIkoWidgetData(ikoViewKey, tabKey, widgetId, id) {
|
|
81
|
-
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget/${widgetId}/data?id=${id}`));
|
|
80
|
+
getIkoWidgetData(ikoViewKey, tabKey, widgetId, id, queryParams) {
|
|
81
|
+
return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget/${widgetId}/data?id=${id}${!queryParams ? '' : '&' + queryParams.toString()}`));
|
|
82
82
|
}
|
|
83
83
|
searchIkoSearchAction(ikoKey, paramKey, filters) {
|
|
84
84
|
return this.httpClient.post(this.getApiUrl(`/v1/iko-view/${ikoKey}/search-action/${paramKey}/search`), filters);
|
|
@@ -306,8 +306,8 @@ class IkoManagementApiService extends BaseApiService {
|
|
|
306
306
|
deleteIkoRepositoryConfig(key) {
|
|
307
307
|
return this.httpClient.delete(this.getApiUrl(`/management/v1/iko/${key}`));
|
|
308
308
|
}
|
|
309
|
-
|
|
310
|
-
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-property-fields/${type}/
|
|
309
|
+
getIkoTabPropertyFields(type) {
|
|
310
|
+
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-property-fields/${type}/tab`));
|
|
311
311
|
}
|
|
312
312
|
getIkoRepositoryTypes() {
|
|
313
313
|
return this.httpClient.get(this.getApiUrl(`/management/v1/iko-types`));
|
|
@@ -545,16 +545,19 @@ class IkoWidgetCollectionComponent {
|
|
|
545
545
|
this.widgetLayoutService = widgetLayoutService;
|
|
546
546
|
this._widgetParams$ = new BehaviorSubject(null);
|
|
547
547
|
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
548
|
-
this._queryParams$ = new BehaviorSubject(
|
|
548
|
+
this._queryParams$ = new BehaviorSubject(new HttpParams());
|
|
549
549
|
this.widgetData$ = combineLatest([
|
|
550
550
|
this.widgetConfiguration$,
|
|
551
551
|
this._widgetParams$,
|
|
552
|
-
|
|
552
|
+
this._queryParams$.pipe(distinctUntilChanged((prevParams, currParams) => prevParams.toString() === currParams.toString())),
|
|
553
|
+
]).pipe(switchMap(([widgetConfiguration, widgetParams, queryParams]) => !widgetParams || !widgetConfiguration
|
|
553
554
|
? of(null)
|
|
554
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
555
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
555
556
|
}
|
|
556
557
|
onPaginationEvent(event) {
|
|
557
|
-
this._queryParams$.next(
|
|
558
|
+
this._queryParams$.next(new HttpParams()
|
|
559
|
+
.set('page', (event.currentPage - 1).toString())
|
|
560
|
+
.set('size', event.pageLength.toString()));
|
|
558
561
|
}
|
|
559
562
|
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
563
|
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 }); }
|
|
@@ -839,17 +842,18 @@ class IkoWidgetInteractiveTableComponent {
|
|
|
839
842
|
this.listService = listService;
|
|
840
843
|
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
841
844
|
this._widgetParams$ = new BehaviorSubject(null);
|
|
842
|
-
this._queryParams$ = new BehaviorSubject(
|
|
845
|
+
this._queryParams$ = new BehaviorSubject(new HttpParams());
|
|
843
846
|
this.widgetData$ = combineLatest([
|
|
844
847
|
this.widgetConfiguration$,
|
|
845
848
|
this._widgetParams$,
|
|
849
|
+
this._queryParams$.pipe(distinctUntilChanged((prevParams, currParams) => prevParams.toString() === currParams.toString())),
|
|
846
850
|
this.listService.forceRefresh$,
|
|
847
|
-
]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
|
|
851
|
+
]).pipe(switchMap(([widgetConfiguration, widgetParams, queryParams]) => !widgetParams || !widgetConfiguration
|
|
848
852
|
? of(null)
|
|
849
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
853
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
850
854
|
}
|
|
851
|
-
|
|
852
|
-
this._queryParams$.next(
|
|
855
|
+
onQueryParamsEvent(params) {
|
|
856
|
+
this._queryParams$.next(params);
|
|
853
857
|
}
|
|
854
858
|
onRowClickEvent(event, widgetConfiguration) {
|
|
855
859
|
this.ikoApiService.handleAction(widgetConfiguration.properties.rowClickAction, event.resolved);
|
|
@@ -862,7 +866,7 @@ class IkoWidgetInteractiveTableComponent {
|
|
|
862
866
|
this.listActionsComponent.startCase();
|
|
863
867
|
}
|
|
864
868
|
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 (
|
|
869
|
+
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 (rowClickEvent)=\"onRowClickEvent($event, obs.widgetConfiguration)\"\n (caseStartEvent)=\"onCaseStartEvent($event)\"\n (queryParamsEvent)=\"onQueryParamsEvent($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", "searchRequest"], outputs: ["paginationEvent", "rowClickEvent", "actionEvent", "caseStartEvent", "queryParamsEvent", "searchSubmitEvent"] }, { 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 }); }
|
|
866
870
|
}
|
|
867
871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoWidgetInteractiveTableComponent, decorators: [{
|
|
868
872
|
type: Component,
|
|
@@ -877,7 +881,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
877
881
|
CaseListActionsComponent,
|
|
878
882
|
ModalModule,
|
|
879
883
|
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 (
|
|
884
|
+
], 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 (rowClickEvent)=\"onRowClickEvent($event, obs.widgetConfiguration)\"\n (caseStartEvent)=\"onCaseStartEvent($event)\"\n (queryParamsEvent)=\"onQueryParamsEvent($event)\"\n>\n</valtimo-widget-interactive-table>\n\n<valtimo-case-list-actions [navigateAfterSubmit]=\"false\"></valtimo-case-list-actions>\n" }]
|
|
881
885
|
}], ctorParameters: () => [{ type: IkoApiService }, { type: i2$1.WidgetLayoutService }, { type: i3.CaseListService }], propDecorators: { listActionsComponent: [{
|
|
882
886
|
type: ViewChild,
|
|
883
887
|
args: [CaseListActionsComponent]
|
|
@@ -937,19 +941,19 @@ class IkoWidgetTableComponent {
|
|
|
937
941
|
this.widgetLayoutService = widgetLayoutService;
|
|
938
942
|
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
939
943
|
this._widgetParams$ = new BehaviorSubject(null);
|
|
940
|
-
this._queryParams$ = new BehaviorSubject(
|
|
944
|
+
this._queryParams$ = new BehaviorSubject(new HttpParams());
|
|
941
945
|
this.widgetData$ = combineLatest([
|
|
942
946
|
this.widgetConfiguration$,
|
|
943
947
|
this._widgetParams$,
|
|
944
|
-
|
|
948
|
+
this._queryParams$.pipe(distinctUntilChanged((prevParams, currParams) => prevParams.toString() === currParams.toString())),
|
|
949
|
+
]).pipe(switchMap(([widgetConfiguration, widgetParams, queryParams]) => !widgetParams || !widgetConfiguration
|
|
945
950
|
? of(null)
|
|
946
|
-
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
951
|
+
: this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
|
|
947
952
|
}
|
|
948
953
|
onPaginationEvent(event) {
|
|
949
|
-
this._queryParams$.next(
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
return `size=${widgetConfiguration.properties.defaultPageSize}`;
|
|
954
|
+
this._queryParams$.next(new HttpParams()
|
|
955
|
+
.set('page', (event.currentPage - 1).toString())
|
|
956
|
+
.set('size', event.pageLength.toString()));
|
|
953
957
|
}
|
|
954
958
|
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
959
|
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 }); }
|
|
@@ -1402,7 +1406,7 @@ class PropertiesFormComponent {
|
|
|
1402
1406
|
}));
|
|
1403
1407
|
}
|
|
1404
1408
|
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"] }] }); }
|
|
1409
|
+
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", "warn", "warnText", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: i6.Tooltip, selector: "cds-tooltip, ibm-tooltip", inputs: ["id", "enterDelayMs", "leaveDelayMs", "disabled", "description", "templateContext"] }] }); }
|
|
1406
1410
|
}
|
|
1407
1411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: PropertiesFormComponent, decorators: [{
|
|
1408
1412
|
type: Component,
|
|
@@ -1437,7 +1441,13 @@ class IkoManagementRepositoryModalComponent {
|
|
|
1437
1441
|
}
|
|
1438
1442
|
set prefillData(value) {
|
|
1439
1443
|
this.$prefillData.set(value);
|
|
1440
|
-
this.formGroup.patchValue(
|
|
1444
|
+
this.formGroup.patchValue({
|
|
1445
|
+
...value,
|
|
1446
|
+
type: value?.type || 'iko',
|
|
1447
|
+
});
|
|
1448
|
+
if (!this.enableIkoType) {
|
|
1449
|
+
this.formGroup.get('type')?.disable({ emitEvent: false });
|
|
1450
|
+
}
|
|
1441
1451
|
}
|
|
1442
1452
|
set modalMode(value) {
|
|
1443
1453
|
this._modalMode = value;
|
|
@@ -1467,13 +1477,16 @@ class IkoManagementRepositoryModalComponent {
|
|
|
1467
1477
|
this.formGroup = this.fb.group({
|
|
1468
1478
|
title: this.fb.control('', Validators.required),
|
|
1469
1479
|
key: this.fb.control('', Validators.required),
|
|
1470
|
-
type: this.fb.control('', Validators.required),
|
|
1480
|
+
type: this.fb.control({ value: 'iko', disabled: true }, Validators.required),
|
|
1471
1481
|
properties: this.fb.group({}, Validators.required),
|
|
1472
1482
|
});
|
|
1473
1483
|
this.propertyFields$ = this.formGroup
|
|
1474
1484
|
.get('type')
|
|
1475
|
-
.valueChanges.pipe(startWith(this.formGroup.get('type').value), tap(_ => this.formGroup.patchValue({ properties: {} })), filter(type => !!type && !Array.isArray(type)), switchMap(type => this.ikoManagementApiService.getIkoRepositoryPropertyFields(type)));
|
|
1485
|
+
.valueChanges.pipe(startWith(this.formGroup.get('type').value), tap(_ => this.formGroup.patchValue({ properties: {} }, { emitEvent: false })), filter(type => !!type && !Array.isArray(type)), switchMap(type => this.ikoManagementApiService.getIkoRepositoryPropertyFields(type)));
|
|
1476
1486
|
this.enableIkoType = this.configService.getFeatureToggle('enableIkoType');
|
|
1487
|
+
if (this.enableIkoType) {
|
|
1488
|
+
this.formGroup.get('type').enable({ emitEvent: false });
|
|
1489
|
+
}
|
|
1477
1490
|
}
|
|
1478
1491
|
get properties() {
|
|
1479
1492
|
const properties = this.formGroup.get('properties');
|
|
@@ -1497,11 +1510,16 @@ class IkoManagementRepositoryModalComponent {
|
|
|
1497
1510
|
}
|
|
1498
1511
|
resetForm() {
|
|
1499
1512
|
setTimeout(() => {
|
|
1500
|
-
this.formGroup.reset(
|
|
1513
|
+
this.formGroup.reset({
|
|
1514
|
+
title: '',
|
|
1515
|
+
key: '',
|
|
1516
|
+
type: 'iko',
|
|
1517
|
+
properties: {},
|
|
1518
|
+
});
|
|
1501
1519
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
1502
1520
|
}
|
|
1503
1521
|
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: "
|
|
1522
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.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 <v-select\n *ngIf=\"enableIkoType\"\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 <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: "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: "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", "warn", "warnText", "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 }); }
|
|
1505
1523
|
}
|
|
1506
1524
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementRepositoryModalComponent, decorators: [{
|
|
1507
1525
|
type: Component,
|
|
@@ -1518,7 +1536,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
1518
1536
|
SelectModule,
|
|
1519
1537
|
LayerModule,
|
|
1520
1538
|
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
|
|
1539
|
+
], 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 <v-select\n *ngIf=\"enableIkoType\"\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 <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"] }]
|
|
1522
1540
|
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: IkoManagementApiService }, { type: i2.ConfigService }], propDecorators: { open: [{
|
|
1523
1541
|
type: Input
|
|
1524
1542
|
}], prefillData: [{
|
|
@@ -1909,6 +1927,7 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
1909
1927
|
fieldType: this.fb.control(null, Validators.required),
|
|
1910
1928
|
dropdownDataProvider: this.fb.control(null),
|
|
1911
1929
|
dropdownValues: this.fb.array([]),
|
|
1930
|
+
required: this.fb.control(false),
|
|
1912
1931
|
});
|
|
1913
1932
|
this.SearchFieldDataType = SearchFieldDataType;
|
|
1914
1933
|
this.SearchFieldFieldType = SearchFieldFieldType;
|
|
@@ -2047,6 +2066,7 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
2047
2066
|
...(groupValue.dropdownValues && {
|
|
2048
2067
|
dropdownValues: groupValue.dropdownValues.reduce((acc, curr) => ({ ...acc, ...(!!curr?.key && { [curr.key]: curr.value }) }), {}),
|
|
2049
2068
|
}),
|
|
2069
|
+
required: groupValue.required ?? false,
|
|
2050
2070
|
});
|
|
2051
2071
|
this.resetForm();
|
|
2052
2072
|
}
|
|
@@ -2084,6 +2104,7 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
2084
2104
|
selected: true,
|
|
2085
2105
|
},
|
|
2086
2106
|
dropdownValues: [],
|
|
2107
|
+
required: !!prefillData.required,
|
|
2087
2108
|
});
|
|
2088
2109
|
if (prefillData.dropdownDataProvider && prefillData.dropdownValues)
|
|
2089
2110
|
this.setPrefilledDropdownValues(prefillData.dropdownValues);
|
|
@@ -2134,11 +2155,12 @@ class IkoManagementSearchFieldModalComponent {
|
|
|
2134
2155
|
this.dropdownValuesArray.removeAt(0);
|
|
2135
2156
|
}
|
|
2136
2157
|
this.formGroup.reset();
|
|
2158
|
+
this.formGroup.patchValue({ required: false });
|
|
2137
2159
|
this.formGroup.enable();
|
|
2138
2160
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
2139
2161
|
}
|
|
2140
2162
|
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 }); }
|
|
2163
|
+
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 <cds-toggle\n class=\"valtimo-search-fields-modal__input\"\n formControlName=\"required\"\n [label]=\"'searchFieldsOverview.required' | translate\"\n [onText]=\"'searchFieldsOverview.requiredEnabled' | translate\"\n [offText]=\"'searchFieldsOverview.requiredDisabled' | translate\"\n ></cds-toggle>\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: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { 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"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i6.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "ariaLabel", "skeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2142
2164
|
}
|
|
2143
2165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementSearchFieldModalComponent, decorators: [{
|
|
2144
2166
|
type: Component,
|
|
@@ -2146,6 +2168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
2146
2168
|
ButtonModule,
|
|
2147
2169
|
CommonModule,
|
|
2148
2170
|
DropdownModule,
|
|
2171
|
+
IconModule,
|
|
2149
2172
|
InputLabelModule,
|
|
2150
2173
|
InputModule,
|
|
2151
2174
|
LayerModule,
|
|
@@ -2154,7 +2177,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
2154
2177
|
TranslateModule,
|
|
2155
2178
|
ValtimoCdsModalDirective,
|
|
2156
2179
|
AutoKeyInputComponent,
|
|
2157
|
-
|
|
2180
|
+
ToggleModule,
|
|
2181
|
+
], 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 <cds-toggle\n class=\"valtimo-search-fields-modal__input\"\n formControlName=\"required\"\n [label]=\"'searchFieldsOverview.required' | translate\"\n [onText]=\"'searchFieldsOverview.requiredEnabled' | translate\"\n [offText]=\"'searchFieldsOverview.requiredDisabled' | translate\"\n ></cds-toggle>\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
2182
|
}], ctorParameters: () => [{ type: i6.IconService }, { type: i1$3.FormBuilder }, { type: i5.TranslateService }], propDecorators: { open: [{
|
|
2159
2183
|
type: Input,
|
|
2160
2184
|
args: [{ required: true }]
|
|
@@ -2288,6 +2312,7 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2288
2312
|
this.deleteModalOpen$.next(true);
|
|
2289
2313
|
}
|
|
2290
2314
|
editSearchField(field) {
|
|
2315
|
+
this.$modalMode.set('edit');
|
|
2291
2316
|
if (!!field.dropdownDataProvider) {
|
|
2292
2317
|
this.params$
|
|
2293
2318
|
.pipe(switchMap((params) => this.ikoManagementApiService.getDropdownData(field.dropdownDataProvider, params.aggregateKey, params.actionKey, field.key)), take(1))
|
|
@@ -2298,7 +2323,6 @@ class IkoManagementSearchFieldsComponent {
|
|
|
2298
2323
|
});
|
|
2299
2324
|
return;
|
|
2300
2325
|
}
|
|
2301
|
-
this.$modalMode.set('edit');
|
|
2302
2326
|
this.prefillData$.next(field);
|
|
2303
2327
|
this.fieldModalOpen$.next(true);
|
|
2304
2328
|
}
|
|
@@ -3016,7 +3040,7 @@ class IkoManagementListModalComponent {
|
|
|
3016
3040
|
};
|
|
3017
3041
|
}
|
|
3018
3042
|
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"] }] }); }
|
|
3043
|
+
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 [mode]=\"modalMode\"\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnTitlePlaceholder' | 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=\"ikoManagement.columnKeyPlaceholder\"\n >\n </valtimo-auto-key-input>\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", "warn", "warnText", "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"] }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }] }); }
|
|
3020
3044
|
}
|
|
3021
3045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementListModalComponent, decorators: [{
|
|
3022
3046
|
type: Component,
|
|
@@ -3035,7 +3059,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
3035
3059
|
CarbonMultiInputModule,
|
|
3036
3060
|
InputLabelModule,
|
|
3037
3061
|
NumberModule,
|
|
3038
|
-
|
|
3062
|
+
AutoKeyInputComponent
|
|
3063
|
+
], 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 [mode]=\"modalMode\"\n [invalid]=\"title.dirty && title.invalid\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'ikoManagement.columnTitlePlaceholder' | 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=\"ikoManagement.columnKeyPlaceholder\"\n >\n </valtimo-auto-key-input>\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"] }]
|
|
3039
3064
|
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$3.FormBuilder }, { type: i1$2.ActivatedRoute }], propDecorators: { openModal: [{
|
|
3040
3065
|
type: Input
|
|
3041
3066
|
}], listColumns: [{
|
|
@@ -3273,7 +3298,7 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3273
3298
|
if (!value)
|
|
3274
3299
|
return;
|
|
3275
3300
|
this.$selectedKey.set(value.key);
|
|
3276
|
-
this.form.setValue({ ...value, title: value.title || '' });
|
|
3301
|
+
this.form.setValue({ ...value, title: value.title || '', properties: value.properties || {} });
|
|
3277
3302
|
this.form.markAsPristine();
|
|
3278
3303
|
}
|
|
3279
3304
|
set modalMode(value) {
|
|
@@ -3291,6 +3316,9 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3291
3316
|
get type() {
|
|
3292
3317
|
return this.form.get('type');
|
|
3293
3318
|
}
|
|
3319
|
+
get properties() {
|
|
3320
|
+
return this.form.get('properties');
|
|
3321
|
+
}
|
|
3294
3322
|
constructor(ikoManagementApiService, formBuilder, route) {
|
|
3295
3323
|
this.ikoManagementApiService = ikoManagementApiService;
|
|
3296
3324
|
this.formBuilder = formBuilder;
|
|
@@ -3304,6 +3332,7 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3304
3332
|
title: this.formBuilder.control('', Validators.required),
|
|
3305
3333
|
key: this.formBuilder.control('', [Validators.required]),
|
|
3306
3334
|
type: this.formBuilder.control('', [Validators.required]),
|
|
3335
|
+
properties: this.formBuilder.group({}),
|
|
3307
3336
|
});
|
|
3308
3337
|
this._ikoViewKey$ = this.route.params.pipe(map$1(params => params?.key), filter(key => !!key));
|
|
3309
3338
|
this._TAB_TYPES = [IkoTabType.WIDGETS];
|
|
@@ -3311,6 +3340,7 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3311
3340
|
id: tabType,
|
|
3312
3341
|
translationKey: `ikoManagement.tabTypes.${tabType}`,
|
|
3313
3342
|
}));
|
|
3343
|
+
this.propertyFields$ = this.ikoManagementApiService.getIkoTabPropertyFields('iko');
|
|
3314
3344
|
this.resetForm = () => {
|
|
3315
3345
|
this.form.reset();
|
|
3316
3346
|
this.form.markAsPristine();
|
|
@@ -3347,7 +3377,7 @@ class IkoManagementTabDetailsModalComponent {
|
|
|
3347
3377
|
this.form.enable();
|
|
3348
3378
|
}
|
|
3349
3379
|
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 }); }
|
|
3380
|
+
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\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"properties?.value\"\n />\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: "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", "warn", "warnText", "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"] }, { kind: "component", type: PropertiesFormComponent, selector: "valtimo-iko-management-properties", inputs: ["propertiesFormGroup", "fields", "prefillData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3351
3381
|
}
|
|
3352
3382
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoManagementTabDetailsModalComponent, decorators: [{
|
|
3353
3383
|
type: Component,
|
|
@@ -3367,7 +3397,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
3367
3397
|
InputLabelModule,
|
|
3368
3398
|
NumberModule,
|
|
3369
3399
|
AutoKeyInputComponent,
|
|
3370
|
-
|
|
3400
|
+
PropertiesFormComponent,
|
|
3401
|
+
], 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\n <valtimo-iko-management-properties\n [propertiesFormGroup]=\"properties\"\n [fields]=\"propertyFields$ | async\"\n [prefillData]=\"properties?.value\"\n />\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
3402
|
}], ctorParameters: () => [{ type: IkoManagementApiService }, { type: i1$3.FormBuilder }, { type: i1$2.ActivatedRoute }], propDecorators: { openModal: [{
|
|
3372
3403
|
type: Input
|
|
3373
3404
|
}], usedKeys: [{
|
|
@@ -3403,7 +3434,9 @@ class IkoManagementTabsComponent {
|
|
|
3403
3434
|
this.router = router;
|
|
3404
3435
|
this.$disableInput = signal(true);
|
|
3405
3436
|
this.$ikoTabDtos = signal([]);
|
|
3406
|
-
this.$usedKeys = computed(() => this.$ikoTabDtos()
|
|
3437
|
+
this.$usedKeys = computed(() => this.$ikoTabDtos()
|
|
3438
|
+
.filter(tab => tab.key !== this.$selectedTab()?.key)
|
|
3439
|
+
.map(tab => tab.key));
|
|
3407
3440
|
this.$loading = signal(true);
|
|
3408
3441
|
this.$selectedTab = signal(null);
|
|
3409
3442
|
this.$openModal = signal(false);
|
|
@@ -3417,6 +3450,7 @@ class IkoManagementTabsComponent {
|
|
|
3417
3450
|
]).pipe(map(([tabs]) => tabs.map(tab => ({
|
|
3418
3451
|
...tab,
|
|
3419
3452
|
type: this.translateService.instant(`ikoManagement.tabTypes.${tab.type}`),
|
|
3453
|
+
properties: this.getTabPropertiesView(tab),
|
|
3420
3454
|
}))), tap(() => this.$disableInput.set(false)));
|
|
3421
3455
|
this.FIELDS = [
|
|
3422
3456
|
{
|
|
@@ -3437,6 +3471,12 @@ class IkoManagementTabsComponent {
|
|
|
3437
3471
|
viewType: 'string',
|
|
3438
3472
|
sortable: false,
|
|
3439
3473
|
},
|
|
3474
|
+
{
|
|
3475
|
+
key: 'properties',
|
|
3476
|
+
label: 'ikoManagement.tabProperties',
|
|
3477
|
+
viewType: 'string',
|
|
3478
|
+
sortable: false,
|
|
3479
|
+
},
|
|
3440
3480
|
];
|
|
3441
3481
|
this.ACTION_ITEMS = [
|
|
3442
3482
|
{
|
|
@@ -3507,7 +3547,7 @@ class IkoManagementTabsComponent {
|
|
|
3507
3547
|
}
|
|
3508
3548
|
onCreateButtonClicked() {
|
|
3509
3549
|
this.$modalMode.set('add');
|
|
3510
|
-
this.$selectedTab.set({ title: '', key: '', type: '' });
|
|
3550
|
+
this.$selectedTab.set({ title: '', key: '', type: '', properties: {} });
|
|
3511
3551
|
this.openModal();
|
|
3512
3552
|
}
|
|
3513
3553
|
closeModal() {
|
|
@@ -3535,6 +3575,14 @@ class IkoManagementTabsComponent {
|
|
|
3535
3575
|
},
|
|
3536
3576
|
});
|
|
3537
3577
|
}
|
|
3578
|
+
getTabPropertiesView(tab) {
|
|
3579
|
+
if (!tab?.properties || Object.keys(tab.properties).length === 0) {
|
|
3580
|
+
return null;
|
|
3581
|
+
}
|
|
3582
|
+
return Object.entries(tab.properties)
|
|
3583
|
+
.map(([key, value]) => `${key}: ${value}`)
|
|
3584
|
+
.join(', ');
|
|
3585
|
+
}
|
|
3538
3586
|
disableInput() {
|
|
3539
3587
|
this.$disableInput.set(true);
|
|
3540
3588
|
}
|
|
@@ -4290,7 +4338,10 @@ class IkoSearchComponent {
|
|
|
4290
4338
|
const value = values[param.key];
|
|
4291
4339
|
if (value === null)
|
|
4292
4340
|
continue;
|
|
4293
|
-
if (typeof value === 'object' &&
|
|
4341
|
+
if (typeof value === 'object' &&
|
|
4342
|
+
!Array.isArray(value) &&
|
|
4343
|
+
value.start !== null &&
|
|
4344
|
+
value.end !== null) {
|
|
4294
4345
|
queryParams[param.key] = JSON.stringify({
|
|
4295
4346
|
rangeFrom: value.start,
|
|
4296
4347
|
rangeTo: value.end,
|
|
@@ -4326,6 +4377,7 @@ class IkoSearchComponent {
|
|
|
4326
4377
|
});
|
|
4327
4378
|
}
|
|
4328
4379
|
multipleValueChange(searchFieldKey, value, dataType) {
|
|
4380
|
+
this.formValues[searchFieldKey] = value;
|
|
4329
4381
|
this.values$.pipe(take(1)).subscribe(values => {
|
|
4330
4382
|
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
4331
4383
|
const hasStart = value.start !== undefined && value.start !== '';
|
|
@@ -4429,7 +4481,7 @@ class IkoSearchComponent {
|
|
|
4429
4481
|
return false;
|
|
4430
4482
|
}
|
|
4431
4483
|
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\n (keyup.enter)=\"!searchDisabled(param.searchFields) && searchGroup(param.key, param.searchFields)\"\n class=\"query-group\"\n [heading]=\"param.title\"\n [cdsLayer]=\"1\"\n >\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"] }] }); }
|
|
4484
|
+
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\n (keyup.enter)=\"!searchDisabled(param.searchFields) && searchGroup(param.key, param.searchFields)\"\n class=\"query-group\"\n [heading]=\"param.title\"\n [cdsLayer]=\"1\"\n >\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 === 'text' && (field.fieldType === 'single-select-dropdown' || field.fieldType === 'single_select_dropdown')) {\n <v-select\n *ngIf=\"dropdownSelectItemsMap[field.key]\"\n [items]=\"dropdownSelectItemsMap[field.key]\"\n [margin]=\"false\"\n [required]=\"field.required\"\n [name]=\"field.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n [appendInline]=\"false\"\n ></v-select>\n }\n @else if (field.dataType === 'text' && (field.fieldType === 'multi-select-dropdown' || field.fieldType === 'multi_select_dropdown')) {\n <v-select\n *ngIf=\"dropdownSelectItemsMap[field.key]\"\n [items]=\"dropdownSelectItemsMap[field.key]\"\n [margin]=\"false\"\n [multiple]=\"true\"\n [required]=\"field.required\"\n [name]=\"field.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n [appendInline]=\"false\"\n ></v-select>\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: 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"] }, { 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", "warn", "warnText", "dataTestId"], outputs: ["selectedChange"] }] }); }
|
|
4433
4485
|
}
|
|
4434
4486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IkoSearchComponent, decorators: [{
|
|
4435
4487
|
type: Component,
|
|
@@ -4446,7 +4498,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
4446
4498
|
TabsModule,
|
|
4447
4499
|
LayerModule,
|
|
4448
4500
|
AsyncPipe,
|
|
4449
|
-
SelectModule,
|
|
4450
4501
|
DatePickerModule,
|
|
4451
4502
|
NgIf,
|
|
4452
4503
|
NgClass,
|
|
@@ -4456,7 +4507,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
4456
4507
|
InputLabelModule,
|
|
4457
4508
|
InputModule$1,
|
|
4458
4509
|
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\n (keyup.enter)=\"!searchDisabled(param.searchFields) && searchGroup(param.key, param.searchFields)\"\n class=\"query-group\"\n [heading]=\"param.title\"\n [cdsLayer]=\"1\"\n >\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"] }]
|
|
4510
|
+
SelectModule,
|
|
4511
|
+
], 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\n (keyup.enter)=\"!searchDisabled(param.searchFields) && searchGroup(param.key, param.searchFields)\"\n class=\"query-group\"\n [heading]=\"param.title\"\n [cdsLayer]=\"1\"\n >\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 === 'text' && (field.fieldType === 'single-select-dropdown' || field.fieldType === 'single_select_dropdown')) {\n <v-select\n *ngIf=\"dropdownSelectItemsMap[field.key]\"\n [items]=\"dropdownSelectItemsMap[field.key]\"\n [margin]=\"false\"\n [required]=\"field.required\"\n [name]=\"field.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(field.key, $event, field.dataType)\"\n [appendInline]=\"false\"\n ></v-select>\n }\n @else if (field.dataType === 'text' && (field.fieldType === 'multi-select-dropdown' || field.fieldType === 'multi_select_dropdown')) {\n <v-select\n *ngIf=\"dropdownSelectItemsMap[field.key]\"\n [items]=\"dropdownSelectItemsMap[field.key]\"\n [margin]=\"false\"\n [multiple]=\"true\"\n [required]=\"field.required\"\n [name]=\"field.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"multipleValueChange(field.key, $event, field.dataType)\"\n [appendInline]=\"false\"\n ></v-select>\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
4512
|
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: i2$2.PageTitleService }, { type: i6.IconService }, { type: IkoApiService }, { type: i5.TranslateService }] });
|
|
4461
4513
|
|
|
4462
4514
|
/*
|