@valtimo/building-block-management 13.34.0 → 13.35.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.
@@ -27,7 +27,7 @@ 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
29
  import * as i2$4 from '@valtimo/decision';
30
- import { DecisionDeployComponent, DecisionModelerComponent } from '@valtimo/decision';
30
+ import { parseDecisionForm, updateDmnXml, toDecisionFileName, DecisionDeployComponent, DecisionFormModalComponent, DecisionModelerComponent } from '@valtimo/decision';
31
31
  import { ProcessManagementBuilderComponent } from '@valtimo/process-management';
32
32
 
33
33
  /*
@@ -1151,7 +1151,7 @@ class BuildingBlockManagementDocumentComponent {
1151
1151
  this._documentDefinition$.next(JSON.stringify(definition, null, 2));
1152
1152
  }
1153
1153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDocumentComponent, deps: [{ token: BuildingBlockManagementDetailService }, { token: BuildingBlockManagementApiService }, { token: i3$1.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
1154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: BuildingBlockManagementDocumentComponent, isStandalone: true, selector: "valtimo-building-block-management-document", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentDefinition: documentDefinition$ | async,\n isFinal: isFinal$ | async,\n } as obs\"\n>\n @if (!obs.loading) {\n <valtimo-schema-editor\n [fitPage]=\"true\"\n [spaceAdjustment]=\"64\"\n [disableOverflow]=\"true\"\n [schemaJson]=\"obs.documentDefinition\"\n [disabled]=\"obs.isFinal\"\n (changeEvent)=\"onChangeEvent($event)\"\n (saveEvent)=\"onSaveEvent()\"\n >\n <button\n cdsButton=\"ghost\"\n [disabled]=\"obs.loading || !obs.documentDefinition\"\n (click)=\"downloadDefinition()\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </valtimo-schema-editor>\n } @else {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n</ng-container>\n\n<a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\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: 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: LoadingModule }, { kind: "component", type: i3$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: SchemaEditorComponent, selector: "valtimo-schema-editor", inputs: ["schemaJson", "disabled"], outputs: ["changeEvent", "saveEvent", "validEvent"] }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["spaceAdjustment", "fitPageDisabled", "disableOverflow"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: BuildingBlockManagementDocumentComponent, isStandalone: true, selector: "valtimo-building-block-management-document", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentDefinition: documentDefinition$ | async,\n isFinal: isFinal$ | async,\n } as obs\"\n>\n @if (!obs.loading) {\n <valtimo-schema-editor\n [fitPage]=\"true\"\n [disableOverflow]=\"true\"\n [schemaJson]=\"obs.documentDefinition\"\n [disabled]=\"obs.isFinal\"\n (changeEvent)=\"onChangeEvent($event)\"\n (saveEvent)=\"onSaveEvent()\"\n >\n <button\n cdsButton=\"ghost\"\n [disabled]=\"obs.loading || !obs.documentDefinition\"\n (click)=\"downloadDefinition()\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </valtimo-schema-editor>\n } @else {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n</ng-container>\n\n<a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\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: 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: LoadingModule }, { kind: "component", type: i3$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: SchemaEditorComponent, selector: "valtimo-schema-editor", inputs: ["schemaJson", "disabled"], outputs: ["changeEvent", "saveEvent", "validEvent"] }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["spaceAdjustment", "fitPageDisabled", "disableOverflow", "bottomMargin"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1155
1155
  }
1156
1156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDocumentComponent, decorators: [{
1157
1157
  type: Component,
@@ -1163,7 +1163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
1163
1163
  SchemaEditorComponent,
1164
1164
  FitPageDirective,
1165
1165
  TranslatePipe,
1166
- ], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentDefinition: documentDefinition$ | async,\n isFinal: isFinal$ | async,\n } as obs\"\n>\n @if (!obs.loading) {\n <valtimo-schema-editor\n [fitPage]=\"true\"\n [spaceAdjustment]=\"64\"\n [disableOverflow]=\"true\"\n [schemaJson]=\"obs.documentDefinition\"\n [disabled]=\"obs.isFinal\"\n (changeEvent)=\"onChangeEvent($event)\"\n (saveEvent)=\"onSaveEvent()\"\n >\n <button\n cdsButton=\"ghost\"\n [disabled]=\"obs.loading || !obs.documentDefinition\"\n (click)=\"downloadDefinition()\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </valtimo-schema-editor>\n } @else {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n</ng-container>\n\n<a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\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"] }]
1166
+ ], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentDefinition: documentDefinition$ | async,\n isFinal: isFinal$ | async,\n } as obs\"\n>\n @if (!obs.loading) {\n <valtimo-schema-editor\n [fitPage]=\"true\"\n [disableOverflow]=\"true\"\n [schemaJson]=\"obs.documentDefinition\"\n [disabled]=\"obs.isFinal\"\n (changeEvent)=\"onChangeEvent($event)\"\n (saveEvent)=\"onSaveEvent()\"\n >\n <button\n cdsButton=\"ghost\"\n [disabled]=\"obs.loading || !obs.documentDefinition\"\n (click)=\"downloadDefinition()\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </valtimo-schema-editor>\n } @else {\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n }\n</ng-container>\n\n<a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\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"] }]
1167
1167
  }], ctorParameters: () => [{ type: BuildingBlockManagementDetailService }, { type: BuildingBlockManagementApiService }, { type: i3$1.IconService }] });
1168
1168
 
1169
1169
  /*
@@ -1342,18 +1342,27 @@ class BuildingBlockManagementProcessesComponent {
1342
1342
  this.buildingBlockProcessDefinitionItems$ = combineLatest([
1343
1343
  this._buildingBlockProcessDefinitions$,
1344
1344
  this.translateService.stream('key'),
1345
- ]).pipe(map(([processDefinitions]) => processDefinitions.map(definition => ({
1346
- ...definition,
1347
- mainText: definition.main &&
1348
- this.translateService.instant('buildingBlockManagement.processDefinition.mainText'),
1349
- }))), tap(buildingBlockProcessDefinitionItems => (this._buildingBlockProcessDefinitionItems = buildingBlockProcessDefinitionItems)));
1345
+ ]).pipe(map(([processDefinitions]) => processDefinitions.map(definition => {
1346
+ const statusTags = [];
1347
+ if (definition.main) {
1348
+ statusTags.push({ content: this.translateService.instant('buildingBlockManagement.processDefinition.mainText'), type: 'blue' });
1349
+ }
1350
+ if (definition.draft) {
1351
+ statusTags.push({ content: this.translateService.instant('processManagement.draft'), type: 'red' });
1352
+ }
1353
+ return {
1354
+ ...definition,
1355
+ statusTags,
1356
+ };
1357
+ })), tap(buildingBlockProcessDefinitionItems => (this._buildingBlockProcessDefinitionItems = buildingBlockProcessDefinitionItems)));
1350
1358
  this.FIELDS = [
1351
1359
  { key: 'name', label: 'buildingBlockManagement.processDefinition.name' },
1352
1360
  { key: 'key', label: 'buildingBlockManagement.processDefinition.key' },
1353
1361
  {
1354
- key: 'mainText',
1355
- label: '',
1362
+ key: 'statusTags',
1363
+ label: 'processManagement.status',
1356
1364
  viewType: ViewType.TAGS,
1365
+ tagAmount: 3,
1357
1366
  },
1358
1367
  ];
1359
1368
  this.onDeleteClick = (process) => {
@@ -2070,10 +2079,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2070
2079
  * limitations under the License.
2071
2080
  */
2072
2081
  class BuildingBlockManagementDecisionsComponent {
2073
- constructor(buildingBlockManagementDetailService, buildingBlockManagementApiService, decisionStateService, translateService, iconService, router, notificationService) {
2082
+ constructor(buildingBlockManagementDetailService, buildingBlockManagementApiService, decisionStateService, decisionService, translateService, iconService, router, notificationService) {
2074
2083
  this.buildingBlockManagementDetailService = buildingBlockManagementDetailService;
2075
2084
  this.buildingBlockManagementApiService = buildingBlockManagementApiService;
2076
2085
  this.decisionStateService = decisionStateService;
2086
+ this.decisionService = decisionService;
2077
2087
  this.translateService = translateService;
2078
2088
  this.iconService = iconService;
2079
2089
  this.router = router;
@@ -2090,6 +2100,12 @@ class BuildingBlockManagementDecisionsComponent {
2090
2100
  this.showDeleteModal$.next(true);
2091
2101
  };
2092
2102
  this.ACTION_ITEMS = [
2103
+ {
2104
+ label: 'interface.edit',
2105
+ callback: this.openEditModal.bind(this),
2106
+ type: 'normal',
2107
+ disabledCallback: this.deleteDisabled.bind(this),
2108
+ },
2093
2109
  {
2094
2110
  label: 'interface.delete',
2095
2111
  callback: this.onDeleteClick,
@@ -2100,8 +2116,10 @@ class BuildingBlockManagementDecisionsComponent {
2100
2116
  this.isFinal$ = this.buildingBlockManagementDetailService.isFinal$;
2101
2117
  this.showDeleteModal$ = new BehaviorSubject(false);
2102
2118
  this._subscriptions = new Subscription();
2119
+ this._decisionToEdit = null;
2120
+ this._editXml = null;
2103
2121
  this._isFinal = false;
2104
- this.iconService.registerAll([Upload16]);
2122
+ this.iconService.registerAll([Upload16, Add16]);
2105
2123
  }
2106
2124
  ngOnInit() {
2107
2125
  this._subscriptions.add(combineLatest([
@@ -2129,6 +2147,50 @@ class BuildingBlockManagementDecisionsComponent {
2129
2147
  decision.id,
2130
2148
  ]);
2131
2149
  }
2150
+ onCreateDecision(value) {
2151
+ this.router.navigate([
2152
+ '/building-block-management',
2153
+ 'building-block',
2154
+ this.buildingBlockManagementDetailService.buildingBlockDefinitionKey,
2155
+ 'version',
2156
+ this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag,
2157
+ BUILDING_BLOCK_MANAGEMENT_TABS.DECISIONS,
2158
+ 'create',
2159
+ ], { state: { decisionName: value.name, inputVariables: value.inputVariables } });
2160
+ }
2161
+ openEditModal(decision) {
2162
+ this.decisionService.getDecisionXml(decision.id).subscribe(xml => {
2163
+ this._decisionToEdit = decision;
2164
+ this._editXml = xml.dmnXml;
2165
+ this.edit.open(parseDecisionForm(xml.dmnXml));
2166
+ });
2167
+ }
2168
+ onEditDecision(value) {
2169
+ if (!this._editXml || !this._decisionToEdit)
2170
+ return;
2171
+ this.$loading.set(true);
2172
+ const patchedXml = updateDmnXml(this._editXml, value);
2173
+ const fileName = this._decisionToEdit.resource || toDecisionFileName(this._decisionToEdit.key);
2174
+ const file = new File([patchedXml], fileName, { type: 'text/xml' });
2175
+ this.decisionService
2176
+ .deployBuildingBlockDecisionDefinition(this.buildingBlockManagementDetailService.buildingBlockDefinitionKey, this.buildingBlockManagementDetailService.buildingBlockDefinitionVersionTag, file)
2177
+ .subscribe({
2178
+ next: () => {
2179
+ this.notificationService.showToast({
2180
+ type: 'success',
2181
+ title: this.translateService.instant('decisions.deploySuccess'),
2182
+ });
2183
+ this.decisionStateService.refreshDecisions();
2184
+ },
2185
+ error: () => {
2186
+ this.notificationService.showToast({
2187
+ type: 'error',
2188
+ title: this.translateService.instant('decisions.deployFailure'),
2189
+ });
2190
+ this.$loading.set(false);
2191
+ },
2192
+ });
2193
+ }
2132
2194
  onDeploySuccessful() {
2133
2195
  this.decisionStateService.refreshDecisions();
2134
2196
  }
@@ -2158,8 +2220,8 @@ class BuildingBlockManagementDecisionsComponent {
2158
2220
  deleteDisabled() {
2159
2221
  return this._isFinal;
2160
2222
  }
2161
- 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 }); }
2162
- 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"] }] }); }
2223
+ 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$4.DecisionService }, { token: i2$2.TranslateService }, { token: i3$1.IconService }, { token: i3.Router }, { token: i5.GlobalNotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
2224
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: BuildingBlockManagementDecisionsComponent, isStandalone: true, selector: "valtimo-building-block-management-decisions", viewQueries: [{ propertyName: "edit", first: true, predicate: ["decisionEdit"], descendants: true }], 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\n <button\n cdsButton=\"primary\"\n (click)=\"create.openModal()\"\n [disabled]=\"(isFinal$ | async) || $loading()\"\n >\n {{ 'decisions.create' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" 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-decision-form-modal\n #create\n (submitEvent)=\"onCreateDecision($event)\"\n></valtimo-decision-form-modal>\n\n<valtimo-decision-form-modal\n #decisionEdit\n titleKey=\"decisions.editModal.title\"\n submitKey=\"interface.save\"\n (submitEvent)=\"onEditDecision($event)\"\n></valtimo-decision-form-modal>\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: "pipe", type: i2$2.TranslatePipe, name: "translate" }, { 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"] }, { kind: "component", type: DecisionFormModalComponent, selector: "valtimo-decision-form-modal", inputs: ["titleKey", "submitKey"], outputs: ["submitEvent"] }] }); }
2163
2225
  }
2164
2226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BuildingBlockManagementDecisionsComponent, decorators: [{
2165
2227
  type: Component,
@@ -2171,8 +2233,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2171
2233
  IconModule,
2172
2234
  ConfirmationModalModule,
2173
2235
  DecisionDeployComponent,
2174
- ], 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" }]
2175
- }], ctorParameters: () => [{ type: BuildingBlockManagementDetailService }, { type: BuildingBlockManagementApiService }, { type: i2$4.DecisionStateService }, { type: i2$2.TranslateService }, { type: i3$1.IconService }, { type: i3.Router }, { type: i5.GlobalNotificationService }] });
2236
+ DecisionFormModalComponent,
2237
+ ], 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\n <button\n cdsButton=\"primary\"\n (click)=\"create.openModal()\"\n [disabled]=\"(isFinal$ | async) || $loading()\"\n >\n {{ 'decisions.create' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" 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-decision-form-modal\n #create\n (submitEvent)=\"onCreateDecision($event)\"\n></valtimo-decision-form-modal>\n\n<valtimo-decision-form-modal\n #decisionEdit\n titleKey=\"decisions.editModal.title\"\n submitKey=\"interface.save\"\n (submitEvent)=\"onEditDecision($event)\"\n></valtimo-decision-form-modal>\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" }]
2238
+ }], ctorParameters: () => [{ type: BuildingBlockManagementDetailService }, { type: BuildingBlockManagementApiService }, { type: i2$4.DecisionStateService }, { type: i2$4.DecisionService }, { type: i2$2.TranslateService }, { type: i3$1.IconService }, { type: i3.Router }, { type: i5.GlobalNotificationService }], propDecorators: { edit: [{
2239
+ type: ViewChild,
2240
+ args: ['decisionEdit']
2241
+ }] } });
2176
2242
 
2177
2243
  /*
2178
2244
  * Copyright 2015-2026 Ritense BV, the Netherlands.