@valtimo/decision 13.0.1 → 13.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ import * as i6 from '@valtimo/shared';
9
9
  import { BaseApiService, InterceptorSkip, getCaseManagementRouteParams, getContextObservable, ROLE_ADMIN } from '@valtimo/shared';
10
10
  import DmnJS from 'dmn-js/dist/dmn-modeler.development.js';
11
11
  import { migrateDiagram } from '@bpmn-io/dmn-migrate';
12
- import { BehaviorSubject, combineLatest, switchMap, map, tap, filter, take, from, of, catchError, Subject, startWith } from 'rxjs';
12
+ import { BehaviorSubject, map, combineLatest, switchMap, tap, filter, take, from, of, catchError, Subject, startWith } from 'rxjs';
13
13
  import * as i4 from '@valtimo/components';
14
14
  import { PendingChangesComponent, WidgetModule, SelectModule as SelectModule$1, RenderInPageHeaderDirective, FitPageDirective, CarbonListModule, ModalModule as ModalModule$1, SpinnerModule } from '@valtimo/components';
15
15
  import * as i3 from '@ngx-translate/core';
@@ -195,9 +195,9 @@ class DecisionModelerComponent extends PendingChangesComponent {
195
195
  this.versionSelectionDisabled$ = new BehaviorSubject(true);
196
196
  this.isCreating$ = new BehaviorSubject(false);
197
197
  this.selectionId$ = new BehaviorSubject('');
198
- this.createdDecisionVersionSelectItems$ = new BehaviorSubject([]);
199
198
  this.caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);
200
199
  this.context$ = getContextObservable(this.route);
200
+ this.isIndependent$ = this.context$.pipe(map(context => context === 'independent'));
201
201
  this.compactMode$ = this.pageHeaderService.compactMode$;
202
202
  this.hasEditPermissions$ = combineLatest([
203
203
  this.caseManagementRouteParams$,
@@ -213,17 +213,20 @@ class DecisionModelerComponent extends PendingChangesComponent {
213
213
  this.selectionId$.next(decision.id);
214
214
  }));
215
215
  this.decisionTitle$ = this.decision$.pipe(map(d => d?.name || d?.key || '-'), tap(title => this.pageTitleService.setCustomPageTitle(title)));
216
- this.decisionVersionSelectItems$ = combineLatest([
217
- this.decision$,
218
- this.decisionService.getDecisions(),
219
- this.createdDecisionVersionSelectItems$,
220
- ]).pipe(map(([current, list, created]) => {
216
+ this._refreshDecisionSelectItems$ = new BehaviorSubject(null);
217
+ this.decisionVersionSelectItems$ = this._refreshDecisionSelectItems$.pipe(switchMap(() => combineLatest([this.decision$, this.decisionService.getDecisions()])), map(([current, list]) => {
221
218
  const filtered = list.filter(d => d.key === current.key);
222
- return [...filtered.map(d => ({ id: d.id, text: d.version.toString() })), ...created].sort((a, b) => +(b.text ?? '') - +(a.text ?? ''));
219
+ return [...filtered.map(d => ({ id: d.id, text: d.version.toString() }))].sort((a, b) => +(b.text ?? '') - +(a.text ?? ''));
223
220
  }), tap(() => this.versionSelectionDisabled$.next(false)));
224
221
  this.decisionXml$ = this.decisionId$.pipe(switchMap(id => this.decisionService.getDecisionXml(id)), tap(xml => xml && this.loadDecisionXml(xml)));
225
222
  this.iconService.registerAll([Deploy16, Download16, ArrowLeft16]);
226
223
  }
224
+ ngOnInit() {
225
+ this.pageTitleService.disableReset();
226
+ }
227
+ ngOnDestroy() {
228
+ this.pageTitleService.enableReset();
229
+ }
227
230
  ngAfterViewInit() {
228
231
  this.setProperties();
229
232
  this.setTabEvents();
@@ -240,6 +243,7 @@ class DecisionModelerComponent extends PendingChangesComponent {
240
243
  if (!decisionId)
241
244
  return;
242
245
  this.router.navigate(['../', decisionId], { relativeTo: this.route });
246
+ this._refreshDecisionSelectItems$.next(null);
243
247
  }
244
248
  deploy() {
245
249
  from(this.dmnModeler.saveXML({ format: true }))
@@ -298,8 +302,8 @@ class DecisionModelerComponent extends PendingChangesComponent {
298
302
  this.loadDecisionXml(EMPTY_DECISION);
299
303
  }
300
304
  setTabEvents() {
301
- this.$tabs.delegate('.tab', 'click', async function () {
302
- const index = +this.getAttribute('data-id');
305
+ this.$tabs.delegate('.tab', 'click', async (event) => {
306
+ const index = +event.currentTarget.getAttribute('data-id');
303
307
  const view = this.dmnModeler.getViews()[index];
304
308
  try {
305
309
  await this.dmnModeler.open(view);
@@ -307,7 +311,7 @@ class DecisionModelerComponent extends PendingChangesComponent {
307
311
  catch (err) {
308
312
  console.error('tab open error', err);
309
313
  }
310
- }.bind(this));
314
+ });
311
315
  }
312
316
  setModelerEvents() {
313
317
  this.dmnModeler.on('views.changed', event => {
@@ -360,7 +364,7 @@ class DecisionModelerComponent extends PendingChangesComponent {
360
364
  });
361
365
  }
362
366
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DecisionModelerComponent, deps: [{ token: DecisionService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.TranslateService }, { token: i4.PageTitleService }, { token: i4.BreadcrumbService }, { token: i6$1.IconService }, { token: i4.PageHeaderService }, { token: i6.GlobalNotificationService }, { token: i6.EditPermissionsService }], target: i0.ɵɵFactoryTarget.Component }); }
363
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DecisionModelerComponent, isStandalone: true, selector: "valtimo-decision-modeler", usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n decisionXml: decisionXml$ | async,\n decisionTitle: decisionTitle$ | async,\n } as obs\"\n fitPage\n class=\"dmn-editor\"\n>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n</div>\n\n<ng-template #versionSelection>\n <v-select\n *ngIf=\"(isCreating$ | async) === false\"\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"versionSelectionDisabled$ | async\"\n [clearable]=\"false\"\n [loading]=\"(decisionVersionSelectItems$ | async) === null\"\n [items]=\"decisionVersionSelectItems$ | async\"\n [defaultSelectionId]=\"selectionId$ | async\"\n [widthInPx]=\"120\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n</ng-template>\n\n<ng-template #diagram>\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n selectionId: selectionId$ | async,\n isCreating: isCreating$ | async,\n context: context$ | async,\n compactMode: compactMode$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n class=\"header\"\n >\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n\n <div>\n <button\n *ngIf=\"obs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n @if (obs.selectionId && !obs.isCreating) {\n <button\n *ngIf=\"obs.hasEditPermissions\"\n cdsButton=\"primary\"\n (click)=\"deploy()\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'decisions.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option (selected)=\"download()\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n } @else {\n <button class=\"btn btn-success btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: ["#save-button{position:absolute;bottom:10px;left:10px;background:#fff;border:solid 1px #ccc;border-radius:2px;padding:8px;font-family:Arial,sans-serif;font-weight:700;cursor:default;font-size:14px;color:#444}.dmn-modeler{display:flex;flex-direction:column;width:100%;padding:1rem}.diagram,.diagram-header{border:1px solid #dee2e6}.decision-title{color:#6b6b6b;font-size:1.5rem;margin:0}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.dmn-editor{background-color:var(--cds-layer);outline:1px solid var(--cds-border-subtle);outline-offset:-1px;padding:16px}.header{display:flex;width:100%;justify-content:flex-end;align-items:flex-end;gap:16px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: SelectModule }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: SelectModule$1 }, { kind: "component", type: i4.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["extraSpace", "disabled", "disableOverflow"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6$1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "description", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i6$1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }] }); }
367
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DecisionModelerComponent, isStandalone: true, selector: "valtimo-decision-modeler", usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n decisionXml: decisionXml$ | async,\n decisionTitle: decisionTitle$ | async,\n } as obs\"\n fitPage\n [disableOverflow]=\"true\"\n class=\"dmn-editor\"\n>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n</div>\n\n<ng-template #diagram>\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n selectionId: selectionId$ | async,\n isCreating: isCreating$ | async,\n context: context$ | async,\n compactMode: compactMode$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n class=\"decision-modeler-actions\"\n >\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n\n <button\n *ngIf=\"obs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n @if (obs.selectionId && !obs.isCreating) {\n <button\n *ngIf=\"obs.hasEditPermissions\"\n cdsButton=\"primary\"\n (click)=\"deploy()\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'decisions.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option (selected)=\"download()\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n } @else {\n <button class=\"btn btn-success btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n }\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #versionSelection>\n <ng-container\n *ngIf=\"{\n selectItems: (decisionVersionSelectItems$ | async) || [],\n isIndependent: isIndependent$ | async,\n versionSelectionDisabled: versionSelectionDisabled$ | async,\n selectionId: selectionId$ | async,\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.isIndependent\"\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"obs.versionSelectionDisabled\"\n [clearable]=\"false\"\n [loading]=\"obs.selectItems.length === 0\"\n [items]=\"obs.selectItems\"\n [defaultSelectionId]=\"obs.selectionId\"\n [widthInPx]=\"120\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n </ng-container>\n</ng-template>\n", styles: ["#save-button{position:absolute;bottom:10px;left:10px;background:#fff;border:solid 1px #ccc;border-radius:2px;padding:8px;font-family:Arial,sans-serif;font-weight:700;cursor:default;font-size:14px;color:#444}.dmn-modeler{display:flex;flex-direction:column;width:100%;padding:1rem}.diagram,.diagram-header{border:1px solid #dee2e6}.decision-title{color:#6b6b6b;font-size:1.5rem;margin:0}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.dmn-editor{background-color:var(--cds-layer);outline:1px solid var(--cds-border-subtle);outline-offset:-1px;padding:16px}.decision-modeler-actions{display:flex;width:100%;justify-content:flex-end;align-items:flex-end;gap:16px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: SelectModule }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: SelectModule$1 }, { kind: "component", type: i4.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "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: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["extraSpace", "disabled", "disableOverflow"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6$1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "description", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i6$1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }] }); }
364
368
  }
365
369
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DecisionModelerComponent, decorators: [{
366
370
  type: Component,
@@ -377,7 +381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
377
381
  IconModule,
378
382
  FitPageDirective,
379
383
  DialogModule,
380
- ], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n decisionXml: decisionXml$ | async,\n decisionTitle: decisionTitle$ | async,\n } as obs\"\n fitPage\n class=\"dmn-editor\"\n>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n</div>\n\n<ng-template #versionSelection>\n <v-select\n *ngIf=\"(isCreating$ | async) === false\"\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"versionSelectionDisabled$ | async\"\n [clearable]=\"false\"\n [loading]=\"(decisionVersionSelectItems$ | async) === null\"\n [items]=\"decisionVersionSelectItems$ | async\"\n [defaultSelectionId]=\"selectionId$ | async\"\n [widthInPx]=\"120\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n</ng-template>\n\n<ng-template #diagram>\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n selectionId: selectionId$ | async,\n isCreating: isCreating$ | async,\n context: context$ | async,\n compactMode: compactMode$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n class=\"header\"\n >\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n\n <div>\n <button\n *ngIf=\"obs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n @if (obs.selectionId && !obs.isCreating) {\n <button\n *ngIf=\"obs.hasEditPermissions\"\n cdsButton=\"primary\"\n (click)=\"deploy()\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'decisions.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option (selected)=\"download()\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n } @else {\n <button class=\"btn btn-success btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: ["#save-button{position:absolute;bottom:10px;left:10px;background:#fff;border:solid 1px #ccc;border-radius:2px;padding:8px;font-family:Arial,sans-serif;font-weight:700;cursor:default;font-size:14px;color:#444}.dmn-modeler{display:flex;flex-direction:column;width:100%;padding:1rem}.diagram,.diagram-header{border:1px solid #dee2e6}.decision-title{color:#6b6b6b;font-size:1.5rem;margin:0}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.dmn-editor{background-color:var(--cds-layer);outline:1px solid var(--cds-border-subtle);outline-offset:-1px;padding:16px}.header{display:flex;width:100%;justify-content:flex-end;align-items:flex-end;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"] }]
384
+ ], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n decisionXml: decisionXml$ | async,\n decisionTitle: decisionTitle$ | async,\n } as obs\"\n fitPage\n [disableOverflow]=\"true\"\n class=\"dmn-editor\"\n>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n</div>\n\n<ng-template #diagram>\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n selectionId: selectionId$ | async,\n isCreating: isCreating$ | async,\n context: context$ | async,\n compactMode: compactMode$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n class=\"decision-modeler-actions\"\n >\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n\n <button\n *ngIf=\"obs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n @if (obs.selectionId && !obs.isCreating) {\n <button\n *ngIf=\"obs.hasEditPermissions\"\n cdsButton=\"primary\"\n (click)=\"deploy()\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'decisions.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option (selected)=\"download()\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n } @else {\n <button class=\"btn btn-success btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n }\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #versionSelection>\n <ng-container\n *ngIf=\"{\n selectItems: (decisionVersionSelectItems$ | async) || [],\n isIndependent: isIndependent$ | async,\n versionSelectionDisabled: versionSelectionDisabled$ | async,\n selectionId: selectionId$ | async,\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.isIndependent\"\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"obs.versionSelectionDisabled\"\n [clearable]=\"false\"\n [loading]=\"obs.selectItems.length === 0\"\n [items]=\"obs.selectItems\"\n [defaultSelectionId]=\"obs.selectionId\"\n [widthInPx]=\"120\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n </ng-container>\n</ng-template>\n", styles: ["#save-button{position:absolute;bottom:10px;left:10px;background:#fff;border:solid 1px #ccc;border-radius:2px;padding:8px;font-family:Arial,sans-serif;font-weight:700;cursor:default;font-size:14px;color:#444}.dmn-modeler{display:flex;flex-direction:column;width:100%;padding:1rem}.diagram,.diagram-header{border:1px solid #dee2e6}.decision-title{color:#6b6b6b;font-size:1.5rem;margin:0}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.dmn-editor{background-color:var(--cds-layer);outline:1px solid var(--cds-border-subtle);outline-offset:-1px;padding:16px}.decision-modeler-actions{display:flex;width:100%;justify-content:flex-end;align-items:flex-end;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"] }]
381
385
  }], ctorParameters: () => [{ type: DecisionService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.TranslateService }, { type: i4.PageTitleService }, { type: i4.BreadcrumbService }, { type: i6$1.IconService }, { type: i4.PageHeaderService }, { type: i6.GlobalNotificationService }, { type: i6.EditPermissionsService }] });
382
386
 
383
387
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-decision.mjs","sources":["../../../../projects/valtimo/decision/src/lib/models/decision.model.ts","../../../../projects/valtimo/decision/src/lib/models/decision-management.model.ts","../../../../projects/valtimo/decision/src/lib/models/index.ts","../../../../projects/valtimo/decision/src/lib/decision-modeler/empty-decision.ts","../../../../projects/valtimo/decision/src/lib/services/decision.service.ts","../../../../projects/valtimo/decision/src/lib/decision-modeler/decision-modeler.component.ts","../../../../projects/valtimo/decision/src/lib/decision-modeler/decision-modeler.component.html","../../../../projects/valtimo/decision/src/lib/decision-display/decision-display.component.ts","../../../../projects/valtimo/decision/src/lib/decision-display/decision-display.component.html","../../../../projects/valtimo/decision/src/lib/services/decision-state.service.ts","../../../../projects/valtimo/decision/src/lib/services/index.ts","../../../../projects/valtimo/decision/src/lib/decision-deploy/decision-deploy.component.ts","../../../../projects/valtimo/decision/src/lib/decision-deploy/decision-deploy.component.html","../../../../projects/valtimo/decision/src/lib/decision-list/decision-list.component.ts","../../../../projects/valtimo/decision/src/lib/decision-list/decision-list.component.html","../../../../projects/valtimo/decision/src/lib/decision-routing.module.ts","../../../../projects/valtimo/decision/src/lib/decision.module.ts","../../../../projects/valtimo/decision/src/public-api.ts","../../../../projects/valtimo/decision/src/valtimo-decision.ts"],"sourcesContent":["/*\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\nexport interface Decision {\n category: string;\n decisionRequirementsDefinitionId: string;\n decisionRequirementsDefinitionKey: string;\n deploymentId: string;\n historyTimeToLive: number;\n id: string;\n key: string;\n name: string;\n resource: string;\n tenantId: string;\n version: number;\n versionTag: string;\n}\n\nexport interface DecisionXml {\n id: string;\n dmnXml: string;\n}\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\nimport {ManagementContext} from '@valtimo/shared';\n\ninterface DecisionManagementRouteData {\n context: ManagementContext;\n}\nexport {DecisionManagementRouteData};\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\nexport * from './decision.model';\nexport * from './decision-management.model';\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\nimport {DecisionXml} from '../models';\n\nconst EMPTY_DECISION: DecisionXml = {\n id: '',\n dmnXml: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" xmlns:dmndi=\"https://www.omg.org/spec/DMN/20191111/DMNDI/\" xmlns:dc=\"http://www.omg.org/spec/DMN/20180521/DC/\" id=\"Definitions_1h198v9\" name=\"DRD\" namespace=\"http://camunda.org/schema/1.0/dmn\" xmlns:modeler=\"http://camunda.org/schema/modeler/1.0\" exporter=\"Camunda Modeler\" exporterVersion=\"5.2.0\" modeler:executionPlatform=\"Camunda Cloud\" modeler:executionPlatformVersion=\"8.0.0\">\n <decision id=\"Decision_1e18q76\" name=\"Decision 1\">\n <decisionTable id=\"DecisionTable_1apu23m\">\n <input id=\"Input_1\">\n <inputExpression id=\"InputExpression_1\" typeRef=\"string\">\n <text></text>\n </inputExpression>\n </input>\n <output id=\"Output_1\" typeRef=\"string\" />\n </decisionTable>\n </decision>\n <dmndi:DMNDI>\n <dmndi:DMNDiagram>\n <dmndi:DMNShape dmnElementRef=\"Decision_1e18q76\">\n <dc:Bounds height=\"80\" width=\"180\" x=\"160\" y=\"100\" />\n </dmndi:DMNShape>\n </dmndi:DMNDiagram>\n </dmndi:DMNDI>\n</definitions>\n`,\n};\n\nexport {EMPTY_DECISION};\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {BaseApiService, ConfigService, InterceptorSkip} from '@valtimo/shared';\nimport {Decision, DecisionXml} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DecisionService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public deployDmn(dmn: File): Observable<{identifier: string}> {\n const formData: FormData = new FormData();\n formData.append('file', dmn);\n formData.append('deployment-name', 'dmnTableDeploy');\n formData.append('deployment-source', 'process application');\n\n return this.httpClient.post<{identifier: string}>(\n this.getApiUrl('/v1/process/definition/deployment'),\n formData\n );\n }\n\n public getDecisions(): Observable<Decision[]> {\n return this.httpClient.get<Decision[]>(\n this.getApiUrl('/operaton-rest/engine/default/decision-definition')\n );\n }\n\n public getDecisionById(decisionId: string): Observable<Decision> {\n return this.httpClient.get<Decision>(\n this.getApiUrl(`/operaton-rest/engine/default/decision-definition/${decisionId}`)\n );\n }\n\n public getLatestDecisionByKey(decisionKey: string): Observable<Decision> {\n return this.httpClient.get<Decision>(\n this.getApiUrl(`/operaton-rest/engine/default/decision-definition/key/${decisionKey}`)\n );\n }\n\n public getDecisionXml(decisionId: string): Observable<DecisionXml> {\n return this.httpClient.get<DecisionXml>(\n this.getApiUrl(`/operaton-rest/engine/default/decision-definition/${decisionId}/xml`)\n );\n }\n\n public listCaseDecisionDefinitions(\n caseDefinitionKey: string,\n versionTag: string\n ): Observable<Decision[]> {\n return this.httpClient.get<Decision[]>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${versionTag}/decision-definition`\n )\n );\n }\n\n public deployCaseDecisionDefinition(\n caseDefinitionKey: string,\n versionTag: string,\n dmn: File\n ): Observable<{identifier: string}> {\n const formData = new FormData();\n formData.append('file', dmn);\n\n return this.httpClient.post<{identifier: string}>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${versionTag}/decision-definition`\n ),\n formData,\n {\n headers: new HttpHeaders().set(InterceptorSkip, '204'),\n }\n );\n }\n\n public deleteCaseDecisionDefinition(\n caseDefinitionKey: string,\n versionTag: string,\n decisionDefinitionKey: string\n ): Observable<any> {\n return this.httpClient.delete<any>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${versionTag}/decision-definition/${decisionDefinitionKey}`\n )\n );\n }\n}\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\nimport {DecisionService} from '../services/decision.service';\nimport {AfterViewInit, Component} from '@angular/core';\nimport DmnJS from 'dmn-js/dist/dmn-modeler.development.js';\nimport {ActivatedRoute, Router, RouterModule} from '@angular/router';\nimport {DecisionXml} from '../models';\nimport {migrateDiagram} from '@bpmn-io/dmn-migrate';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n BreadcrumbService,\n FitPageDirective,\n PageHeaderService,\n PageTitleService,\n PendingChangesComponent,\n RenderInPageHeaderDirective,\n SelectedValue,\n SelectItem,\n WidgetModule,\n SelectModule as ValtimoSelectModule,\n} from '@valtimo/components';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {EMPTY_DECISION} from './empty-decision';\nimport {CommonModule} from '@angular/common';\nimport {\n ButtonModule,\n DialogModule,\n IconModule,\n IconService,\n ModalModule,\n SelectModule,\n} from 'carbon-components-angular';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n getContextObservable,\n GlobalNotificationService,\n ManagementContext,\n} from '@valtimo/shared';\nimport {ArrowLeft16, Deploy16, Download16} from '@carbon/icons';\n\ndeclare const $: any;\n\n@Component({\n selector: 'valtimo-decision-modeler',\n standalone: true,\n templateUrl: './decision-modeler.component.html',\n styleUrls: ['./decision-modeler.component.scss'],\n imports: [\n CommonModule,\n RouterModule,\n ModalModule,\n SelectModule,\n WidgetModule,\n ValtimoSelectModule,\n TranslateModule,\n RenderInPageHeaderDirective,\n ButtonModule,\n IconModule,\n FitPageDirective,\n DialogModule,\n ],\n})\nexport class DecisionModelerComponent extends PendingChangesComponent implements AfterViewInit {\n private CLASS_NAMES = {\n drd: 'dmn-icon-lasso-tool',\n decisionTable: 'dmn-icon-decision-table',\n literalExpression: 'dmn-icon-literal-expression',\n };\n\n private $container!: any;\n private $tabs!: any;\n private dmnModeler!: DmnJS;\n\n public readonly versionSelectionDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly isCreating$ = new BehaviorSubject<boolean>(false);\n public readonly selectionId$ = new BehaviorSubject<string>('');\n public readonly createdDecisionVersionSelectItems$ = new BehaviorSubject<Array<SelectItem>>([]);\n\n private _fileName!: string;\n\n public readonly caseManagementRouteParams$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n public readonly context$: Observable<ManagementContext | null> = getContextObservable(this.route);\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.caseManagementRouteParams$,\n this.context$,\n ]).pipe(\n switchMap(([params, context]) =>\n this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n context ?? ''\n )\n )\n );\n\n private readonly decisionId$ = this.route.params.pipe(\n map(params => params?.id),\n tap(id => {\n this.isCreating$.next(id === 'create');\n this.versionSelectionDisabled$.next(true);\n }),\n filter(id => !!id && id !== 'create')\n );\n\n public readonly decision$ = this.decisionId$.pipe(\n switchMap(id => this.decisionService.getDecisionById(id)),\n tap(decision => {\n this._fileName = decision.resource;\n if (decision) this.selectionId$.next(decision.id);\n })\n );\n\n public readonly decisionTitle$ = this.decision$.pipe(\n map(d => d?.name || d?.key || '-'),\n tap(title => this.pageTitleService.setCustomPageTitle(title))\n );\n\n public readonly decisionVersionSelectItems$ = combineLatest([\n this.decision$,\n this.decisionService.getDecisions(),\n this.createdDecisionVersionSelectItems$,\n ]).pipe(\n map(([current, list, created]) => {\n const filtered = list.filter(d => d.key === current.key);\n return [...filtered.map(d => ({id: d.id, text: d.version.toString()})), ...created].sort(\n (a, b) => +(b.text ?? '') - +(a.text ?? '')\n );\n }),\n tap(() => this.versionSelectionDisabled$.next(false))\n );\n\n public readonly decisionXml$ = this.decisionId$.pipe(\n switchMap(id => this.decisionService.getDecisionXml(id)),\n tap(xml => xml && this.loadDecisionXml(xml))\n );\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly pageTitleService: PageTitleService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly iconService: IconService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly notificationService: GlobalNotificationService,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n super();\n this.iconService.registerAll([Deploy16, Download16, ArrowLeft16]);\n }\n\n public ngAfterViewInit(): void {\n this.setProperties();\n this.setTabEvents();\n this.setModelerEvents();\n\n combineLatest([this.caseManagementRouteParams$, this.context$])\n .pipe(take(1))\n .subscribe(([params, context]) => {\n if (!params || !context) return;\n\n this.initBreadcrumbs(params, context);\n });\n }\n\n public switchVersion(decisionId: string | SelectedValue): void {\n if (!decisionId) return;\n\n this.router.navigate(['../', decisionId], {relativeTo: this.route});\n }\n\n public deploy(): void {\n from(this.dmnModeler.saveXML({format: true}))\n .pipe(\n map(result => new File([(result as any).xml], this._fileName, {type: 'text/xml'})),\n switchMap(file => combineLatest([of(file), this.context$])),\n switchMap(([file, context]) =>\n context === 'independent'\n ? this.decisionService.deployDmn(file)\n : this.caseManagementRouteParams$.pipe(\n switchMap(params =>\n this.decisionService.deployCaseDecisionDefinition(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n file\n )\n )\n )\n ),\n tap((res: {identifier: string}) => {\n this.switchVersion(res.identifier);\n this.showNotification('success', 'decisions.deploySuccess');\n }),\n catchError(() => {\n this.showNotification('error', 'decisions.deployFailure');\n\n return of(null);\n })\n )\n .subscribe();\n }\n\n public download(): void {\n from(this.dmnModeler.saveXML({format: true}))\n .pipe(\n map(result => new File([(result as any).xml], 'decision.dmn', {type: 'text/xml'})),\n tap(file => {\n const link = document.createElement('a');\n link.download = 'diagram.dmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n })\n )\n .subscribe();\n }\n\n public navigateBack(notification: null | 'success' | 'error', message: string): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n\n if (!notification) return;\n\n this.showNotification(notification, message);\n }\n\n private showNotification(notification: null | 'success' | 'error', message: string): void {\n if (!notification) return;\n\n this.notificationService.showToast({\n caption: this.translateService.instant(message),\n type: notification,\n title: this.translateService.instant(`interface.${notification}`),\n });\n }\n\n private setProperties(): void {\n const isCreating = this.isCreating$.getValue();\n this.$container = $('.editor-container');\n this.$tabs = $('.editor-tabs');\n this.dmnModeler = new DmnJS({\n container: this.$container,\n height: 500,\n width: '100%',\n keyboard: {bindTo: window},\n });\n if (isCreating) this.loadEmptyDecisionTable();\n }\n\n private loadEmptyDecisionTable(): void {\n this.loadDecisionXml(EMPTY_DECISION);\n }\n\n private setTabEvents(): void {\n this.$tabs.delegate(\n '.tab',\n 'click',\n async function () {\n const index = +this.getAttribute('data-id');\n const view = this.dmnModeler.getViews()[index];\n try {\n await this.dmnModeler.open(view);\n } catch (err) {\n console.error('tab open error', err);\n }\n }.bind(this)\n );\n }\n\n private setModelerEvents(): void {\n this.dmnModeler.on('views.changed', event => {\n const {views, activeView} = event;\n this.$tabs.empty();\n views.forEach((v, i) => {\n const className = this.CLASS_NAMES[v.type];\n const tab = $(\n `<div class=\"tab ${v === activeView ? 'active' : ''}\" data-id=\"${i}\"><span class=\"${className}\"></span>${v.element.name || v.element.id}</div>`\n );\n this.$tabs.append(tab);\n });\n });\n }\n\n private loadDecisionXml(decision: DecisionXml): void {\n from(this.dmnModeler.importXML(decision.dmnXml))\n .pipe(\n tap(() => this.setEditor()),\n catchError(() => {\n this.migrateAndLoadDecisionXml(decision);\n return of(null);\n })\n )\n .subscribe();\n }\n\n private migrateAndLoadDecisionXml(decision: DecisionXml): void {\n from(migrateDiagram(decision.dmnXml))\n .pipe(\n switchMap(xml => this.dmnModeler.importXML(xml)),\n tap(() => this.setEditor()),\n catchError(() => {\n this.showNotification('error', 'decisions.loadFailure');\n return of(null);\n })\n )\n .subscribe();\n }\n\n private setEditor(): void {\n const view = this.dmnModeler.getActiveView();\n if (view?.type === 'drd') {\n const canvas = this.dmnModeler.getActiveViewer().get('canvas');\n canvas.zoom('fit-viewport');\n }\n }\n\n private initBreadcrumbs(params: CaseManagementParams, context: ManagementContext): void {\n if (context === 'independent') return;\n\n const route = `/case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [route],\n content: `${params.caseDefinitionKey} (${params.caseDefinitionVersionTag})`,\n href: route,\n });\n\n const routeWithDecisions = `${route}/decisions`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithDecisions],\n content: this.translateService.instant('caseManagement.tabs.decision'),\n href: routeWithDecisions,\n });\n }\n}\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\n<div\n *ngIf=\"{\n decisionXml: decisionXml$ | async,\n decisionTitle: decisionTitle$ | async,\n } as obs\"\n fitPage\n class=\"dmn-editor\"\n>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n</div>\n\n<ng-template #versionSelection>\n <v-select\n *ngIf=\"(isCreating$ | async) === false\"\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"versionSelectionDisabled$ | async\"\n [clearable]=\"false\"\n [loading]=\"(decisionVersionSelectItems$ | async) === null\"\n [items]=\"decisionVersionSelectItems$ | async\"\n [defaultSelectionId]=\"selectionId$ | async\"\n [widthInPx]=\"120\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n</ng-template>\n\n<ng-template #diagram>\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n selectionId: selectionId$ | async,\n isCreating: isCreating$ | async,\n context: context$ | async,\n compactMode: compactMode$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n class=\"header\"\n >\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n\n <div>\n <button\n *ngIf=\"obs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n @if (obs.selectionId && !obs.isCreating) {\n <button\n *ngIf=\"obs.hasEditPermissions\"\n cdsButton=\"primary\"\n (click)=\"deploy()\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'decisions.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option (selected)=\"download()\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n } @else {\n <button class=\"btn btn-success btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n</ng-container>\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\nimport {Component, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute, RouterModule} from '@angular/router';\nimport {DecisionService} from '../services/decision.service';\nimport {DecisionXml} from '../models';\nimport DmnViewer from 'dmn-js';\nimport {migrateDiagram} from '@bpmn-io/dmn-migrate';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-decision-display',\n standalone: true,\n templateUrl: './decision-display.component.html',\n styleUrls: ['./decision-display.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, RouterModule, TranslateModule],\n})\nexport class DecisionDisplayComponent implements OnInit {\n public viewer: DmnViewer;\n private decisionId: string;\n public decisionXml: string;\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.viewer = new DmnViewer({\n container: '#canvas',\n });\n this.decisionId = this.route.snapshot.paramMap.get('id')!;\n this.loadDecisionXml();\n }\n\n loadDecisionXml(): void {\n this.decisionService.getDecisionXml(this.decisionId).subscribe((decision: DecisionXml) => {\n this.viewer.importXML(decision.dmnXml, error => {\n if (error) {\n this.migrateAndLoadDecisionXml(decision);\n }\n });\n this.decisionXml = decision.dmnXml;\n });\n }\n\n async migrateAndLoadDecisionXml(decision: DecisionXml): Promise<void> {\n const decisionXml = await migrateDiagram(decision.dmnXml);\n\n if (decisionXml) {\n this.viewer.importXML(decisionXml, error => {\n if (error) {\n console.error('Error importing migrated XML', error);\n }\n });\n this.decisionXml = decisionXml;\n }\n }\n\n download(): void {\n const file = new Blob([this.decisionXml], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = `decision_table_${this.decisionId}.dmn`;\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n }\n}\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\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button (click)=\"download()\" class=\"btn btn-primary btn-space mr-0\">\n <i class=\"fa fa-save\"></i> &nbsp;\n <span>{{ 'Download' | translate }}</span>\n </button>\n </div>\n </div>\n <div id=\"canvas\" class=\"canvas-dmn\"></div>\n </div>\n</div>\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\nimport {Injectable} from '@angular/core';\nimport {Observable, startWith, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DecisionStateService {\n private readonly _refreshDecisions$ = new Subject<null>();\n\n get refreshDecisions$(): Observable<null> {\n return this._refreshDecisions$.asObservable().pipe(startWith(null));\n }\n\n refreshDecisions(): void {\n this._refreshDecisions$.next(null);\n }\n}\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\nexport * from './decision-state.service';\nexport * from './decision.service';\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\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Output} from '@angular/core';\nimport {FormBuilder, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, switchMap, take} from 'rxjs';\nimport {getCaseManagementRouteParams, getContextObservable} from '@valtimo/shared';\nimport {DecisionService, DecisionStateService} from '../services';\n\n@Component({\n selector: 'valtimo-decision-deploy',\n standalone: true,\n templateUrl: './decision-deploy.component.html',\n styleUrls: ['./decision-deploy.component.scss'],\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n LayerModule,\n FileUploaderModule,\n ReactiveFormsModule,\n ],\n})\nexport class DecisionDeployComponent {\n @Output() deploySuccessful = new EventEmitter();\n\n public dmn: File | null = null;\n\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n public readonly caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);\n public readonly context$ = getContextObservable(this.route);\n\n public readonly ACCEPTED_FILES: string[] = ['dmn'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly stateService: DecisionStateService,\n private readonly route: ActivatedRoute,\n private readonly formBuilder: FormBuilder\n ) {}\n\n public get selectedDmnFile(): File | null {\n const fileSet = this.form.value?.file;\n return fileSet?.size ? fileSet.values().next().value?.file || null : null;\n }\n\n public onChange(files: FileList): void {\n this.dmn = files.item(0);\n }\n\n public deployDmn(): void {\n const dmnFile = this.selectedDmnFile;\n if (!dmnFile) return;\n\n combineLatest([this.caseManagementRouteParams$, this.context$])\n .pipe(\n take(1),\n switchMap(([params, context]) =>\n context === 'case'\n ? this.decisionService.deployCaseDecisionDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n dmnFile\n )\n : this.decisionService.deployDmn(dmnFile)\n )\n )\n .subscribe(() => {\n this.closeModal();\n this.deploySuccessful.emit();\n this.stateService.refreshDecisions();\n });\n }\n\n public openModal() {\n this.modalOpen$.next(true);\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n }\n}\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\n<cds-modal showFooter=\"true\" valtimoCdsModal [open]=\"modalOpen$ | async\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'decisions.upload.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [multiple]=\"false\"\n buttonType=\"primary\"\n [title]=\"'decisions.upload.fileUploaderTitle' | translate\"\n [description]=\"'decisions.upload.fileUploaderDescription' | translate\"\n [buttonText]=\"'decisions.upload.fileUploaderButton' | translate\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!selectedDmnFile\" (click)=\"deployDmn()\">\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\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\nimport {ChangeDetectorRef, Component, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute, Router, RouterModule} from '@angular/router';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, take, tap} from 'rxjs';\nimport {Decision} from '../models';\nimport {DecisionService} from '../services/decision.service';\nimport {\n ConfigService,\n EditPermissionsService,\n getCaseManagementRouteParams,\n getContextObservable,\n} from '@valtimo/shared';\nimport {DecisionStateService} from '../services';\nimport {DecisionDeployComponent} from '../decision-deploy/decision-deploy.component';\nimport {CarbonListModule, WidgetModule} from '@valtimo/components';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {Upload16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-decision-list',\n standalone: true,\n templateUrl: './decision-list.component.html',\n styleUrls: ['./decision-list.component.scss'],\n imports: [\n CommonModule,\n RouterModule,\n CarbonListModule,\n IconModule,\n WidgetModule,\n DecisionDeployComponent,\n TranslateModule,\n ButtonModule,\n ],\n})\nexport class DecisionListComponent {\n @ViewChild('decisionDeploy') deploy: DecisionDeployComponent;\n\n public fields = [\n {key: 'key', label: 'Key'},\n {key: 'name', label: 'Name'},\n {key: 'version', label: 'Version'},\n ];\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly experimentalEditing!: boolean;\n\n public readonly caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);\n public readonly context$ = getContextObservable(this.route);\n\n readonly decisionsLatestVersions$ = this.stateService.refreshDecisions$.pipe(\n switchMap(() => this.context$),\n switchMap(context =>\n context === 'case'\n ? this.caseManagementRouteParams$.pipe(\n switchMap(params =>\n this.decisionService.listCaseDecisionDefinitions(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n )\n )\n : this.decisionService.getDecisions()\n ),\n map(decisions =>\n decisions.reduce((acc, curr) => {\n const existing = acc.find(d => d.key === curr.key);\n if (existing && existing.version > curr.version) return acc;\n if (existing && existing.version < curr.version)\n return [...acc.filter(d => d.key !== curr.key), curr];\n return [...acc, curr];\n }, [])\n ),\n tap(() => {\n this.loading$.next(false);\n this.cdr.detectChanges();\n })\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.caseManagementRouteParams$,\n this.context$,\n ]).pipe(\n switchMap(([params, context]) => {\n return this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag,\n context\n );\n })\n );\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly iconService: IconService,\n private readonly router: Router,\n private readonly configService: ConfigService,\n private readonly stateService: DecisionStateService,\n private readonly route: ActivatedRoute,\n private readonly cdr: ChangeDetectorRef,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n this.iconService.registerAll([Upload16]);\n this.experimentalEditing = this.configService.config.featureToggles.experimentalDmnEditing;\n }\n\n public viewDecisionTable(decision: Decision): void {\n this.context$.pipe(take(1)).subscribe(context => {\n if (context === 'independent') {\n const basePath = this.experimentalEditing ? '/decision-tables/edit/' : '/decision-tables/';\n this.router.navigate([basePath + decision.id]);\n } else {\n this.caseManagementRouteParams$.pipe(take(1)).subscribe(params => {\n this.router.navigateByUrl(\n `case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}/decisions/${decision.id}`\n );\n });\n }\n });\n }\n}\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\n<valtimo-carbon-list\n [items]=\"(decisionsLatestVersions$ | async) || []\"\n [loading]=\"loading$ | async\"\n [fields]=\"fields\"\n (rowClicked)=\"viewDecisionTable($event)\"\n [header]=\"false\"\n [isSearchable]=\"true\"\n>\n <ng-container carbonToolbarContent>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n (click)=\"this.deploy.openModal()\"\n >\n {{ 'Upload' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n </ng-container>\n</valtimo-carbon-list>\n\n<valtimo-decision-deploy #decisionDeploy></valtimo-decision-deploy>\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {DecisionModelerComponent} from './decision-modeler/decision-modeler.component';\nimport {DecisionDisplayComponent} from './decision-display/decision-display.component';\nimport {DecisionManagementRouteData} from './models/decision-management.model';\nimport {DecisionListComponent} from './decision-list/decision-list.component';\n\nconst routes: Routes = [\n {\n path: 'decision-tables',\n component: DecisionListComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Decision tables',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n {\n path: 'decision-tables/:id',\n component: DecisionDisplayComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Decision tables',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n {\n path: 'decision-tables/edit/:id',\n component: DecisionModelerComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Edit decision table',\n roles: [ROLE_ADMIN],\n customPageTitle: true,\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n {\n path: 'decision-tables/edit/create',\n component: DecisionModelerComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Create decision table',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DecisionRoutingModule {}\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\nimport {NgModule} from '@angular/core';\nimport {DecisionRoutingModule} from './decision-routing.module';\nimport {DecisionDeployComponent} from './decision-deploy/decision-deploy.component';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {DecisionDisplayComponent} from './decision-display/decision-display.component';\nimport {DecisionListComponent} from './decision-list/decision-list.component';\nimport {\n CarbonListModule,\n ModalModule,\n SelectModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DecisionModelerComponent} from './decision-modeler/decision-modeler.component';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\n\n@NgModule({\n imports: [\n DecisionRoutingModule,\n WidgetModule,\n TranslateModule,\n ModalModule,\n CommonModule,\n FormsModule,\n SelectModule,\n SpinnerModule,\n CarbonListModule,\n ButtonModule,\n IconModule,\n DecisionDeployComponent,\n DecisionModelerComponent,\n DecisionListComponent,\n DecisionDisplayComponent,\n ],\n exports: [DecisionModelerComponent],\n})\nexport class DecisionModule {}\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\n/*\n * Public API Surface of decision\n */\n\nexport * from './lib/models';\nexport * from './lib/decision.module';\nexport * from './lib/decision-modeler/decision-modeler.component';\nexport * from './lib/decision-display/decision-display.component';\nexport * from './lib/decision-list/decision-list.component';\nexport * from './lib/decision-deploy/decision-deploy.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.DecisionService","i5","ValtimoSelectModule","i1.DecisionStateService","i3","i4","i6","i5.DecisionStateService","i7","i1","ModalModule","SelectModule"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-decision.mjs","sources":["../../../../projects/valtimo/decision/src/lib/models/decision.model.ts","../../../../projects/valtimo/decision/src/lib/models/decision-management.model.ts","../../../../projects/valtimo/decision/src/lib/models/index.ts","../../../../projects/valtimo/decision/src/lib/decision-modeler/empty-decision.ts","../../../../projects/valtimo/decision/src/lib/services/decision.service.ts","../../../../projects/valtimo/decision/src/lib/decision-modeler/decision-modeler.component.ts","../../../../projects/valtimo/decision/src/lib/decision-modeler/decision-modeler.component.html","../../../../projects/valtimo/decision/src/lib/decision-display/decision-display.component.ts","../../../../projects/valtimo/decision/src/lib/decision-display/decision-display.component.html","../../../../projects/valtimo/decision/src/lib/services/decision-state.service.ts","../../../../projects/valtimo/decision/src/lib/services/index.ts","../../../../projects/valtimo/decision/src/lib/decision-deploy/decision-deploy.component.ts","../../../../projects/valtimo/decision/src/lib/decision-deploy/decision-deploy.component.html","../../../../projects/valtimo/decision/src/lib/decision-list/decision-list.component.ts","../../../../projects/valtimo/decision/src/lib/decision-list/decision-list.component.html","../../../../projects/valtimo/decision/src/lib/decision-routing.module.ts","../../../../projects/valtimo/decision/src/lib/decision.module.ts","../../../../projects/valtimo/decision/src/public-api.ts","../../../../projects/valtimo/decision/src/valtimo-decision.ts"],"sourcesContent":["/*\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\nexport interface Decision {\n category: string;\n decisionRequirementsDefinitionId: string;\n decisionRequirementsDefinitionKey: string;\n deploymentId: string;\n historyTimeToLive: number;\n id: string;\n key: string;\n name: string;\n resource: string;\n tenantId: string;\n version: number;\n versionTag: string;\n}\n\nexport interface DecisionXml {\n id: string;\n dmnXml: string;\n}\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\nimport {ManagementContext} from '@valtimo/shared';\n\ninterface DecisionManagementRouteData {\n context: ManagementContext;\n}\nexport {DecisionManagementRouteData};\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\nexport * from './decision.model';\nexport * from './decision-management.model';\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\nimport {DecisionXml} from '../models';\n\nconst EMPTY_DECISION: DecisionXml = {\n id: '',\n dmnXml: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<definitions xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\" xmlns:dmndi=\"https://www.omg.org/spec/DMN/20191111/DMNDI/\" xmlns:dc=\"http://www.omg.org/spec/DMN/20180521/DC/\" id=\"Definitions_1h198v9\" name=\"DRD\" namespace=\"http://camunda.org/schema/1.0/dmn\" xmlns:modeler=\"http://camunda.org/schema/modeler/1.0\" exporter=\"Camunda Modeler\" exporterVersion=\"5.2.0\" modeler:executionPlatform=\"Camunda Cloud\" modeler:executionPlatformVersion=\"8.0.0\">\n <decision id=\"Decision_1e18q76\" name=\"Decision 1\">\n <decisionTable id=\"DecisionTable_1apu23m\">\n <input id=\"Input_1\">\n <inputExpression id=\"InputExpression_1\" typeRef=\"string\">\n <text></text>\n </inputExpression>\n </input>\n <output id=\"Output_1\" typeRef=\"string\" />\n </decisionTable>\n </decision>\n <dmndi:DMNDI>\n <dmndi:DMNDiagram>\n <dmndi:DMNShape dmnElementRef=\"Decision_1e18q76\">\n <dc:Bounds height=\"80\" width=\"180\" x=\"160\" y=\"100\" />\n </dmndi:DMNShape>\n </dmndi:DMNDiagram>\n </dmndi:DMNDI>\n</definitions>\n`,\n};\n\nexport {EMPTY_DECISION};\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {BaseApiService, ConfigService, InterceptorSkip} from '@valtimo/shared';\nimport {Decision, DecisionXml} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DecisionService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public deployDmn(dmn: File): Observable<{identifier: string}> {\n const formData: FormData = new FormData();\n formData.append('file', dmn);\n formData.append('deployment-name', 'dmnTableDeploy');\n formData.append('deployment-source', 'process application');\n\n return this.httpClient.post<{identifier: string}>(\n this.getApiUrl('/v1/process/definition/deployment'),\n formData\n );\n }\n\n public getDecisions(): Observable<Decision[]> {\n return this.httpClient.get<Decision[]>(\n this.getApiUrl('/operaton-rest/engine/default/decision-definition')\n );\n }\n\n public getDecisionById(decisionId: string): Observable<Decision> {\n return this.httpClient.get<Decision>(\n this.getApiUrl(`/operaton-rest/engine/default/decision-definition/${decisionId}`)\n );\n }\n\n public getLatestDecisionByKey(decisionKey: string): Observable<Decision> {\n return this.httpClient.get<Decision>(\n this.getApiUrl(`/operaton-rest/engine/default/decision-definition/key/${decisionKey}`)\n );\n }\n\n public getDecisionXml(decisionId: string): Observable<DecisionXml> {\n return this.httpClient.get<DecisionXml>(\n this.getApiUrl(`/operaton-rest/engine/default/decision-definition/${decisionId}/xml`)\n );\n }\n\n public listCaseDecisionDefinitions(\n caseDefinitionKey: string,\n versionTag: string\n ): Observable<Decision[]> {\n return this.httpClient.get<Decision[]>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${versionTag}/decision-definition`\n )\n );\n }\n\n public deployCaseDecisionDefinition(\n caseDefinitionKey: string,\n versionTag: string,\n dmn: File\n ): Observable<{identifier: string}> {\n const formData = new FormData();\n formData.append('file', dmn);\n\n return this.httpClient.post<{identifier: string}>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${versionTag}/decision-definition`\n ),\n formData,\n {\n headers: new HttpHeaders().set(InterceptorSkip, '204'),\n }\n );\n }\n\n public deleteCaseDecisionDefinition(\n caseDefinitionKey: string,\n versionTag: string,\n decisionDefinitionKey: string\n ): Observable<any> {\n return this.httpClient.delete<any>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${versionTag}/decision-definition/${decisionDefinitionKey}`\n )\n );\n }\n}\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\nimport {DecisionService} from '../services/decision.service';\nimport {AfterViewInit, Component, OnDestroy, OnInit} from '@angular/core';\nimport DmnJS from 'dmn-js/dist/dmn-modeler.development.js';\nimport {ActivatedRoute, Router, RouterModule} from '@angular/router';\nimport {DecisionXml} from '../models';\nimport {migrateDiagram} from '@bpmn-io/dmn-migrate';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n BreadcrumbService,\n FitPageDirective,\n PageHeaderService,\n PageTitleService,\n PendingChangesComponent,\n RenderInPageHeaderDirective,\n SelectedValue,\n SelectModule as ValtimoSelectModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {EMPTY_DECISION} from './empty-decision';\nimport {CommonModule} from '@angular/common';\nimport {\n ButtonModule,\n DialogModule,\n IconModule,\n IconService,\n ModalModule,\n SelectModule,\n} from 'carbon-components-angular';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n getContextObservable,\n GlobalNotificationService,\n ManagementContext,\n} from '@valtimo/shared';\nimport {ArrowLeft16, Deploy16, Download16} from '@carbon/icons';\n\ndeclare const $: any;\n\n@Component({\n selector: 'valtimo-decision-modeler',\n standalone: true,\n templateUrl: './decision-modeler.component.html',\n styleUrls: ['./decision-modeler.component.scss'],\n imports: [\n CommonModule,\n RouterModule,\n ModalModule,\n SelectModule,\n WidgetModule,\n ValtimoSelectModule,\n TranslateModule,\n RenderInPageHeaderDirective,\n ButtonModule,\n IconModule,\n FitPageDirective,\n DialogModule,\n ],\n})\nexport class DecisionModelerComponent\n extends PendingChangesComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n private CLASS_NAMES = {\n drd: 'dmn-icon-lasso-tool',\n decisionTable: 'dmn-icon-decision-table',\n literalExpression: 'dmn-icon-literal-expression',\n };\n\n private $container!: any;\n private $tabs!: any;\n private dmnModeler!: DmnJS;\n\n public readonly versionSelectionDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly isCreating$ = new BehaviorSubject<boolean>(false);\n public readonly selectionId$ = new BehaviorSubject<string>('');\n\n private _fileName!: string;\n\n public readonly caseManagementRouteParams$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n\n public readonly context$: Observable<ManagementContext | null> = getContextObservable(this.route);\n public readonly isIndependent$ = this.context$.pipe(map(context => context === 'independent'));\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.caseManagementRouteParams$,\n this.context$,\n ]).pipe(\n switchMap(([params, context]) =>\n this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n context ?? ''\n )\n )\n );\n\n private readonly decisionId$ = this.route.params.pipe(\n map(params => params?.id),\n tap(id => {\n this.isCreating$.next(id === 'create');\n this.versionSelectionDisabled$.next(true);\n }),\n filter(id => !!id && id !== 'create')\n );\n\n public readonly decision$ = this.decisionId$.pipe(\n switchMap(id => this.decisionService.getDecisionById(id)),\n tap(decision => {\n this._fileName = decision.resource;\n if (decision) this.selectionId$.next(decision.id);\n })\n );\n\n public readonly decisionTitle$ = this.decision$.pipe(\n map(d => d?.name || d?.key || '-'),\n tap(title => this.pageTitleService.setCustomPageTitle(title))\n );\n\n private readonly _refreshDecisionSelectItems$ = new BehaviorSubject<null>(null);\n public readonly decisionVersionSelectItems$ = this._refreshDecisionSelectItems$.pipe(\n switchMap(() => combineLatest([this.decision$, this.decisionService.getDecisions()])),\n map(([current, list]) => {\n const filtered = list.filter(d => d.key === current.key);\n return [...filtered.map(d => ({id: d.id, text: d.version.toString()}))].sort(\n (a, b) => +(b.text ?? '') - +(a.text ?? '')\n );\n }),\n tap(() => this.versionSelectionDisabled$.next(false))\n );\n\n public readonly decisionXml$ = this.decisionId$.pipe(\n switchMap(id => this.decisionService.getDecisionXml(id)),\n tap(xml => xml && this.loadDecisionXml(xml))\n );\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly pageTitleService: PageTitleService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly iconService: IconService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly notificationService: GlobalNotificationService,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n super();\n this.iconService.registerAll([Deploy16, Download16, ArrowLeft16]);\n }\n\n public ngOnInit(): void {\n this.pageTitleService.disableReset();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n }\n\n public ngAfterViewInit(): void {\n this.setProperties();\n this.setTabEvents();\n this.setModelerEvents();\n\n combineLatest([this.caseManagementRouteParams$, this.context$])\n .pipe(take(1))\n .subscribe(([params, context]) => {\n if (!params || !context) return;\n\n this.initBreadcrumbs(params, context);\n });\n }\n\n public switchVersion(decisionId: string | SelectedValue): void {\n if (!decisionId) return;\n\n this.router.navigate(['../', decisionId], {relativeTo: this.route});\n this._refreshDecisionSelectItems$.next(null);\n }\n\n public deploy(): void {\n from(this.dmnModeler.saveXML({format: true}))\n .pipe(\n map(result => new File([(result as any).xml], this._fileName, {type: 'text/xml'})),\n switchMap(file => combineLatest([of(file), this.context$])),\n switchMap(([file, context]) =>\n context === 'independent'\n ? this.decisionService.deployDmn(file)\n : this.caseManagementRouteParams$.pipe(\n switchMap(params =>\n this.decisionService.deployCaseDecisionDefinition(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n file\n )\n )\n )\n ),\n tap((res: {identifier: string}) => {\n this.switchVersion(res.identifier);\n this.showNotification('success', 'decisions.deploySuccess');\n }),\n catchError(() => {\n this.showNotification('error', 'decisions.deployFailure');\n\n return of(null);\n })\n )\n .subscribe();\n }\n\n public download(): void {\n from(this.dmnModeler.saveXML({format: true}))\n .pipe(\n map(result => new File([(result as any).xml], 'decision.dmn', {type: 'text/xml'})),\n tap(file => {\n const link = document.createElement('a');\n link.download = 'diagram.dmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n })\n )\n .subscribe();\n }\n\n public navigateBack(notification: null | 'success' | 'error', message: string): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n\n if (!notification) return;\n\n this.showNotification(notification, message);\n }\n\n private showNotification(notification: null | 'success' | 'error', message: string): void {\n if (!notification) return;\n\n this.notificationService.showToast({\n caption: this.translateService.instant(message),\n type: notification,\n title: this.translateService.instant(`interface.${notification}`),\n });\n }\n\n private setProperties(): void {\n const isCreating = this.isCreating$.getValue();\n this.$container = $('.editor-container');\n this.$tabs = $('.editor-tabs');\n this.dmnModeler = new DmnJS({\n container: this.$container,\n height: 500,\n width: '100%',\n keyboard: {bindTo: window},\n });\n if (isCreating) this.loadEmptyDecisionTable();\n }\n\n private loadEmptyDecisionTable(): void {\n this.loadDecisionXml(EMPTY_DECISION);\n }\n\n private setTabEvents(): void {\n this.$tabs.delegate('.tab', 'click', async (event: any) => {\n const index = +event.currentTarget.getAttribute('data-id');\n const view = this.dmnModeler.getViews()[index];\n try {\n await this.dmnModeler.open(view);\n } catch (err) {\n console.error('tab open error', err);\n }\n });\n }\n\n private setModelerEvents(): void {\n this.dmnModeler.on('views.changed', event => {\n const {views, activeView} = event;\n this.$tabs.empty();\n views.forEach((v, i) => {\n const className = this.CLASS_NAMES[v.type];\n const tab = $(\n `<div class=\"tab ${v === activeView ? 'active' : ''}\" data-id=\"${i}\"><span class=\"${className}\"></span>${v.element.name || v.element.id}</div>`\n );\n this.$tabs.append(tab);\n });\n });\n }\n\n private loadDecisionXml(decision: DecisionXml): void {\n from(this.dmnModeler.importXML(decision.dmnXml))\n .pipe(\n tap(() => this.setEditor()),\n catchError(() => {\n this.migrateAndLoadDecisionXml(decision);\n return of(null);\n })\n )\n .subscribe();\n }\n\n private migrateAndLoadDecisionXml(decision: DecisionXml): void {\n from(migrateDiagram(decision.dmnXml))\n .pipe(\n switchMap(xml => this.dmnModeler.importXML(xml)),\n tap(() => this.setEditor()),\n catchError(() => {\n this.showNotification('error', 'decisions.loadFailure');\n return of(null);\n })\n )\n .subscribe();\n }\n\n private setEditor(): void {\n const view = this.dmnModeler.getActiveView();\n if (view?.type === 'drd') {\n const canvas = this.dmnModeler.getActiveViewer().get('canvas');\n canvas.zoom('fit-viewport');\n }\n }\n\n private initBreadcrumbs(params: CaseManagementParams, context: ManagementContext): void {\n if (context === 'independent') return;\n\n const route = `/case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [route],\n content: `${params.caseDefinitionKey} (${params.caseDefinitionVersionTag})`,\n href: route,\n });\n\n const routeWithDecisions = `${route}/decisions`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithDecisions],\n content: this.translateService.instant('caseManagement.tabs.decision'),\n href: routeWithDecisions,\n });\n }\n}\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\n<div\n *ngIf=\"{\n decisionXml: decisionXml$ | async,\n decisionTitle: decisionTitle$ | async,\n } as obs\"\n fitPage\n [disableOverflow]=\"true\"\n class=\"dmn-editor\"\n>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n</div>\n\n<ng-template #diagram>\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n selectionId: selectionId$ | async,\n isCreating: isCreating$ | async,\n context: context$ | async,\n compactMode: compactMode$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n class=\"decision-modeler-actions\"\n >\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n\n <button\n *ngIf=\"obs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n @if (obs.selectionId && !obs.isCreating) {\n <button\n *ngIf=\"obs.hasEditPermissions\"\n cdsButton=\"primary\"\n (click)=\"deploy()\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'decisions.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option (selected)=\"download()\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n } @else {\n <button class=\"btn btn-success btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n }\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #versionSelection>\n <ng-container\n *ngIf=\"{\n selectItems: (decisionVersionSelectItems$ | async) || [],\n isIndependent: isIndependent$ | async,\n versionSelectionDisabled: versionSelectionDisabled$ | async,\n selectionId: selectionId$ | async,\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.isIndependent\"\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"obs.versionSelectionDisabled\"\n [clearable]=\"false\"\n [loading]=\"obs.selectItems.length === 0\"\n [items]=\"obs.selectItems\"\n [defaultSelectionId]=\"obs.selectionId\"\n [widthInPx]=\"120\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n </ng-container>\n</ng-template>\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\nimport {Component, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute, RouterModule} from '@angular/router';\nimport {DecisionService} from '../services/decision.service';\nimport {DecisionXml} from '../models';\nimport DmnViewer from 'dmn-js';\nimport {migrateDiagram} from '@bpmn-io/dmn-migrate';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-decision-display',\n standalone: true,\n templateUrl: './decision-display.component.html',\n styleUrls: ['./decision-display.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, RouterModule, TranslateModule],\n})\nexport class DecisionDisplayComponent implements OnInit {\n public viewer: DmnViewer;\n private decisionId: string;\n public decisionXml: string;\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.viewer = new DmnViewer({\n container: '#canvas',\n });\n this.decisionId = this.route.snapshot.paramMap.get('id')!;\n this.loadDecisionXml();\n }\n\n loadDecisionXml(): void {\n this.decisionService.getDecisionXml(this.decisionId).subscribe((decision: DecisionXml) => {\n this.viewer.importXML(decision.dmnXml, error => {\n if (error) {\n this.migrateAndLoadDecisionXml(decision);\n }\n });\n this.decisionXml = decision.dmnXml;\n });\n }\n\n async migrateAndLoadDecisionXml(decision: DecisionXml): Promise<void> {\n const decisionXml = await migrateDiagram(decision.dmnXml);\n\n if (decisionXml) {\n this.viewer.importXML(decisionXml, error => {\n if (error) {\n console.error('Error importing migrated XML', error);\n }\n });\n this.decisionXml = decisionXml;\n }\n }\n\n download(): void {\n const file = new Blob([this.decisionXml], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = `decision_table_${this.decisionId}.dmn`;\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n }\n}\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\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button (click)=\"download()\" class=\"btn btn-primary btn-space mr-0\">\n <i class=\"fa fa-save\"></i> &nbsp;\n <span>{{ 'Download' | translate }}</span>\n </button>\n </div>\n </div>\n <div id=\"canvas\" class=\"canvas-dmn\"></div>\n </div>\n</div>\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\nimport {Injectable} from '@angular/core';\nimport {Observable, startWith, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DecisionStateService {\n private readonly _refreshDecisions$ = new Subject<null>();\n\n get refreshDecisions$(): Observable<null> {\n return this._refreshDecisions$.asObservable().pipe(startWith(null));\n }\n\n refreshDecisions(): void {\n this._refreshDecisions$.next(null);\n }\n}\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\nexport * from './decision-state.service';\nexport * from './decision.service';\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\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Output} from '@angular/core';\nimport {FormBuilder, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, switchMap, take} from 'rxjs';\nimport {getCaseManagementRouteParams, getContextObservable} from '@valtimo/shared';\nimport {DecisionService, DecisionStateService} from '../services';\n\n@Component({\n selector: 'valtimo-decision-deploy',\n standalone: true,\n templateUrl: './decision-deploy.component.html',\n styleUrls: ['./decision-deploy.component.scss'],\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n LayerModule,\n FileUploaderModule,\n ReactiveFormsModule,\n ],\n})\nexport class DecisionDeployComponent {\n @Output() deploySuccessful = new EventEmitter();\n\n public dmn: File | null = null;\n\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n public readonly caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);\n public readonly context$ = getContextObservable(this.route);\n\n public readonly ACCEPTED_FILES: string[] = ['dmn'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly stateService: DecisionStateService,\n private readonly route: ActivatedRoute,\n private readonly formBuilder: FormBuilder\n ) {}\n\n public get selectedDmnFile(): File | null {\n const fileSet = this.form.value?.file;\n return fileSet?.size ? fileSet.values().next().value?.file || null : null;\n }\n\n public onChange(files: FileList): void {\n this.dmn = files.item(0);\n }\n\n public deployDmn(): void {\n const dmnFile = this.selectedDmnFile;\n if (!dmnFile) return;\n\n combineLatest([this.caseManagementRouteParams$, this.context$])\n .pipe(\n take(1),\n switchMap(([params, context]) =>\n context === 'case'\n ? this.decisionService.deployCaseDecisionDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n dmnFile\n )\n : this.decisionService.deployDmn(dmnFile)\n )\n )\n .subscribe(() => {\n this.closeModal();\n this.deploySuccessful.emit();\n this.stateService.refreshDecisions();\n });\n }\n\n public openModal() {\n this.modalOpen$.next(true);\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n }\n}\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\n<cds-modal showFooter=\"true\" valtimoCdsModal [open]=\"modalOpen$ | async\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'decisions.upload.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [multiple]=\"false\"\n buttonType=\"primary\"\n [title]=\"'decisions.upload.fileUploaderTitle' | translate\"\n [description]=\"'decisions.upload.fileUploaderDescription' | translate\"\n [buttonText]=\"'decisions.upload.fileUploaderButton' | translate\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!selectedDmnFile\" (click)=\"deployDmn()\">\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\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\nimport {ChangeDetectorRef, Component, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute, Router, RouterModule} from '@angular/router';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, take, tap} from 'rxjs';\nimport {Decision} from '../models';\nimport {DecisionService} from '../services/decision.service';\nimport {\n ConfigService,\n EditPermissionsService,\n getCaseManagementRouteParams,\n getContextObservable,\n} from '@valtimo/shared';\nimport {DecisionStateService} from '../services';\nimport {DecisionDeployComponent} from '../decision-deploy/decision-deploy.component';\nimport {CarbonListModule, WidgetModule} from '@valtimo/components';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {Upload16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-decision-list',\n standalone: true,\n templateUrl: './decision-list.component.html',\n styleUrls: ['./decision-list.component.scss'],\n imports: [\n CommonModule,\n RouterModule,\n CarbonListModule,\n IconModule,\n WidgetModule,\n DecisionDeployComponent,\n TranslateModule,\n ButtonModule,\n ],\n})\nexport class DecisionListComponent {\n @ViewChild('decisionDeploy') deploy: DecisionDeployComponent;\n\n public fields = [\n {key: 'key', label: 'Key'},\n {key: 'name', label: 'Name'},\n {key: 'version', label: 'Version'},\n ];\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly experimentalEditing!: boolean;\n\n public readonly caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);\n public readonly context$ = getContextObservable(this.route);\n\n readonly decisionsLatestVersions$ = this.stateService.refreshDecisions$.pipe(\n switchMap(() => this.context$),\n switchMap(context =>\n context === 'case'\n ? this.caseManagementRouteParams$.pipe(\n switchMap(params =>\n this.decisionService.listCaseDecisionDefinitions(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n )\n )\n : this.decisionService.getDecisions()\n ),\n map(decisions =>\n decisions.reduce((acc, curr) => {\n const existing = acc.find(d => d.key === curr.key);\n if (existing && existing.version > curr.version) return acc;\n if (existing && existing.version < curr.version)\n return [...acc.filter(d => d.key !== curr.key), curr];\n return [...acc, curr];\n }, [])\n ),\n tap(() => {\n this.loading$.next(false);\n this.cdr.detectChanges();\n })\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.caseManagementRouteParams$,\n this.context$,\n ]).pipe(\n switchMap(([params, context]) => {\n return this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag,\n context\n );\n })\n );\n\n constructor(\n private readonly decisionService: DecisionService,\n private readonly iconService: IconService,\n private readonly router: Router,\n private readonly configService: ConfigService,\n private readonly stateService: DecisionStateService,\n private readonly route: ActivatedRoute,\n private readonly cdr: ChangeDetectorRef,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n this.iconService.registerAll([Upload16]);\n this.experimentalEditing = this.configService.config.featureToggles.experimentalDmnEditing;\n }\n\n public viewDecisionTable(decision: Decision): void {\n this.context$.pipe(take(1)).subscribe(context => {\n if (context === 'independent') {\n const basePath = this.experimentalEditing ? '/decision-tables/edit/' : '/decision-tables/';\n this.router.navigate([basePath + decision.id]);\n } else {\n this.caseManagementRouteParams$.pipe(take(1)).subscribe(params => {\n this.router.navigateByUrl(\n `case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}/decisions/${decision.id}`\n );\n });\n }\n });\n }\n}\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\n<valtimo-carbon-list\n [items]=\"(decisionsLatestVersions$ | async) || []\"\n [loading]=\"loading$ | async\"\n [fields]=\"fields\"\n (rowClicked)=\"viewDecisionTable($event)\"\n [header]=\"false\"\n [isSearchable]=\"true\"\n>\n <ng-container carbonToolbarContent>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n (click)=\"this.deploy.openModal()\"\n >\n {{ 'Upload' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n </ng-container>\n</valtimo-carbon-list>\n\n<valtimo-decision-deploy #decisionDeploy></valtimo-decision-deploy>\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {DecisionModelerComponent} from './decision-modeler/decision-modeler.component';\nimport {DecisionDisplayComponent} from './decision-display/decision-display.component';\nimport {DecisionManagementRouteData} from './models/decision-management.model';\nimport {DecisionListComponent} from './decision-list/decision-list.component';\n\nconst routes: Routes = [\n {\n path: 'decision-tables',\n component: DecisionListComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Decision tables',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n {\n path: 'decision-tables/:id',\n component: DecisionDisplayComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Decision tables',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n {\n path: 'decision-tables/edit/:id',\n component: DecisionModelerComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Edit decision table',\n roles: [ROLE_ADMIN],\n customPageTitle: true,\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n {\n path: 'decision-tables/edit/create',\n component: DecisionModelerComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Create decision table',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as DecisionManagementRouteData,\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DecisionRoutingModule {}\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\nimport {NgModule} from '@angular/core';\nimport {DecisionRoutingModule} from './decision-routing.module';\nimport {DecisionDeployComponent} from './decision-deploy/decision-deploy.component';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {DecisionDisplayComponent} from './decision-display/decision-display.component';\nimport {DecisionListComponent} from './decision-list/decision-list.component';\nimport {\n CarbonListModule,\n ModalModule,\n SelectModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DecisionModelerComponent} from './decision-modeler/decision-modeler.component';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\n\n@NgModule({\n imports: [\n DecisionRoutingModule,\n WidgetModule,\n TranslateModule,\n ModalModule,\n CommonModule,\n FormsModule,\n SelectModule,\n SpinnerModule,\n CarbonListModule,\n ButtonModule,\n IconModule,\n DecisionDeployComponent,\n DecisionModelerComponent,\n DecisionListComponent,\n DecisionDisplayComponent,\n ],\n exports: [DecisionModelerComponent],\n})\nexport class DecisionModule {}\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\n/*\n * Public API Surface of decision\n */\n\nexport * from './lib/models';\nexport * from './lib/decision.module';\nexport * from './lib/decision-modeler/decision-modeler.component';\nexport * from './lib/decision-display/decision-display.component';\nexport * from './lib/decision-list/decision-list.component';\nexport * from './lib/decision-deploy/decision-deploy.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.DecisionService","i5","ValtimoSelectModule","i1.DecisionStateService","i3","i4","i6","i5.DecisionStateService","i7","i1","ModalModule","SelectModule"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { DecisionService } from '../services/decision.service';
2
- import { AfterViewInit } from '@angular/core';
2
+ import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
4
  import { DecisionXml } from '../models';
5
5
  import { BehaviorSubject, Observable } from 'rxjs';
6
- import { BreadcrumbService, PageHeaderService, PageTitleService, PendingChangesComponent, SelectedValue, SelectItem } from '@valtimo/components';
6
+ import { BreadcrumbService, PageHeaderService, PageTitleService, PendingChangesComponent, SelectedValue } from '@valtimo/components';
7
7
  import { TranslateService } from '@ngx-translate/core';
8
8
  import { IconService } from 'carbon-components-angular';
9
9
  import { CaseManagementParams, EditPermissionsService, GlobalNotificationService, ManagementContext } from '@valtimo/shared';
10
10
  import * as i0 from "@angular/core";
11
- export declare class DecisionModelerComponent extends PendingChangesComponent implements AfterViewInit {
11
+ export declare class DecisionModelerComponent extends PendingChangesComponent implements OnInit, OnDestroy, AfterViewInit {
12
12
  private readonly decisionService;
13
13
  private readonly route;
14
14
  private readonly router;
@@ -26,21 +26,24 @@ export declare class DecisionModelerComponent extends PendingChangesComponent im
26
26
  readonly versionSelectionDisabled$: BehaviorSubject<boolean>;
27
27
  readonly isCreating$: BehaviorSubject<boolean>;
28
28
  readonly selectionId$: BehaviorSubject<string>;
29
- readonly createdDecisionVersionSelectItems$: BehaviorSubject<SelectItem[]>;
30
29
  private _fileName;
31
30
  readonly caseManagementRouteParams$: Observable<CaseManagementParams | undefined>;
32
31
  readonly context$: Observable<ManagementContext | null>;
32
+ readonly isIndependent$: Observable<boolean>;
33
33
  readonly compactMode$: Observable<boolean>;
34
34
  readonly hasEditPermissions$: Observable<boolean>;
35
35
  private readonly decisionId$;
36
36
  readonly decision$: Observable<import("@valtimo/decision").Decision>;
37
37
  readonly decisionTitle$: Observable<string>;
38
- readonly decisionVersionSelectItems$: Observable<(SelectItem | {
38
+ private readonly _refreshDecisionSelectItems$;
39
+ readonly decisionVersionSelectItems$: Observable<{
39
40
  id: string;
40
41
  text: string;
41
- })[]>;
42
+ }[]>;
42
43
  readonly decisionXml$: Observable<DecisionXml>;
43
44
  constructor(decisionService: DecisionService, route: ActivatedRoute, router: Router, translateService: TranslateService, pageTitleService: PageTitleService, breadcrumbService: BreadcrumbService, iconService: IconService, pageHeaderService: PageHeaderService, notificationService: GlobalNotificationService, editPermissionsService: EditPermissionsService);
45
+ ngOnInit(): void;
46
+ ngOnDestroy(): void;
44
47
  ngAfterViewInit(): void;
45
48
  switchVersion(decisionId: string | SelectedValue): void;
46
49
  deploy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"decision-modeler.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/decision/src/lib/decision-modeler/decision-modeler.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-modeler.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/decision/src/lib/decision-modeler/decision-modeler.component.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@valtimo/decision",
3
3
  "license": "EUPL-1.2",
4
- "version": "13.0.1",
4
+ "version": "13.1.1",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.2.8",
7
7
  "@angular/core": "^19.2.8"