@valtimo/building-block-management 13.24.1 → 13.25.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.
@@ -26,10 +26,12 @@ import { take as take$1 } from 'rxjs/operators';
26
26
  import * as i3$2 from '@valtimo/process-link';
27
27
  import { FormManagementCreateComponent, FormManagementEditComponent } from '@valtimo/form-management';
28
28
  import { NewFormFlowModalComponent, FormFlowEditorComponent } from '@valtimo/form-flow-management';
29
+ import * as i2$4 from '@valtimo/decision';
30
+ import { DecisionDeployComponent, DecisionModelerComponent } from '@valtimo/decision';
29
31
  import { ProcessManagementBuilderComponent } from '@valtimo/process-management';
30
32
 
31
33
  /*
32
- * Copyright 2015-2025 Ritense BV, the Netherlands.
34
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
33
35
  *
34
36
  * Licensed under EUPL, Version 1.2 (the "License");
35
37
  * you may not use this file except in compliance with the License.
@@ -150,6 +152,12 @@ class BuildingBlockManagementApiService extends BaseApiService {
150
152
  deleteBuildingBlockFormFlowDefinition(key, versionTag, definitionKey) {
151
153
  return this.httpClient.delete(this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/form-flow-definition/${definitionKey}`));
152
154
  }
155
+ getBuildingBlockDecisionDefinitions(key, versionTag) {
156
+ return this.httpClient.get(this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/decision-definition`));
157
+ }
158
+ deleteBuildingBlockDecisionDefinition(key, versionTag, decisionDefinitionKey) {
159
+ return this.httpClient.delete(this.getApiUrl(`management/v1/building-block/${key}/version/${versionTag}/decision-definition/${decisionDefinitionKey}`));
160
+ }
153
161
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementApiService, deps: [{ token: i5.ConfigService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
154
162
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementApiService, providedIn: 'root' }); }
155
163
  }
@@ -367,7 +375,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
367
375
  */
368
376
 
369
377
  /*
370
- * Copyright 2015-2025 Ritense BV, the Netherlands.
378
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
371
379
  *
372
380
  * Licensed under EUPL, Version 1.2 (the "License");
373
381
  * you may not use this file except in compliance with the License.
@@ -387,6 +395,7 @@ const BUILDING_BLOCK_MANAGEMENT_TABS = {
387
395
  DOCUMENT: 'document',
388
396
  FORMS: 'forms',
389
397
  FORM_FLOWS: 'form-flows',
398
+ DECISIONS: 'decisions',
390
399
  };
391
400
 
392
401
  /*
@@ -2013,7 +2022,127 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2013
2022
  }], ctorParameters: () => [{ type: BuildingBlockManagementDetailService }, { type: BuildingBlockManagementApiService }, { type: i2$2.TranslateService }, { type: i3$1.IconService }, { type: i3.Router }, { type: i5.GlobalNotificationService }] });
2014
2023
 
2015
2024
  /*
2016
- * Copyright 2015-2025 Ritense BV, the Netherlands.
2025
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
2026
+ *
2027
+ * Licensed under EUPL, Version 1.2 (the "License");
2028
+ * you may not use this file except in compliance with the License.
2029
+ * You may obtain a copy of the License at
2030
+ *
2031
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2032
+ *
2033
+ * Unless required by applicable law or agreed to in writing, software
2034
+ * distributed under the License is distributed on an "AS IS" basis,
2035
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2036
+ * See the License for the specific language governing permissions and
2037
+ * limitations under the License.
2038
+ */
2039
+ class BuildingBlockManagementDecisionsComponent {
2040
+ constructor(buildingBlockManagementDetailService, buildingBlockManagementApiService, decisionStateService, translateService, iconService, router, notificationService) {
2041
+ this.buildingBlockManagementDetailService = buildingBlockManagementDetailService;
2042
+ this.buildingBlockManagementApiService = buildingBlockManagementApiService;
2043
+ this.decisionStateService = decisionStateService;
2044
+ this.translateService = translateService;
2045
+ this.iconService = iconService;
2046
+ this.router = router;
2047
+ this.notificationService = notificationService;
2048
+ this.$loading = signal(true);
2049
+ this._decisions$ = new BehaviorSubject([]);
2050
+ this.decisions$ = this._decisions$.asObservable();
2051
+ this.FIELDS = [
2052
+ { key: 'key', label: 'Key' },
2053
+ { key: 'name', label: 'Name' },
2054
+ ];
2055
+ this.onDeleteClick = (decision) => {
2056
+ this._decisionToDelete = decision;
2057
+ this.showDeleteModal$.next(true);
2058
+ };
2059
+ this.ACTION_ITEMS = [
2060
+ {
2061
+ label: 'interface.delete',
2062
+ callback: this.onDeleteClick,
2063
+ type: 'danger',
2064
+ disabledCallback: this.deleteDisabled.bind(this),
2065
+ },
2066
+ ];
2067
+ this.isFinal$ = this.buildingBlockManagementDetailService.isFinal$;
2068
+ this.showDeleteModal$ = new BehaviorSubject(false);
2069
+ this._subscriptions = new Subscription();
2070
+ this._isFinal = false;
2071
+ this.iconService.registerAll([Upload16]);
2072
+ }
2073
+ ngOnInit() {
2074
+ this._subscriptions.add(combineLatest([
2075
+ this.buildingBlockManagementDetailService.buildingBlockDefinitionKey$,
2076
+ this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag$,
2077
+ ])
2078
+ .pipe(distinctUntilChanged((a, b) => isEqual(a, b)), tap(() => this.$loading.set(true)), switchMap(([key, versionTag]) => this.decisionStateService.refreshDecisions$.pipe(tap(() => this.$loading.set(true)), switchMap(() => this.buildingBlockManagementApiService.getBuildingBlockDecisionDefinitions(key, versionTag)))), tap(decisions => {
2079
+ this._decisions$.next(decisions);
2080
+ this.$loading.set(false);
2081
+ }))
2082
+ .subscribe());
2083
+ this._subscriptions.add(this.isFinal$.subscribe(isFinal => (this._isFinal = isFinal)));
2084
+ }
2085
+ ngOnDestroy() {
2086
+ this._subscriptions.unsubscribe();
2087
+ }
2088
+ onRowClick(decision) {
2089
+ this.router.navigate([
2090
+ '/building-block-management',
2091
+ 'building-block',
2092
+ this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,
2093
+ 'version',
2094
+ this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,
2095
+ BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS,
2096
+ decision.id,
2097
+ ]);
2098
+ }
2099
+ onDeploySuccessful() {
2100
+ this.decisionStateService.refreshDecisions();
2101
+ }
2102
+ onDeleteConfirm() {
2103
+ if (!this._decisionToDelete)
2104
+ return;
2105
+ this.$loading.set(true);
2106
+ this.buildingBlockManagementApiService
2107
+ .deleteBuildingBlockDecisionDefinition(this.buildingBlockManagementDetailService.buildingBlockDefinitionKey, this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag, this._decisionToDelete.key)
2108
+ .subscribe({
2109
+ next: () => {
2110
+ this.notificationService.showToast({
2111
+ type: 'success',
2112
+ title: this.translateService.instant('decisions.deleteSuccess'),
2113
+ });
2114
+ this.decisionStateService.refreshDecisions();
2115
+ },
2116
+ error: () => {
2117
+ this.notificationService.showToast({
2118
+ type: 'error',
2119
+ title: this.translateService.instant('decisions.deleteFailure'),
2120
+ });
2121
+ this.$loading.set(false);
2122
+ },
2123
+ });
2124
+ }
2125
+ deleteDisabled() {
2126
+ return this._isFinal;
2127
+ }
2128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDecisionsComponent, deps: [{ token: BuildingBlockManagementDetailService }, { token: BuildingBlockManagementApiService }, { token: i2$4.DecisionStateService }, { token: i2$2.TranslateService }, { token: i3$1.IconService }, { token: i3.Router }, { token: i5.GlobalNotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
2129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: BuildingBlockManagementDecisionsComponent, isStandalone: true, selector: "valtimo-building-block-management-decisions", ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [fields]=\"FIELDS\"\n [actionItems]=\"ACTION_ITEMS\"\n [items]=\"decisions$ | async\"\n [loading]=\"$loading()\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <div carbonToolbarContent>\n <div class=\"valtimo-building-block-management-list__actions\">\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"deploy.openModal()\"\n [disabled]=\"(isFinal$ | async) || $loading()\"\n >\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</valtimo-carbon-list>\n\n<valtimo-decision-deploy\n #deploy\n (deploySuccessful)=\"onDeploySuccessful()\"\n></valtimo-decision-deploy>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"decisions.deleteModal.content\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"decisions.deleteModal.title\"\n (confirmEvent)=\"onDeleteConfirm()\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i7.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "skeletonRowCount", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i7.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: DecisionDeployComponent, selector: "valtimo-decision-deploy", outputs: ["deploySuccessful"] }] }); }
2130
+ }
2131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDecisionsComponent, decorators: [{
2132
+ type: Component,
2133
+ args: [{ standalone: true, selector: 'valtimo-building-block-management-decisions', imports: [
2134
+ CommonModule,
2135
+ CarbonListModule,
2136
+ TranslateModule,
2137
+ ButtonModule,
2138
+ IconModule,
2139
+ ConfirmationModalModule,
2140
+ DecisionDeployComponent,
2141
+ ], template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [fields]=\"FIELDS\"\n [actionItems]=\"ACTION_ITEMS\"\n [items]=\"decisions$ | async\"\n [loading]=\"$loading()\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <div carbonToolbarContent>\n <div class=\"valtimo-building-block-management-list__actions\">\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"deploy.openModal()\"\n [disabled]=\"(isFinal$ | async) || $loading()\"\n >\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</valtimo-carbon-list>\n\n<valtimo-decision-deploy\n #deploy\n (deploySuccessful)=\"onDeploySuccessful()\"\n></valtimo-decision-deploy>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"decisions.deleteModal.content\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"decisions.deleteModal.title\"\n (confirmEvent)=\"onDeleteConfirm()\"\n></valtimo-confirmation-modal>\n" }]
2142
+ }], ctorParameters: () => [{ type: BuildingBlockManagementDetailService }, { type: BuildingBlockManagementApiService }, { type: i2$4.DecisionStateService }, { type: i2$2.TranslateService }, { type: i3$1.IconService }, { type: i3.Router }, { type: i5.GlobalNotificationService }] });
2143
+
2144
+ /*
2145
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
2017
2146
  *
2018
2147
  * Licensed under EUPL, Version 1.2 (the "License");
2019
2148
  * you may not use this file except in compliance with the License.
@@ -2064,7 +2193,7 @@ class BuildingBlockManagementDetailComponent {
2064
2193
  return [];
2065
2194
  }
2066
2195
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDetailComponent, deps: [{ token: i3.ActivatedRoute }, { token: BuildingBlockManagementDetailService }, { token: i7.PageTitleService }, { token: BUILDING_BLOCK_MANAGEMENT_TAB_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
2067
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: BuildingBlockManagementDetailComponent, isStandalone: true, selector: "valtimo-building-block-management-detail", providers: [BuildingBlockManagementDetailService], 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 (activeTabKey$ | async; as activeTabKey) {\n <cds-tabs type=\"line\">\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.general' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-general></valtimo-building-block-management-general>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.document' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-document></valtimo-building-block-management-document>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.processes' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-processes></valtimo-building-block-management-processes>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORMS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.forms' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORMS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-forms></valtimo-building-block-management-forms>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.formFlows' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-form-flows></valtimo-building-block-management-form-flows>\n }\n </cds-tab>\n }\n\n @for (customTab of customTabs; track customTab.tabRoute) {\n @if ((customTab.enabled$ | async) && {active: activeTabKey === customTab.tabRoute}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"customTab.translationKey | translate\"\n (selected)=\"switchTab(customTab.tabRoute)\"\n >\n @if (obs.active) {\n <ng-container *ngComponentOutlet=\"customTab.component\"></ng-container>\n }\n </cds-tab>\n }\n }\n </cds-tabs>\n}\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"building-block-management-detail__header\">\n <valtimo-building-block-management-detail-actions></valtimo-building-block-management-detail-actions>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".valtimo-building-block-management-list__actions{display:flex}:host ::ng-deep .building-block-management-detail__header{display:flex;align-items:center;gap:.75rem;justify-content:flex-end}:host ::ng-deep .cds--tab-content{margin:0!important;padding-left:0!important;padding-right:0!important;outline:none!important}.building-block-management-header{display:flex;justify-content:space-between}\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.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: IconModule }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i3$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BuildingBlockManagementGeneralComponent, selector: "valtimo-building-block-management-general" }, { kind: "component", type: BuildingBlockManagementDocumentComponent, selector: "valtimo-building-block-management-document" }, { kind: "component", type: BuildingBlockManagementProcessesComponent, selector: "valtimo-building-block-management-processes" }, { kind: "component", type: BuildingBlockManagementFormsComponent, selector: "valtimo-building-block-management-forms" }, { kind: "component", type: BuildingBlockManagementFormFlowsComponent, selector: "valtimo-building-block-management-form-flows" }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: BuildingBlockManagementDetailActionsComponent, selector: "valtimo-building-block-management-detail-actions" }, { kind: "ngmodule", type: DialogModule }] }); }
2196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: BuildingBlockManagementDetailComponent, isStandalone: true, selector: "valtimo-building-block-management-detail", providers: [BuildingBlockManagementDetailService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 (activeTabKey$ | async; as activeTabKey) {\n <cds-tabs type=\"line\">\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.general' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-general></valtimo-building-block-management-general>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.document' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-document></valtimo-building-block-management-document>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.processes' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-processes></valtimo-building-block-management-processes>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORMS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.forms' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORMS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-forms></valtimo-building-block-management-forms>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.formFlows' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-form-flows></valtimo-building-block-management-form-flows>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.decisions' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-decisions></valtimo-building-block-management-decisions>\n }\n </cds-tab>\n }\n\n @for (customTab of customTabs; track customTab.tabRoute) {\n @if ((customTab.enabled$ | async) && {active: activeTabKey === customTab.tabRoute}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"customTab.translationKey | translate\"\n (selected)=\"switchTab(customTab.tabRoute)\"\n >\n @if (obs.active) {\n <ng-container *ngComponentOutlet=\"customTab.component\"></ng-container>\n }\n </cds-tab>\n }\n }\n </cds-tabs>\n}\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"building-block-management-detail__header\">\n <valtimo-building-block-management-detail-actions></valtimo-building-block-management-detail-actions>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".valtimo-building-block-management-list__actions{display:flex}:host ::ng-deep .building-block-management-detail__header{display:flex;align-items:center;gap:.75rem;justify-content:flex-end}:host ::ng-deep .cds--tab-content{margin:0!important;padding-left:0!important;padding-right:0!important;outline:none!important}.building-block-management-header{display:flex;justify-content:space-between}\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.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: IconModule }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i3$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BuildingBlockManagementGeneralComponent, selector: "valtimo-building-block-management-general" }, { kind: "component", type: BuildingBlockManagementDocumentComponent, selector: "valtimo-building-block-management-document" }, { kind: "component", type: BuildingBlockManagementProcessesComponent, selector: "valtimo-building-block-management-processes" }, { kind: "component", type: BuildingBlockManagementFormsComponent, selector: "valtimo-building-block-management-forms" }, { kind: "component", type: BuildingBlockManagementFormFlowsComponent, selector: "valtimo-building-block-management-form-flows" }, { kind: "component", type: BuildingBlockManagementDecisionsComponent, selector: "valtimo-building-block-management-decisions" }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: BuildingBlockManagementDetailActionsComponent, selector: "valtimo-building-block-management-detail-actions" }, { kind: "ngmodule", type: DialogModule }] }); }
2068
2197
  }
2069
2198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDetailComponent, decorators: [{
2070
2199
  type: Component,
@@ -2080,10 +2209,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2080
2209
  BuildingBlockManagementProcessesComponent,
2081
2210
  BuildingBlockManagementFormsComponent,
2082
2211
  BuildingBlockManagementFormFlowsComponent,
2212
+ BuildingBlockManagementDecisionsComponent,
2083
2213
  RenderInPageHeaderDirective,
2084
2214
  BuildingBlockManagementDetailActionsComponent,
2085
2215
  DialogModule,
2086
- ], providers: [BuildingBlockManagementDetailService], 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 (activeTabKey$ | async; as activeTabKey) {\n <cds-tabs type=\"line\">\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.general' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-general></valtimo-building-block-management-general>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.document' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-document></valtimo-building-block-management-document>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.processes' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-processes></valtimo-building-block-management-processes>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORMS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.forms' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORMS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-forms></valtimo-building-block-management-forms>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.formFlows' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-form-flows></valtimo-building-block-management-form-flows>\n }\n </cds-tab>\n }\n\n @for (customTab of customTabs; track customTab.tabRoute) {\n @if ((customTab.enabled$ | async) && {active: activeTabKey === customTab.tabRoute}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"customTab.translationKey | translate\"\n (selected)=\"switchTab(customTab.tabRoute)\"\n >\n @if (obs.active) {\n <ng-container *ngComponentOutlet=\"customTab.component\"></ng-container>\n }\n </cds-tab>\n }\n }\n </cds-tabs>\n}\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"building-block-management-detail__header\">\n <valtimo-building-block-management-detail-actions></valtimo-building-block-management-detail-actions>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".valtimo-building-block-management-list__actions{display:flex}:host ::ng-deep .building-block-management-detail__header{display:flex;align-items:center;gap:.75rem;justify-content:flex-end}:host ::ng-deep .cds--tab-content{margin:0!important;padding-left:0!important;padding-right:0!important;outline:none!important}.building-block-management-header{display:flex;justify-content:space-between}\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"] }]
2216
+ ], providers: [BuildingBlockManagementDetailService], template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 (activeTabKey$ | async; as activeTabKey) {\n <cds-tabs type=\"line\">\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.general' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.GENERAL)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-general></valtimo-building-block-management-general>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.document' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DOCUMENT)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-document></valtimo-building-block-management-document>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.processes' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.PROCESSES)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-processes></valtimo-building-block-management-processes>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORMS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.forms' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORMS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-forms></valtimo-building-block-management-forms>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.formFlows' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.FORM_FLOWS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-form-flows></valtimo-building-block-management-form-flows>\n }\n </cds-tab>\n }\n\n @if ({active: activeTabKey === BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"'buildingBlockManagement.tabs.decisions' | translate\"\n (selected)=\"switchTab(BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS)\"\n >\n @if (obs.active) {\n <valtimo-building-block-management-decisions></valtimo-building-block-management-decisions>\n }\n </cds-tab>\n }\n\n @for (customTab of customTabs; track customTab.tabRoute) {\n @if ((customTab.enabled$ | async) && {active: activeTabKey === customTab.tabRoute}; as obs) {\n <cds-tab\n [active]=\"obs.active\"\n [heading]=\"customTab.translationKey | translate\"\n (selected)=\"switchTab(customTab.tabRoute)\"\n >\n @if (obs.active) {\n <ng-container *ngComponentOutlet=\"customTab.component\"></ng-container>\n }\n </cds-tab>\n }\n }\n </cds-tabs>\n}\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"building-block-management-detail__header\">\n <valtimo-building-block-management-detail-actions></valtimo-building-block-management-detail-actions>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".valtimo-building-block-management-list__actions{display:flex}:host ::ng-deep .building-block-management-detail__header{display:flex;align-items:center;gap:.75rem;justify-content:flex-end}:host ::ng-deep .cds--tab-content{margin:0!important;padding-left:0!important;padding-right:0!important;outline:none!important}.building-block-management-header{display:flex;justify-content:space-between}\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"] }]
2087
2217
  }], ctorParameters: () => [{ type: i3.ActivatedRoute }, { type: BuildingBlockManagementDetailService }, { type: i7.PageTitleService }, { type: undefined, decorators: [{
2088
2218
  type: Optional
2089
2219
  }, {
@@ -2092,7 +2222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2092
2222
  }] }] });
2093
2223
 
2094
2224
  /*
2095
- * Copyright 2015-2025 Ritense BV, the Netherlands.
2225
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
2096
2226
  *
2097
2227
  * Licensed under EUPL, Version 1.2 (the "License");
2098
2228
  * you may not use this file except in compliance with the License.
@@ -2167,6 +2297,17 @@ const routes = [
2167
2297
  context: 'buildingBlock',
2168
2298
  },
2169
2299
  },
2300
+ {
2301
+ path: `building-block-management/building-block/:buildingBlockDefinitionKey/version/:buildingBlockDefinitionVersionTag/${BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS}/:id`,
2302
+ component: DecisionModelerComponent,
2303
+ canActivate: [AuthGuardService],
2304
+ data: {
2305
+ title: 'Edit decision table',
2306
+ roles: [ROLE_ADMIN],
2307
+ customPageTitle: true,
2308
+ context: 'buildingBlock',
2309
+ },
2310
+ },
2170
2311
  ];
2171
2312
  class BuildingBlockManagementRouting {
2172
2313
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementRouting, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }