@valtimo/decision 5.7.0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/decision-deploy/decision-deploy.component.mjs +10 -7
- package/esm2020/lib/decision-display/decision-display.component.mjs +25 -7
- package/esm2020/lib/decision-list/decision-list.component.mjs +33 -17
- package/esm2020/lib/decision-modeler/decision-modeler.component.mjs +211 -0
- package/esm2020/lib/decision-modeler/empty-decision.mjs +26 -0
- package/esm2020/lib/decision-routing.module.mjs +15 -2
- package/esm2020/lib/decision.component.mjs +13 -8
- package/esm2020/lib/decision.module.mjs +15 -5
- package/esm2020/lib/decision.service.mjs +7 -1
- package/esm2020/lib/services/decision-state.service.mjs +23 -0
- package/esm2020/lib/services/index.mjs +2 -0
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/valtimo-decision.mjs +351 -50
- package/fesm2015/valtimo-decision.mjs.map +1 -1
- package/fesm2020/valtimo-decision.mjs +346 -35
- package/fesm2020/valtimo-decision.mjs.map +1 -1
- package/lib/decision-deploy/decision-deploy.component.d.ts +4 -2
- package/lib/decision-deploy/decision-deploy.component.d.ts.map +1 -1
- package/lib/decision-display/decision-display.component.d.ts +7 -3
- package/lib/decision-display/decision-display.component.d.ts.map +1 -1
- package/lib/decision-list/decision-list.component.d.ts +10 -6
- package/lib/decision-list/decision-list.component.d.ts.map +1 -1
- package/lib/decision-modeler/decision-modeler.component.d.ts +46 -0
- package/lib/decision-modeler/decision-modeler.component.d.ts.map +1 -0
- package/lib/decision-modeler/empty-decision.d.ts +4 -0
- package/lib/decision-modeler/empty-decision.d.ts.map +1 -0
- package/lib/decision-routing.module.d.ts.map +1 -1
- package/lib/decision.component.d.ts +4 -0
- package/lib/decision.component.d.ts.map +1 -1
- package/lib/decision.module.d.ts +8 -6
- package/lib/decision.module.d.ts.map +1 -1
- package/lib/decision.service.d.ts +2 -0
- package/lib/decision.service.d.ts.map +1 -1
- package/lib/services/decision-state.service.d.ts +10 -0
- package/lib/services/decision-state.service.d.ts.map +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.d.ts.map +1 -0
- package/package.json +3 -2
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import DmnJS from 'dmn-js/dist/dmn-modeler.development.js';
|
|
3
|
+
import { migrateDiagram } from '@bpmn-io/dmn-migrate';
|
|
4
|
+
import { BehaviorSubject, catchError, combineLatest, filter, from, map, of, switchMap, take, tap, } from 'rxjs';
|
|
5
|
+
import { EMPTY_DECISION } from './empty-decision';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../decision.service";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
|
+
import * as i3 from "@valtimo/components";
|
|
10
|
+
import * as i4 from "@ngx-translate/core";
|
|
11
|
+
import * as i5 from "@valtimo/layout";
|
|
12
|
+
import * as i6 from "@valtimo/user-interface";
|
|
13
|
+
import * as i7 from "@angular/common";
|
|
14
|
+
export class DecisionModelerComponent {
|
|
15
|
+
constructor(decisionService, route, router, alertService, translateService, layoutService) {
|
|
16
|
+
this.decisionService = decisionService;
|
|
17
|
+
this.route = route;
|
|
18
|
+
this.router = router;
|
|
19
|
+
this.alertService = alertService;
|
|
20
|
+
this.translateService = translateService;
|
|
21
|
+
this.layoutService = layoutService;
|
|
22
|
+
this.CLASS_NAMES = {
|
|
23
|
+
drd: 'dmn-icon-lasso-tool',
|
|
24
|
+
decisionTable: 'dmn-icon-decision-table',
|
|
25
|
+
literalExpression: 'dmn-icon-literal-expression',
|
|
26
|
+
};
|
|
27
|
+
this.versionSelectionDisabled$ = new BehaviorSubject(true);
|
|
28
|
+
this.isCreating$ = new BehaviorSubject(false);
|
|
29
|
+
this.decisionId$ = this.route.params.pipe(map(params => params?.id), tap(decisionId => this.isCreating$.next(decisionId === 'create')), filter(decisionId => !!decisionId && decisionId !== 'create'), tap(() => this.versionSelectionDisabled$.next(true)));
|
|
30
|
+
this.selectionId$ = new BehaviorSubject('');
|
|
31
|
+
this.decision$ = this.decisionId$.pipe(switchMap(decisionId => this.decisionService.getDecisionById(decisionId)), tap(decision => {
|
|
32
|
+
if (decision) {
|
|
33
|
+
this.selectionId$.next(decision.id);
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
this.decisionTitle$ = this.decision$.pipe(map(decision => decision?.key || ''));
|
|
37
|
+
this.createdDecisionVersionSelectItems$ = new BehaviorSubject([]);
|
|
38
|
+
this.decisionVersionSelectItems$ = combineLatest([
|
|
39
|
+
this.decision$,
|
|
40
|
+
this.decisionService.getDecisions(),
|
|
41
|
+
this.createdDecisionVersionSelectItems$,
|
|
42
|
+
]).pipe(map(([currentDecision, decisions, createdDecisionVersionSelectItems]) => {
|
|
43
|
+
const decisionsWithKey = decisions.filter(decision => decision.key === currentDecision.key);
|
|
44
|
+
return [
|
|
45
|
+
...decisionsWithKey.map(decision => ({
|
|
46
|
+
id: decision.id,
|
|
47
|
+
text: decision.version.toString(),
|
|
48
|
+
})),
|
|
49
|
+
...createdDecisionVersionSelectItems,
|
|
50
|
+
].sort((a, b) => Number(b.text) - Number(a.text));
|
|
51
|
+
}), tap(() => this.versionSelectionDisabled$.next(false)));
|
|
52
|
+
this.decisionXml$ = this.decisionId$.pipe(switchMap(decisionId => this.decisionService.getDecisionXml(decisionId)), tap(decisionXml => {
|
|
53
|
+
if (decisionXml) {
|
|
54
|
+
this.loadDecisionXml(decisionXml);
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
57
|
+
this.setTabEvents = () => {
|
|
58
|
+
const $tabs = this.$tabs;
|
|
59
|
+
const dmnModeler = this.dmnModeler;
|
|
60
|
+
$tabs.delegate('.tab', 'click', async function (e) {
|
|
61
|
+
// get index of view from clicked tab
|
|
62
|
+
const viewIdx = parseInt(this.getAttribute('data-id'), 10);
|
|
63
|
+
// get view using index
|
|
64
|
+
const view = dmnModeler.getViews()[viewIdx];
|
|
65
|
+
// open view
|
|
66
|
+
try {
|
|
67
|
+
await dmnModeler.open(view);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
console.error('error opening tab', err);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
this.setModelerEvents = () => {
|
|
75
|
+
const $tabs = this.$tabs;
|
|
76
|
+
const CLASS_NAMES = this.CLASS_NAMES;
|
|
77
|
+
this.dmnModeler.on('views.changed', function (event) {
|
|
78
|
+
// get views from event
|
|
79
|
+
const { views, activeView } = event;
|
|
80
|
+
// clear tabs
|
|
81
|
+
$tabs.empty();
|
|
82
|
+
// create a new tab for each view
|
|
83
|
+
views.forEach(function (v, idx) {
|
|
84
|
+
const className = CLASS_NAMES[v.type];
|
|
85
|
+
const tab = $(`
|
|
86
|
+
<div class="tab ${v === activeView ? 'active' : ''}" data-id="${idx}">
|
|
87
|
+
<span class="${className}"></span>
|
|
88
|
+
${v.element.name || v.element.id}
|
|
89
|
+
</div>
|
|
90
|
+
`);
|
|
91
|
+
$tabs.append(tab);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
ngAfterViewInit() {
|
|
97
|
+
this.setProperties();
|
|
98
|
+
this.setTabEvents();
|
|
99
|
+
this.setModelerEvents();
|
|
100
|
+
}
|
|
101
|
+
switchVersion(decisionId) {
|
|
102
|
+
if (decisionId) {
|
|
103
|
+
this.router.navigate(['/decision-tables/edit', decisionId]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
deploy() {
|
|
107
|
+
from(this.dmnModeler.saveXML({ format: true }))
|
|
108
|
+
.pipe(map(result => result.xml), map(xml => new File([xml], 'decision.dmn', {
|
|
109
|
+
type: 'text/xml',
|
|
110
|
+
})), switchMap(file => this.decisionService.deployDmn(file)), tap(res => {
|
|
111
|
+
const deployedDefinitions = res.deployedDecisionDefinitions;
|
|
112
|
+
const deployedDecisionDefinition = deployedDefinitions[Object.keys(deployedDefinitions)[0]];
|
|
113
|
+
const deployedId = deployedDecisionDefinition.id;
|
|
114
|
+
this.createdDecisionVersionSelectItems$
|
|
115
|
+
.pipe(take(1))
|
|
116
|
+
.subscribe(createdDecisionVersionSelectItems => {
|
|
117
|
+
if (deployedDecisionDefinition) {
|
|
118
|
+
this.createdDecisionVersionSelectItems$.next([
|
|
119
|
+
...createdDecisionVersionSelectItems,
|
|
120
|
+
{
|
|
121
|
+
id: deployedId,
|
|
122
|
+
text: deployedDecisionDefinition.version.toString(),
|
|
123
|
+
},
|
|
124
|
+
]);
|
|
125
|
+
}
|
|
126
|
+
if (deployedId) {
|
|
127
|
+
setTimeout(() => {
|
|
128
|
+
this.switchVersion(deployedId);
|
|
129
|
+
this.alertService.success(this.translateService.instant('decisions.deploySuccess'));
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}), catchError(() => {
|
|
134
|
+
this.alertService.error(this.translateService.instant('decisions.deployFailure'));
|
|
135
|
+
return of(null);
|
|
136
|
+
}))
|
|
137
|
+
.subscribe();
|
|
138
|
+
}
|
|
139
|
+
download() {
|
|
140
|
+
from(this.dmnModeler.saveXML({ format: true }))
|
|
141
|
+
.pipe(map(result => result.xml), map(xml => new File([xml], 'decision.dmn', {
|
|
142
|
+
type: 'text/xml',
|
|
143
|
+
})), tap(file => {
|
|
144
|
+
const link = document.createElement('a');
|
|
145
|
+
link.download = 'diagram.dmn';
|
|
146
|
+
link.href = window.URL.createObjectURL(file);
|
|
147
|
+
link.click();
|
|
148
|
+
window.URL.revokeObjectURL(link.href);
|
|
149
|
+
link.remove();
|
|
150
|
+
}))
|
|
151
|
+
.subscribe();
|
|
152
|
+
}
|
|
153
|
+
setProperties() {
|
|
154
|
+
const isCreating = this.isCreating$.getValue();
|
|
155
|
+
this.$container = $('.editor-container');
|
|
156
|
+
this.$tabs = $('.editor-tabs');
|
|
157
|
+
this.dmnModeler = new DmnJS({
|
|
158
|
+
container: this.$container,
|
|
159
|
+
height: 500,
|
|
160
|
+
width: '100%',
|
|
161
|
+
keyboard: {
|
|
162
|
+
bindTo: window,
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
if (isCreating) {
|
|
166
|
+
this.loadEmptyDecisionTable();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
loadEmptyDecisionTable() {
|
|
170
|
+
this.loadDecisionXml(EMPTY_DECISION);
|
|
171
|
+
}
|
|
172
|
+
loadDecisionXml(decision) {
|
|
173
|
+
from(this.dmnModeler.importXML(decision.dmnXml))
|
|
174
|
+
.pipe(tap(() => {
|
|
175
|
+
this.setEditor();
|
|
176
|
+
}), catchError(() => {
|
|
177
|
+
this.migrateAndLoadDecisionXml(decision);
|
|
178
|
+
return of(null);
|
|
179
|
+
}))
|
|
180
|
+
.subscribe();
|
|
181
|
+
}
|
|
182
|
+
migrateAndLoadDecisionXml(decision) {
|
|
183
|
+
from(migrateDiagram(decision.dmnXml))
|
|
184
|
+
.pipe(switchMap(decisionXml => this.dmnModeler.importXML(decisionXml)), tap(() => {
|
|
185
|
+
this.setEditor();
|
|
186
|
+
}), catchError(() => {
|
|
187
|
+
this.alertService.error(this.translateService.instant('decisions.loadFailure'));
|
|
188
|
+
return of(null);
|
|
189
|
+
}))
|
|
190
|
+
.subscribe();
|
|
191
|
+
}
|
|
192
|
+
setEditor() {
|
|
193
|
+
const dmnModeler = this.dmnModeler;
|
|
194
|
+
const activeView = dmnModeler.getActiveView();
|
|
195
|
+
// apply initial logic in DRD view
|
|
196
|
+
if (activeView.type === 'drd') {
|
|
197
|
+
const activeEditor = dmnModeler.getActiveViewer();
|
|
198
|
+
// access active editor components
|
|
199
|
+
const canvas = activeEditor.get('canvas');
|
|
200
|
+
// zoom to fit full viewport
|
|
201
|
+
canvas.zoom('fit-viewport');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
DecisionModelerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionModelerComponent, deps: [{ token: i1.DecisionService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.AlertService }, { token: i4.TranslateService }, { token: i5.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
206
|
+
DecisionModelerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DecisionModelerComponent, selector: "valtimo-decision-modeler", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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 [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\"\n class=\"mb-5\"\n *ngIf=\"{\n decisionXml: decisionXml$ | async\n } as obs\"\n>\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"createButtons\"></ng-container>\n <div [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\" class=\"modeler pl-3 pr-3 mb-3\">\n <ng-container *ngTemplateOutlet=\"diagramHeader\"></ng-container>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #buttons>\n <div\n class=\"text-right\"\n *ngIf=\"(isCreating$ | async) === false && {selectionId: selectionId$ | async} as obs\"\n >\n <div class=\"btn-group mt-m3px mb-3\" *ngIf=\"obs.selectionId && !layoutService.isFullscreen\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': obs.selectionId !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #createButtons>\n <div class=\"text-right\" *ngIf=\"isCreating$ | async\">\n <div class=\"btn-group mt-m3px mb-3\" *ngIf=\"!layoutService.isFullscreen\">\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 <!-- <button-->\n <!-- *ngIf=\"selectedVersion === null\"-->\n <!-- class=\"btn btn-danger btn-space mr-0\"-->\n <!-- (click)=\"reset()\"-->\n <!-- >-->\n <!-- <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}-->\n <!-- </button>-->\n </div>\n </div>\n</ng-template>\n\n<ng-template #diagramHeader>\n <div class=\"row pt-4 pb-3 bg-light diagram-header justify-content-between\">\n <ng-container *ngTemplateOutlet=\"decisionTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n <ng-container *ngTemplateOutlet=\"fullScreenToggle\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #decisionTitle>\n <div class=\"col-md-5 d-flex align-items-center\">\n <h2 class=\"decision-title\">\n {{ decisionTitle$ | async }}\n </h2>\n </div>\n</ng-template>\n\n<ng-template #versionSelection>\n <div class=\"col-md-2 d-flex justify-content-center align-items-center\">\n <ng-container\n *ngIf=\"\n (isCreating$ | async) === false && {\n versionSelectItems: decisionVersionSelectItems$ | async,\n defaultSelectionId: selectionId$ | async,\n disabled: versionSelectionDisabled$ | async\n } as obs\n \"\n >\n <v-select\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"obs.disabled\"\n [clearable]=\"false\"\n [loading]=\"!obs.versionSelectItems\"\n [items]=\"obs.versionSelectItems\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [widthInPx]=\"100\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #fullScreenToggle>\n <div class=\"col-md-2 d-flex fullscreen-toggle align-items-start justify-content-end\">\n <i\n (click)=\"layoutService.toggleFullscreen()\"\n [ngClass]=\"{\n 'mdi-fullscreen': !layoutService.isFullscreen,\n 'mdi-fullscreen-exit': layoutService.isFullscreen\n }\"\n class=\"mdi\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #diagram>\n <div class=\"row bg-white diagram mb-3\">\n <div class=\"dmn-modeler\">\n <div class=\"test-container\">\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */#save-button{position:absolute;bottom:10px;left:10px;background:white;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}\n"], components: [{ type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "clearable", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder"], outputs: ["selectedChange", "clear"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i7.AsyncPipe, "translate": i4.TranslatePipe } });
|
|
207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionModelerComponent, decorators: [{
|
|
208
|
+
type: Component,
|
|
209
|
+
args: [{ selector: 'valtimo-decision-modeler', template: "<!--\n ~ Copyright 2015-2020 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 [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\"\n class=\"mb-5\"\n *ngIf=\"{\n decisionXml: decisionXml$ | async\n } as obs\"\n>\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"createButtons\"></ng-container>\n <div [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\" class=\"modeler pl-3 pr-3 mb-3\">\n <ng-container *ngTemplateOutlet=\"diagramHeader\"></ng-container>\n <ng-container *ngTemplateOutlet=\"diagram\"></ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #buttons>\n <div\n class=\"text-right\"\n *ngIf=\"(isCreating$ | async) === false && {selectionId: selectionId$ | async} as obs\"\n >\n <div class=\"btn-group mt-m3px mb-3\" *ngIf=\"obs.selectionId && !layoutService.isFullscreen\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': obs.selectionId !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'decisions.deploy' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #createButtons>\n <div class=\"text-right\" *ngIf=\"isCreating$ | async\">\n <div class=\"btn-group mt-m3px mb-3\" *ngIf=\"!layoutService.isFullscreen\">\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 <!-- <button-->\n <!-- *ngIf=\"selectedVersion === null\"-->\n <!-- class=\"btn btn-danger btn-space mr-0\"-->\n <!-- (click)=\"reset()\"-->\n <!-- >-->\n <!-- <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}-->\n <!-- </button>-->\n </div>\n </div>\n</ng-template>\n\n<ng-template #diagramHeader>\n <div class=\"row pt-4 pb-3 bg-light diagram-header justify-content-between\">\n <ng-container *ngTemplateOutlet=\"decisionTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"versionSelection\"></ng-container>\n <ng-container *ngTemplateOutlet=\"fullScreenToggle\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #decisionTitle>\n <div class=\"col-md-5 d-flex align-items-center\">\n <h2 class=\"decision-title\">\n {{ decisionTitle$ | async }}\n </h2>\n </div>\n</ng-template>\n\n<ng-template #versionSelection>\n <div class=\"col-md-2 d-flex justify-content-center align-items-center\">\n <ng-container\n *ngIf=\"\n (isCreating$ | async) === false && {\n versionSelectItems: decisionVersionSelectItems$ | async,\n defaultSelectionId: selectionId$ | async,\n disabled: versionSelectionDisabled$ | async\n } as obs\n \"\n >\n <v-select\n name=\"version\"\n [title]=\"'decisions.version' | translate\"\n [disabled]=\"obs.disabled\"\n [clearable]=\"false\"\n [loading]=\"!obs.versionSelectItems\"\n [items]=\"obs.versionSelectItems\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [widthInPx]=\"100\"\n (selectedChange)=\"switchVersion($event)\"\n ></v-select>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #fullScreenToggle>\n <div class=\"col-md-2 d-flex fullscreen-toggle align-items-start justify-content-end\">\n <i\n (click)=\"layoutService.toggleFullscreen()\"\n [ngClass]=\"{\n 'mdi-fullscreen': !layoutService.isFullscreen,\n 'mdi-fullscreen-exit': layoutService.isFullscreen\n }\"\n class=\"mdi\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #diagram>\n <div class=\"row bg-white diagram mb-3\">\n <div class=\"dmn-modeler\">\n <div class=\"test-container\">\n <div class=\"editor-parent\">\n <div class=\"editor-container\"></div>\n <div class=\"editor-tabs\"></div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */#save-button{position:absolute;bottom:10px;left:10px;background:white;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}\n"] }]
|
|
210
|
+
}], ctorParameters: function () { return [{ type: i1.DecisionService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.AlertService }, { type: i4.TranslateService }, { type: i5.LayoutService }]; } });
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXNpb24tbW9kZWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2RlY2lzaW9uL3NyYy9saWIvZGVjaXNpb24tbW9kZWxlci9kZWNpc2lvbi1tb2RlbGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGVjaXNpb24vc3JjL2xpYi9kZWNpc2lvbi1tb2RlbGVyL2RlY2lzaW9uLW1vZGVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE9BQU8sRUFBZ0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLHdDQUF3QyxDQUFDO0FBRzNELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7O0FBU2hELE1BQU0sT0FBTyx3QkFBd0I7SUFrRW5DLFlBQ21CLGVBQWdDLEVBQ2hDLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixnQkFBa0MsRUFDbkMsYUFBNEI7UUFMM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBdkV0QyxnQkFBVyxHQUFHO1lBQ3BCLEdB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QUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNoRSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztZQUNoRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUVuQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFOUMsa0NBQWtDO1FBQ2xDLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDN0IsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRWxELGtDQUFrQztZQUNsQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTFDLDRCQUE0QjtZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7c0hBL1FVLHdCQUF3QjswR0FBeEIsd0JBQXdCLGdFQ3BDckMsczBKQXlJQTs0RkRyR2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7RGVjaXNpb25TZXJ2aWNlfSBmcm9tICcuLi9kZWNpc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBEbW5KUyBmcm9tICdkbW4tanMvZGlzdC9kbW4tbW9kZWxlci5kZXZlbG9wbWVudC5qcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0RlY2lzaW9uLCBEZWNpc2lvblhtbH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7bWlncmF0ZURpYWdyYW19IGZyb20gJ0BicG1uLWlvL2Rtbi1taWdyYXRlJztcbmltcG9ydCB7TGF5b3V0U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vbGF5b3V0JztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZSwgdGFwLH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NlbGVjdGVkVmFsdWUsIFNlbGVjdEl0ZW19IGZyb20gJ0B2YWx0aW1vL3VzZXItaW50ZXJmYWNlJztcbmltcG9ydCB7QWxlcnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0VNUFRZX0RFQ0lTSU9OfSBmcm9tICcuL2VtcHR5LWRlY2lzaW9uJztcblxuZGVjbGFyZSBjb25zdCAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZGVjaXNpb24tbW9kZWxlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWNpc2lvbi1tb2RlbGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVjaXNpb24tbW9kZWxlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEZWNpc2lvbk1vZGVsZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSBDTEFTU19OQU1FUyA9IHtcbiAgICBkcmQ6ICdkbW4taWNvbi1sYXNzby10b29sJyxcbiAgICBkZWNpc2lvblRhYmxlOiAnZG1uLWljb24tZGVjaXNpb24tdGFibGUnLFxuICAgIGxpdGVyYWxFeHByZXNzaW9uOiAnZG1uLWljb24tbGl0ZXJhbC1leHByZXNzaW9uJyxcbiAgfTtcbiAgcHJpdmF0ZSAkY29udGFpbmVyITogYW55O1xuICBwcml2YXRlICR0YWJzITogYW55O1xuICBwcml2YXRlIGRtbk1vZGVsZXIhOiBEbW5KUztcblxuICByZWFkb25seSB2ZXJzaW9uU2VsZWN0aW9uRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICByZWFkb25seSBpc0NyZWF0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVjaXNpb25JZCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zPy5pZCksXG4gICAgdGFwKGRlY2lzaW9uSWQgPT4gdGhpcy5pc0NyZWF0aW5nJC5uZXh0KGRlY2lzaW9uSWQgPT09ICdjcmVhdGUnKSksXG4gICAgZmlsdGVyKGRlY2lzaW9uSWQgPT4gISFkZWNpc2lvbklkICYmIGRlY2lzaW9uSWQgIT09ICdjcmVhdGUnKSxcbiAgICB0YXAoKCkgPT4gdGhpcy52ZXJzaW9uU2VsZWN0aW9uRGlzYWJsZWQkLm5leHQodHJ1ZSkpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0aW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlY2lzaW9uJDogT2JzZXJ2YWJsZTxEZWNpc2lvbj4gPSB0aGlzLmRlY2lzaW9uSWQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGRlY2lzaW9uSWQgPT4gdGhpcy5kZWNpc2lvblNlcnZpY2UuZ2V0RGVjaXNpb25CeUlkKGRlY2lzaW9uSWQpKSxcbiAgICB0YXAoZGVjaXNpb24gPT4ge1xuICAgICAgaWYgKGRlY2lzaW9uKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uSWQkLm5leHQoZGVjaXNpb24uaWQpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG5cbiAgcmVhZG9ubHkgZGVjaXNpb25UaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGVjaXNpb24kLnBpcGUoXG4gICAgbWFwKGRlY2lzaW9uID0+IGRlY2lzaW9uPy5rZXkgfHwgJycpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3JlYXRlZERlY2lzaW9uVmVyc2lvblNlbGVjdEl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8U2VsZWN0SXRlbT4+KFtdKTtcblxuICByZWFkb25seSBkZWNpc2lvblZlcnNpb25TZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kZWNpc2lvbiQsXG4gICAgdGhpcy5kZWNpc2lvblNlcnZpY2UuZ2V0RGVjaXNpb25zKCksXG4gICAgdGhpcy5jcmVhdGVkRGVjaXNpb25WZXJzaW9uU2VsZWN0SXRlbXMkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2N1cnJlbnREZWNpc2lvbiwgZGVjaXNpb25zLCBjcmVhdGVkRGVjaXNpb25WZXJzaW9uU2VsZWN0SXRlbXNdKSA9PiB7XG4gICAgICBjb25zdCBkZWNpc2lvbnNXaXRoS2V5ID0gZGVjaXNpb25zLmZpbHRlcihkZWNpc2lvbiA9PiBkZWNpc2lvbi5rZXkgPT09IGN1cnJlbnREZWNpc2lvbi5rZXkpO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5kZWNpc2lvbnNXaXRoS2V5Lm1hcChkZWNpc2lvbiA9PiAoe1xuICAgICAgICAgIGlkOiBkZWNpc2lvbi5pZCxcbiAgICAgICAgICB0ZXh0OiBkZWNpc2lvbi52ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICAgIH0pKSxcbiAgICAgICAgLi4uY3JlYXRlZERlY2lzaW9uVmVyc2lvblNlbGVjdEl0ZW1zLFxuICAgICAgXS5zb3J0KChhLCBiKSA9PiBOdW1iZXIoYi50ZXh0KSAtIE51bWJlcihhLnRleHQpKTtcbiAgICB9KSxcbiAgICB0YXAoKCkgPT4gdGhpcy52ZXJzaW9uU2VsZWN0aW9uRGlzYWJsZWQkLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IGRlY2lzaW9uWG1sJCA9IHRoaXMuZGVjaXNpb25JZCQucGlwZShcbiAgICBzd2l0Y2hNYXAoZGVjaXNpb25JZCA9PiB0aGlzLmRlY2lzaW9uU2VydmljZS5nZXREZWNpc2lvblhtbChkZWNpc2lvbklkKSksXG4gICAgdGFwKGRlY2lzaW9uWG1sID0+IHtcbiAgICAgIGlmIChkZWNpc2lvblhtbCkge1xuICAgICAgICB0aGlzLmxvYWREZWNpc2lvblhtbChkZWNpc2lvblhtbCk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY2lzaW9uU2VydmljZTogRGVjaXNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFByb3BlcnRpZXMoKTtcbiAgICB0aGlzLnNldFRhYkV2ZW50cygpO1xuICAgIHRoaXMuc2V0TW9kZWxlckV2ZW50cygpO1xuICB9XG5cbiAgc3dpdGNoVmVyc2lvbihkZWNpc2lvbklkOiBzdHJpbmcgfCBTZWxlY3RlZFZhbHVlKTogdm9pZCB7XG4gICAgaWYgKGRlY2lzaW9uSWQpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2RlY2lzaW9uLXRhYmxlcy9lZGl0JywgZGVjaXNpb25JZF0pO1xuICAgIH1cbiAgfVxuXG4gIGRlcGxveSgpOiB2b2lkIHtcbiAgICBmcm9tKHRoaXMuZG1uTW9kZWxlci5zYXZlWE1MKHtmb3JtYXQ6IHRydWV9KSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IChyZXN1bHQgYXMgYW55KS54bWwpLFxuICAgICAgICBtYXAoXG4gICAgICAgICAgeG1sID0+XG4gICAgICAgICAgICBuZXcgRmlsZShbeG1sXSwgJ2RlY2lzaW9uLmRtbicsIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQveG1sJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcChmaWxlID0+IHRoaXMuZGVjaXNpb25TZXJ2aWNlLmRlcGxveURtbihmaWxlKSksXG4gICAgICAgIHRhcChyZXMgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlcGxveWVkRGVmaW5pdGlvbnMgPSByZXMuZGVwbG95ZWREZWNpc2lvbkRlZmluaXRpb25zO1xuICAgICAgICAgIGNvbnN0IGRlcGxveWVkRGVjaXNpb25EZWZpbml0aW9uID1cbiAgICAgICAgICAgIGRlcGxveWVkRGVmaW5pdGlvbnNbT2JqZWN0LmtleXMoZGVwbG95ZWREZWZpbml0aW9ucylbMF1dO1xuICAgICAgICAgIGNvbnN0IGRlcGxveWVkSWQgPSBkZXBsb3llZERlY2lzaW9uRGVmaW5pdGlvbi5pZDtcblxuICAgICAgICAgIHRoaXMuY3JlYXRlZERlY2lzaW9uVmVyc2lvblNlbGVjdEl0ZW1zJFxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoY3JlYXRlZERlY2lzaW9uVmVyc2lvblNlbGVjdEl0ZW1zID0+IHtcbiAgICAgICAgICAgICAgaWYgKGRlcGxveWVkRGVjaXNpb25EZWZpbml0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVkRGVjaXNpb25WZXJzaW9uU2VsZWN0SXRlbXMkLm5leHQoW1xuICAgICAgICAgICAgICAgICAgLi4uY3JlYXRlZERlY2lzaW9uVmVyc2lvblNlbGVjdEl0ZW1zLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogZGVwbG95ZWRJZCxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogZGVwbG95ZWREZWNpc2lvbkRlZmluaXRpb24udmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChkZXBsb3llZElkKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN3aXRjaFZlcnNpb24oZGVwbG95ZWRJZCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZGVjaXNpb25zLmRlcGxveVN1Y2Nlc3MnKVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZGVjaXNpb25zLmRlcGxveUZhaWx1cmUnKSk7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZG93bmxvYWQoKTogdm9pZCB7XG4gICAgZnJvbSh0aGlzLmRtbk1vZGVsZXIuc2F2ZVhNTCh7Zm9ybWF0OiB0cnVlfSkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiAocmVzdWx0IGFzIGFueSkueG1sKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIHhtbCA9PlxuICAgICAgICAgICAgbmV3IEZpbGUoW3htbF0sICdkZWNpc2lvbi5kbW4nLCB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0L3htbCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICB0YXAoZmlsZSA9PiB7XG4gICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBsaW5rLmRvd25sb2FkID0gJ2RpYWdyYW0uZG1uJztcbiAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwobGluay5ocmVmKTtcbiAgICAgICAgICBsaW5rLnJlbW92ZSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzQ3JlYXRpbmcgPSB0aGlzLmlzQ3JlYXRpbmckLmdldFZhbHVlKCk7XG5cbiAgICB0aGlzLiRjb250YWluZXIgPSAkKCcuZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgIHRoaXMuJHRhYnMgPSAkKCcuZWRpdG9yLXRhYnMnKTtcbiAgICB0aGlzLmRtbk1vZGVsZXIgPSBuZXcgRG1uSlMoe1xuICAgICAgY29udGFpbmVyOiB0aGlzLiRjb250YWluZXIsXG4gICAgICBoZWlnaHQ6IDUwMCxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBrZXlib2FyZDoge1xuICAgICAgICBiaW5kVG86IHdpbmRvdyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoaXNDcmVhdGluZykge1xuICAgICAgdGhpcy5sb2FkRW1wdHlEZWNpc2lvblRhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRW1wdHlEZWNpc2lvblRhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZERlY2lzaW9uWG1sKEVNUFRZX0RFQ0lTSU9OKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiRXZlbnRzID0gKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0ICR0YWJzID0gdGhpcy4kdGFicztcbiAgICBjb25zdCBkbW5Nb2RlbGVyID0gdGhpcy5kbW5Nb2RlbGVyO1xuXG4gICAgJHRhYnMuZGVsZWdhdGUoJy50YWInLCAnY2xpY2snLCBhc3luYyBmdW5jdGlvbiAoZSkge1xuICAgICAgLy8gZ2V0IGluZGV4IG9mIHZpZXcgZnJvbSBjbGlja2VkIHRhYlxuICAgICAgY29uc3Qgdmlld0lkeCA9IHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWlkJyksIDEwKTtcblxuICAgICAgLy8gZ2V0IHZpZXcgdXNpbmcgaW5kZXhcbiAgICAgIGNvbnN0IHZpZXcgPSBkbW5Nb2RlbGVyLmdldFZpZXdzKClbdmlld0lkeF07XG5cbiAgICAgIC8vIG9wZW4gdmlld1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZG1uTW9kZWxlci5vcGVuKHZpZXcpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG9wZW5pbmcgdGFiJywgZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBwcml2YXRlIHNldE1vZGVsZXJFdmVudHMgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgJHRhYnMgPSB0aGlzLiR0YWJzO1xuICAgIGNvbnN0IENMQVNTX05BTUVTID0gdGhpcy5DTEFTU19OQU1FUztcblxuICAgIHRoaXMuZG1uTW9kZWxlci5vbigndmlld3MuY2hhbmdlZCcsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgLy8gZ2V0IHZpZXdzIGZyb20gZXZlbnRcbiAgICAgIGNvbnN0IHt2aWV3cywgYWN0aXZlVmlld30gPSBldmVudDtcblxuICAgICAgLy8gY2xlYXIgdGFic1xuICAgICAgJHRhYnMuZW1wdHkoKTtcblxuICAgICAgLy8gY3JlYXRlIGEgbmV3IHRhYiBmb3IgZWFjaCB2aWV3XG4gICAgICB2aWV3cy5mb3JFYWNoKGZ1bmN0aW9uICh2LCBpZHgpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gQ0xBU1NfTkFNRVNbdi50eXBlXTtcblxuICAgICAgICBjb25zdCB0YWIgPSAkKGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWIgJHt2ID09PSBhY3RpdmVWaWV3ID8gJ2FjdGl2ZScgOiAnJ31cIiBkYXRhLWlkPVwiJHtpZHh9XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAke3YuZWxlbWVudC5uYW1lIHx8IHYuZWxlbWVudC5pZH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGApO1xuXG4gICAgICAgICR0YWJzLmFwcGVuZCh0YWIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBsb2FkRGVjaXNpb25YbWwoZGVjaXNpb246IERlY2lzaW9uWG1sKTogdm9pZCB7XG4gICAgZnJvbSh0aGlzLmRtbk1vZGVsZXIuaW1wb3J0WE1MKGRlY2lzaW9uLmRtblhtbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldEVkaXRvcigpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5taWdyYXRlQW5kTG9hZERlY2lzaW9uWG1sKGRlY2lzaW9uKTtcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG1pZ3JhdGVBbmRMb2FkRGVjaXNpb25YbWwoZGVjaXNpb246IERlY2lzaW9uWG1sKTogdm9pZCB7XG4gICAgZnJvbShtaWdyYXRlRGlhZ3JhbShkZWNpc2lvbi5kbW5YbWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChkZWNpc2lvblhtbCA9PiB0aGlzLmRtbk1vZGVsZXIuaW1wb3J0WE1MKGRlY2lzaW9uWG1sKSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRFZGl0b3IoKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkZWNpc2lvbnMubG9hZEZhaWx1cmUnKSk7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFZGl0b3IoKTogdm9pZCB7XG4gICAgY29uc3QgZG1uTW9kZWxlciA9IHRoaXMuZG1uTW9kZWxlcjtcblxuICAgIGNvbnN0IGFjdGl2ZVZpZXcgPSBkbW5Nb2RlbGVyLmdldEFjdGl2ZVZpZXcoKTtcblxuICAgIC8vIGFwcGx5IGluaXRpYWwgbG9naWMgaW4gRFJEIHZpZXdcbiAgICBpZiAoYWN0aXZlVmlldy50eXBlID09PSAnZHJkJykge1xuICAgICAgY29uc3QgYWN0aXZlRWRpdG9yID0gZG1uTW9kZWxlci5nZXRBY3RpdmVWaWV3ZXIoKTtcblxuICAgICAgLy8gYWNjZXNzIGFjdGl2ZSBlZGl0b3IgY29tcG9uZW50c1xuICAgICAgY29uc3QgY2FudmFzID0gYWN0aXZlRWRpdG9yLmdldCgnY2FudmFzJyk7XG5cbiAgICAgIC8vIHpvb20gdG8gZml0IGZ1bGwgdmlld3BvcnRcbiAgICAgIGNhbnZhcy56b29tKCdmaXQtdmlld3BvcnQnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICBbbmdDbGFzc109XCJ7J21haW4tY29udGVudCBwdC0wJzogIWxheW91dFNlcnZpY2UuaXNGdWxsc2NyZWVufVwiXG4gIGNsYXNzPVwibWItNVwiXG4gICpuZ0lmPVwie1xuICAgIGRlY2lzaW9uWG1sOiBkZWNpc2lvblhtbCQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwieydjb250YWluZXItZmx1aWQnOiAhbGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW59XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3JlYXRlQnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydtdC00JzogIWxheW91dFNlcnZpY2UuaXNGdWxsc2NyZWVufVwiIGNsYXNzPVwibW9kZWxlciBwbC0zIHByLTMgbWItM1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpYWdyYW1IZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFncmFtXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucz5cbiAgPGRpdlxuICAgIGNsYXNzPVwidGV4dC1yaWdodFwiXG4gICAgKm5nSWY9XCIoaXNDcmVhdGluZyQgfCBhc3luYykgPT09IGZhbHNlICYmIHtzZWxlY3Rpb25JZDogc2VsZWN0aW9uSWQkIHwgYXN5bmN9IGFzIG9ic1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwIG10LW0zcHggbWItM1wiICpuZ0lmPVwib2JzLnNlbGVjdGlvbklkICYmICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc3BhY2VcIiAoY2xpY2spPVwiZG93bmxvYWQoKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1kb3dubG9hZCBtci0xXCI+PC9pPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc3BhY2VcIlxuICAgICAgICAoY2xpY2spPVwiZGVwbG95KClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J21yLTAnOiBvYnMuc2VsZWN0aW9uSWQgIT09IG51bGx9XCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktdXBsb2FkIG1yLTFcIj48L2k+e3sgJ2RlY2lzaW9ucy5kZXBsb3knIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NyZWF0ZUJ1dHRvbnM+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCIgKm5nSWY9XCJpc0NyZWF0aW5nJCB8IGFzeW5jXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBtdC1tM3B4IG1iLTNcIiAqbmdJZj1cIiFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc3BhY2VcIiAoY2xpY2spPVwiZGVwbG95KClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktdXBsb2FkIG1yLTFcIj48L2k+e3sgJ2RlY2lzaW9ucy5kZXBsb3knIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDwhLS0gICAgICA8YnV0dG9uLS0+XG4gICAgICA8IS0tICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmVyc2lvbiA9PT0gbnVsbFwiLS0+XG4gICAgICA8IS0tICAgICAgICBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zcGFjZSBtci0wXCItLT5cbiAgICAgIDwhLS0gICAgICAgIChjbGljayk9XCJyZXNldCgpXCItLT5cbiAgICAgIDwhLS0gICAgICA+LS0+XG4gICAgICA8IS0tICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1kZWxldGUgbXItMVwiPjwvaT57eyAncHJvY2Vzc01hbmFnZW1lbnQuY2xlYXInIHwgdHJhbnNsYXRlIH19LS0+XG4gICAgICA8IS0tICAgICAgPC9idXR0b24+LS0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkaWFncmFtSGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwicm93IHB0LTQgcGItMyBiZy1saWdodCBkaWFncmFtLWhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWNpc2lvblRpdGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZlcnNpb25TZWxlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZnVsbFNjcmVlblRvZ2dsZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVjaXNpb25UaXRsZT5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJkZWNpc2lvbi10aXRsZVwiPlxuICAgICAge3sgZGVjaXNpb25UaXRsZSQgfCBhc3luYyB9fVxuICAgIDwvaDI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN2ZXJzaW9uU2VsZWN0aW9uPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgKGlzQ3JlYXRpbmckIHwgYXN5bmMpID09PSBmYWxzZSAmJiB7XG4gICAgICAgICAgdmVyc2lvblNlbGVjdEl0ZW1zOiBkZWNpc2lvblZlcnNpb25TZWxlY3RJdGVtcyQgfCBhc3luYyxcbiAgICAgICAgICBkZWZhdWx0U2VsZWN0aW9uSWQ6IHNlbGVjdGlvbklkJCB8IGFzeW5jLFxuICAgICAgICAgIGRpc2FibGVkOiB2ZXJzaW9uU2VsZWN0aW9uRGlzYWJsZWQkIHwgYXN5bmNcbiAgICAgICAgfSBhcyBvYnNcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPHYtc2VsZWN0XG4gICAgICAgIG5hbWU9XCJ2ZXJzaW9uXCJcbiAgICAgICAgW3RpdGxlXT1cIidkZWNpc2lvbnMudmVyc2lvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtsb2FkaW5nXT1cIiFvYnMudmVyc2lvblNlbGVjdEl0ZW1zXCJcbiAgICAgICAgW2l0ZW1zXT1cIm9icy52ZXJzaW9uU2VsZWN0SXRlbXNcIlxuICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cIm9icy5kZWZhdWx0U2VsZWN0aW9uSWRcIlxuICAgICAgICBbd2lkdGhJblB4XT1cIjEwMFwiXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJzd2l0Y2hWZXJzaW9uKCRldmVudClcIlxuICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmdWxsU2NyZWVuVG9nZ2xlPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGZ1bGxzY3JlZW4tdG9nZ2xlIGFsaWduLWl0ZW1zLXN0YXJ0IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICA8aVxuICAgICAgKGNsaWNrKT1cImxheW91dFNlcnZpY2UudG9nZ2xlRnVsbHNjcmVlbigpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ21kaS1mdWxsc2NyZWVuJzogIWxheW91dFNlcnZpY2UuaXNGdWxsc2NyZWVuLFxuICAgICAgICAnbWRpLWZ1bGxzY3JlZW4tZXhpdCc6IGxheW91dFNlcnZpY2UuaXNGdWxsc2NyZWVuXG4gICAgICB9XCJcbiAgICAgIGNsYXNzPVwibWRpXCJcbiAgICA+PC9pPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGlhZ3JhbT5cbiAgPGRpdiBjbGFzcz1cInJvdyBiZy13aGl0ZSBkaWFncmFtIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG1uLW1vZGVsZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXN0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLXBhcmVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRvci10YWJzXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const EMPTY_DECISION = {
|
|
2
|
+
id: '',
|
|
3
|
+
dmnXml: `<?xml version="1.0" encoding="UTF-8"?>
|
|
4
|
+
<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">
|
|
5
|
+
<decision id="Decision_1e18q76" name="Decision 1">
|
|
6
|
+
<decisionTable id="DecisionTable_1apu23m">
|
|
7
|
+
<input id="Input_1">
|
|
8
|
+
<inputExpression id="InputExpression_1" typeRef="string">
|
|
9
|
+
<text></text>
|
|
10
|
+
</inputExpression>
|
|
11
|
+
</input>
|
|
12
|
+
<output id="Output_1" typeRef="string" />
|
|
13
|
+
</decisionTable>
|
|
14
|
+
</decision>
|
|
15
|
+
<dmndi:DMNDI>
|
|
16
|
+
<dmndi:DMNDiagram>
|
|
17
|
+
<dmndi:DMNShape dmnElementRef="Decision_1e18q76">
|
|
18
|
+
<dc:Bounds height="80" width="180" x="160" y="100" />
|
|
19
|
+
</dmndi:DMNShape>
|
|
20
|
+
</dmndi:DMNDiagram>
|
|
21
|
+
</dmndi:DMNDI>
|
|
22
|
+
</definitions>
|
|
23
|
+
`,
|
|
24
|
+
};
|
|
25
|
+
export { EMPTY_DECISION };
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktZGVjaXNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2RlY2lzaW9uL3NyYy9saWIvZGVjaXNpb24tbW9kZWxlci9lbXB0eS1kZWNpc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGNBQWMsR0FBZ0I7SUFDbEMsRUFBRSxFQUFFLEVBQUU7SUFDTixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBb0JUO0NBQ0EsQ0FBQztBQUVGLE9BQU8sRUFBQyxjQUFjLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVjaXNpb25YbWx9IGZyb20gJy4uL21vZGVscyc7XG5cbmNvbnN0IEVNUFRZX0RFQ0lTSU9OOiBEZWNpc2lvblhtbCA9IHtcbiAgaWQ6ICcnLFxuICBkbW5YbWw6IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz5cbjxkZWZpbml0aW9ucyB4bWxucz1cImh0dHBzOi8vd3d3Lm9tZy5vcmcvc3BlYy9ETU4vMjAxOTExMTEvTU9ERUwvXCIgeG1sbnM6ZG1uZGk9XCJodHRwczovL3d3dy5vbWcub3JnL3NwZWMvRE1OLzIwMTkxMTExL0RNTkRJL1wiIHhtbG5zOmRjPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvRE1OLzIwMTgwNTIxL0RDL1wiIGlkPVwiRGVmaW5pdGlvbnNfMWgxOTh2OVwiIG5hbWU9XCJEUkRcIiBuYW1lc3BhY2U9XCJodHRwOi8vY2FtdW5kYS5vcmcvc2NoZW1hLzEuMC9kbW5cIiB4bWxuczptb2RlbGVyPVwiaHR0cDovL2NhbXVuZGEub3JnL3NjaGVtYS9tb2RlbGVyLzEuMFwiIGV4cG9ydGVyPVwiQ2FtdW5kYSBNb2RlbGVyXCIgZXhwb3J0ZXJWZXJzaW9uPVwiNS4yLjBcIiBtb2RlbGVyOmV4ZWN1dGlvblBsYXRmb3JtPVwiQ2FtdW5kYSBDbG91ZFwiIG1vZGVsZXI6ZXhlY3V0aW9uUGxhdGZvcm1WZXJzaW9uPVwiOC4wLjBcIj5cbiAgPGRlY2lzaW9uIGlkPVwiRGVjaXNpb25fMWUxOHE3NlwiIG5hbWU9XCJEZWNpc2lvbiAxXCI+XG4gICAgPGRlY2lzaW9uVGFibGUgaWQ9XCJEZWNpc2lvblRhYmxlXzFhcHUyM21cIj5cbiAgICAgIDxpbnB1dCBpZD1cIklucHV0XzFcIj5cbiAgICAgICAgPGlucHV0RXhwcmVzc2lvbiBpZD1cIklucHV0RXhwcmVzc2lvbl8xXCIgdHlwZVJlZj1cInN0cmluZ1wiPlxuICAgICAgICAgIDx0ZXh0PjwvdGV4dD5cbiAgICAgICAgPC9pbnB1dEV4cHJlc3Npb24+XG4gICAgICA8L2lucHV0PlxuICAgICAgPG91dHB1dCBpZD1cIk91dHB1dF8xXCIgdHlwZVJlZj1cInN0cmluZ1wiIC8+XG4gICAgPC9kZWNpc2lvblRhYmxlPlxuICA8L2RlY2lzaW9uPlxuICA8ZG1uZGk6RE1OREk+XG4gICAgPGRtbmRpOkRNTkRpYWdyYW0+XG4gICAgICA8ZG1uZGk6RE1OU2hhcGUgZG1uRWxlbWVudFJlZj1cIkRlY2lzaW9uXzFlMThxNzZcIj5cbiAgICAgICAgPGRjOkJvdW5kcyBoZWlnaHQ9XCI4MFwiIHdpZHRoPVwiMTgwXCIgeD1cIjE2MFwiIHk9XCIxMDBcIiAvPlxuICAgICAgPC9kbW5kaTpETU5TaGFwZT5cbiAgICA8L2RtbmRpOkRNTkRpYWdyYW0+XG4gIDwvZG1uZGk6RE1OREk+XG48L2RlZmluaXRpb25zPlxuYCxcbn07XG5cbmV4cG9ydCB7RU1QVFlfREVDSVNJT059O1xuIl19
|
|
@@ -18,8 +18,9 @@ import { RouterModule } from '@angular/router';
|
|
|
18
18
|
import { CommonModule } from '@angular/common';
|
|
19
19
|
import { AuthGuardService } from '@valtimo/security';
|
|
20
20
|
import { DecisionComponent } from './decision.component';
|
|
21
|
-
import { DecisionDisplayComponent } from './decision-display/decision-display.component';
|
|
22
21
|
import { ROLE_ADMIN } from '@valtimo/config';
|
|
22
|
+
import { DecisionModelerComponent } from './decision-modeler/decision-modeler.component';
|
|
23
|
+
import { DecisionDisplayComponent } from './decision-display/decision-display.component';
|
|
23
24
|
import * as i0 from "@angular/core";
|
|
24
25
|
import * as i1 from "@angular/router";
|
|
25
26
|
const routes = [
|
|
@@ -35,6 +36,18 @@ const routes = [
|
|
|
35
36
|
canActivate: [AuthGuardService],
|
|
36
37
|
data: { title: 'Decision tables', roles: [ROLE_ADMIN] },
|
|
37
38
|
},
|
|
39
|
+
{
|
|
40
|
+
path: 'decision-tables/edit/:id',
|
|
41
|
+
component: DecisionModelerComponent,
|
|
42
|
+
canActivate: [AuthGuardService],
|
|
43
|
+
data: { title: 'Edit decision table', roles: [ROLE_ADMIN] },
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
path: 'decision-tables/edit/create',
|
|
47
|
+
component: DecisionModelerComponent,
|
|
48
|
+
canActivate: [AuthGuardService],
|
|
49
|
+
data: { title: 'Create decision table', roles: [ROLE_ADMIN] },
|
|
50
|
+
},
|
|
38
51
|
];
|
|
39
52
|
export class DecisionRoutingModule {
|
|
40
53
|
}
|
|
@@ -49,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
49
62
|
exports: [RouterModule],
|
|
50
63
|
}]
|
|
51
64
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXNpb24tcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2RlY2lzaW9uL3NyYy9saWIvZGVjaXNpb24tcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDOzs7QUFFdkYsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDO0tBQ3REO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFNBQVMsRUFBRSx3QkFBd0I7UUFDbkMsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDO0tBQ3REO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsMEJBQTBCO1FBQ2hDLFNBQVMsRUFBRSx3QkFBd0I7UUFDbkMsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDO0tBQzFEO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFNBQVMsRUFBRSx3QkFBd0I7UUFDbkMsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDO0tBQzVEO0NBQ0YsQ0FBQztBQU9GLE1BQU0sT0FBTyxxQkFBcUI7O21IQUFyQixxQkFBcUI7b0hBQXJCLHFCQUFxQixZQUh0QixZQUFZLDhCQUNaLFlBQVk7b0hBRVgscUJBQXFCLFlBSHZCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDNUMsWUFBWTs0RkFFWCxxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0F1dGhHdWFyZFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7RGVjaXNpb25Db21wb25lbnR9IGZyb20gJy4vZGVjaXNpb24uY29tcG9uZW50JztcbmltcG9ydCB7Uk9MRV9BRE1JTn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RGVjaXNpb25Nb2RlbGVyQ29tcG9uZW50fSBmcm9tICcuL2RlY2lzaW9uLW1vZGVsZXIvZGVjaXNpb24tbW9kZWxlci5jb21wb25lbnQnO1xuaW1wb3J0IHtEZWNpc2lvbkRpc3BsYXlDb21wb25lbnR9IGZyb20gJy4vZGVjaXNpb24tZGlzcGxheS9kZWNpc2lvbi1kaXNwbGF5LmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ2RlY2lzaW9uLXRhYmxlcycsXG4gICAgY29tcG9uZW50OiBEZWNpc2lvbkNvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZFNlcnZpY2VdLFxuICAgIGRhdGE6IHt0aXRsZTogJ0RlY2lzaW9uIHRhYmxlcycsIHJvbGVzOiBbUk9MRV9BRE1JTl19LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2RlY2lzaW9uLXRhYmxlcy86aWQnLFxuICAgIGNvbXBvbmVudDogRGVjaXNpb25EaXNwbGF5Q29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgZGF0YToge3RpdGxlOiAnRGVjaXNpb24gdGFibGVzJywgcm9sZXM6IFtST0xFX0FETUlOXX0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGVjaXNpb24tdGFibGVzL2VkaXQvOmlkJyxcbiAgICBjb21wb25lbnQ6IERlY2lzaW9uTW9kZWxlckNvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZFNlcnZpY2VdLFxuICAgIGRhdGE6IHt0aXRsZTogJ0VkaXQgZGVjaXNpb24gdGFibGUnLCByb2xlczogW1JPTEVfQURNSU5dfSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdkZWNpc2lvbi10YWJsZXMvZWRpdC9jcmVhdGUnLFxuICAgIGNvbXBvbmVudDogRGVjaXNpb25Nb2RlbGVyQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgZGF0YToge3RpdGxlOiAnQ3JlYXRlIGRlY2lzaW9uIHRhYmxlJywgcm9sZXM6IFtST0xFX0FETUlOXX0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEZWNpc2lvblJvdXRpbmdNb2R1bGUge31cbiJdfQ==
|
|
@@ -15,21 +15,26 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Component, ViewChild } from '@angular/core';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "
|
|
19
|
-
import * as i2 from "./decision-
|
|
20
|
-
import * as i3 from "
|
|
18
|
+
import * as i1 from "@valtimo/config";
|
|
19
|
+
import * as i2 from "./decision-list/decision-list.component";
|
|
20
|
+
import * as i3 from "./decision-deploy/decision-deploy.component";
|
|
21
|
+
import * as i4 from "@ngx-translate/core";
|
|
21
22
|
export class DecisionComponent {
|
|
23
|
+
constructor(configService) {
|
|
24
|
+
this.configService = configService;
|
|
25
|
+
this.experimentalEditing = this.configService.config.featureToggles.experimentalDmnEditing;
|
|
26
|
+
}
|
|
22
27
|
}
|
|
23
|
-
DecisionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
DecisionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DecisionComponent, selector: "valtimo-decision", viewQueries: [{ propertyName: "deploy", first: true, predicate: ["decisionDeploy"], descendants: true }, { propertyName: "list", first: true, predicate: ["decisionList"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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)=\"this.deploy.openModal()\" class=\"btn btn-secondary btn-space
|
|
28
|
+
DecisionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionComponent, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
DecisionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DecisionComponent, selector: "valtimo-decision", viewQueries: [{ propertyName: "deploy", first: true, predicate: ["decisionDeploy"], descendants: true }, { propertyName: "list", first: true, predicate: ["decisionList"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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)=\"this.deploy.openModal()\" class=\"btn btn-secondary btn-space\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n <!-- <button-->\n <!-- *ngIf=\"experimentalEditing\"-->\n <!-- class=\"btn btn-primary btn-space\"-->\n <!-- [routerLink]=\"'edit/create'\"-->\n <!-- >-->\n <!-- <i class=\"icon mdi mdi-plus mr-1\"></i>-->\n <!-- {{ 'Create decision table' | translate }}-->\n <!-- </button>-->\n </div>\n </div>\n <valtimo-decision-list #decisionList></valtimo-decision-list>\n <valtimo-decision-deploy #decisionDeploy></valtimo-decision-deploy>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 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"], components: [{ type: i2.DecisionListComponent, selector: "valtimo-decision-list" }, { type: i3.DecisionDeployComponent, selector: "valtimo-decision-deploy", outputs: ["deploySuccessful"] }], pipes: { "translate": i4.TranslatePipe } });
|
|
25
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionComponent, decorators: [{
|
|
26
31
|
type: Component,
|
|
27
|
-
args: [{ selector: 'valtimo-decision', template: "<!--\n ~ Copyright 2015-2020 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)=\"this.deploy.openModal()\" class=\"btn btn-secondary btn-space
|
|
28
|
-
}], propDecorators: { deploy: [{
|
|
32
|
+
args: [{ selector: 'valtimo-decision', template: "<!--\n ~ Copyright 2015-2020 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)=\"this.deploy.openModal()\" class=\"btn btn-secondary btn-space\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n <!-- <button-->\n <!-- *ngIf=\"experimentalEditing\"-->\n <!-- class=\"btn btn-primary btn-space\"-->\n <!-- [routerLink]=\"'edit/create'\"-->\n <!-- >-->\n <!-- <i class=\"icon mdi mdi-plus mr-1\"></i>-->\n <!-- {{ 'Create decision table' | translate }}-->\n <!-- </button>-->\n </div>\n </div>\n <valtimo-decision-list #decisionList></valtimo-decision-list>\n <valtimo-decision-deploy #decisionDeploy></valtimo-decision-deploy>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 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"] }]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigService }]; }, propDecorators: { deploy: [{
|
|
29
34
|
type: ViewChild,
|
|
30
35
|
args: ['decisionDeploy']
|
|
31
36
|
}], list: [{
|
|
32
37
|
type: ViewChild,
|
|
33
38
|
args: ['decisionList']
|
|
34
39
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXNpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kZWNpc2lvbi9zcmMvbGliL2RlY2lzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGVjaXNpb24vc3JjL2xpYi9kZWNpc2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDO0lBQzdGLENBQUM7OytHQUxVLGlCQUFpQjttR0FBakIsaUJBQWlCLHlQQzFCOUIsMmpEQXNDQTs0RkRaYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0Usa0JBQWtCO29HQVdDLE1BQU07c0JBQWxDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNBLElBQUk7c0JBQTlCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEZWNpc2lvbkRlcGxveUNvbXBvbmVudH0gZnJvbSAnLi9kZWNpc2lvbi1kZXBsb3kvZGVjaXNpb24tZGVwbG95LmNvbXBvbmVudCc7XG5pbXBvcnQge0RlY2lzaW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi9kZWNpc2lvbi1saXN0L2RlY2lzaW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kZWNpc2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWNpc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlY2lzaW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERlY2lzaW9uQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsRWRpdGluZyE6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5leHBlcmltZW50YWxFZGl0aW5nID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5mZWF0dXJlVG9nZ2xlcy5leHBlcmltZW50YWxEbW5FZGl0aW5nO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnZGVjaXNpb25EZXBsb3knKSBkZXBsb3k6IERlY2lzaW9uRGVwbG95Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdkZWNpc2lvbkxpc3QnKSBsaXN0OiBEZWNpc2lvbkxpc3RDb21wb25lbnQ7XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnQgcHQtMFwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbXQtbTNweCBtYi0zXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRoaXMuZGVwbG95Lm9wZW5Nb2RhbCgpXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc3BhY2VcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS11cGxvYWQgbXItMVwiPjwvaT5cbiAgICAgICAgICB7eyAnVXBsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPCEtLSAgICAgICAgPGJ1dHRvbi0tPlxuICAgICAgICA8IS0tICAgICAgICAgICpuZ0lmPVwiZXhwZXJpbWVudGFsRWRpdGluZ1wiLS0+XG4gICAgICAgIDwhLS0gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNwYWNlXCItLT5cbiAgICAgICAgPCEtLSAgICAgICAgICBbcm91dGVyTGlua109XCInZWRpdC9jcmVhdGUnXCItLT5cbiAgICAgICAgPCEtLSAgICAgICAgPi0tPlxuICAgICAgICA8IS0tICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLXBsdXMgbXItMVwiPjwvaT4tLT5cbiAgICAgICAgPCEtLSAgICAgICAgICB7eyAnQ3JlYXRlIGRlY2lzaW9uIHRhYmxlJyB8IHRyYW5zbGF0ZSB9fS0tPlxuICAgICAgICA8IS0tICAgICAgICA8L2J1dHRvbj4tLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx2YWx0aW1vLWRlY2lzaW9uLWxpc3QgI2RlY2lzaW9uTGlzdD48L3ZhbHRpbW8tZGVjaXNpb24tbGlzdD5cbiAgICA8dmFsdGltby1kZWNpc2lvbi1kZXBsb3kgI2RlY2lzaW9uRGVwbG95PjwvdmFsdGltby1kZWNpc2lvbi1kZXBsb3k+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -21,8 +21,10 @@ import { CommonModule } from '@angular/common';
|
|
|
21
21
|
import { FormsModule } from '@angular/forms';
|
|
22
22
|
import { DecisionDisplayComponent } from './decision-display/decision-display.component';
|
|
23
23
|
import { DecisionListComponent } from './decision-list/decision-list.component';
|
|
24
|
-
import { ListModule, ModalModule, WidgetModule } from '@valtimo/components';
|
|
24
|
+
import { ListModule, ModalModule, SpinnerModule, WidgetModule } from '@valtimo/components';
|
|
25
25
|
import { TranslateModule } from '@ngx-translate/core';
|
|
26
|
+
import { DecisionModelerComponent } from './decision-modeler/decision-modeler.component';
|
|
27
|
+
import { SelectModule } from '@valtimo/user-interface';
|
|
26
28
|
import * as i0 from "@angular/core";
|
|
27
29
|
export class DecisionModule {
|
|
28
30
|
}
|
|
@@ -30,13 +32,16 @@ DecisionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
30
32
|
DecisionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionModule, declarations: [DecisionComponent,
|
|
31
33
|
DecisionDeployComponent,
|
|
32
34
|
DecisionDisplayComponent,
|
|
33
|
-
DecisionListComponent
|
|
35
|
+
DecisionListComponent,
|
|
36
|
+
DecisionModelerComponent], imports: [DecisionRoutingModule,
|
|
34
37
|
WidgetModule,
|
|
35
38
|
ListModule,
|
|
36
39
|
TranslateModule,
|
|
37
40
|
ModalModule,
|
|
38
41
|
CommonModule,
|
|
39
|
-
FormsModule
|
|
42
|
+
FormsModule,
|
|
43
|
+
SelectModule,
|
|
44
|
+
SpinnerModule], exports: [DecisionComponent, DecisionModelerComponent] });
|
|
40
45
|
DecisionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionModule, imports: [[
|
|
41
46
|
DecisionRoutingModule,
|
|
42
47
|
WidgetModule,
|
|
@@ -45,6 +50,8 @@ DecisionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
45
50
|
ModalModule,
|
|
46
51
|
CommonModule,
|
|
47
52
|
FormsModule,
|
|
53
|
+
SelectModule,
|
|
54
|
+
SpinnerModule,
|
|
48
55
|
]] });
|
|
49
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionModule, decorators: [{
|
|
50
57
|
type: NgModule,
|
|
@@ -54,6 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
54
61
|
DecisionDeployComponent,
|
|
55
62
|
DecisionDisplayComponent,
|
|
56
63
|
DecisionListComponent,
|
|
64
|
+
DecisionModelerComponent,
|
|
57
65
|
],
|
|
58
66
|
imports: [
|
|
59
67
|
DecisionRoutingModule,
|
|
@@ -63,8 +71,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
63
71
|
ModalModule,
|
|
64
72
|
CommonModule,
|
|
65
73
|
FormsModule,
|
|
74
|
+
SelectModule,
|
|
75
|
+
SpinnerModule,
|
|
66
76
|
],
|
|
67
|
-
exports: [DecisionComponent],
|
|
77
|
+
exports: [DecisionComponent, DecisionModelerComponent],
|
|
68
78
|
}]
|
|
69
79
|
}] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXNpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kZWNpc2lvbi9zcmMvbGliL2RlY2lzaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUF1QnJELE1BQU0sT0FBTyxjQUFjOzs0R0FBZCxjQUFjOzZHQUFkLGNBQWMsaUJBbkJ2QixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsd0JBQXdCLGFBR3hCLHFCQUFxQjtRQUNyQixZQUFZO1FBQ1osVUFBVTtRQUNWLGVBQWU7UUFDZixXQUFXO1FBQ1gsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZO1FBQ1osYUFBYSxhQUVMLGlCQUFpQixFQUFFLHdCQUF3Qjs2R0FFMUMsY0FBYyxZQWJoQjtZQUNQLHFCQUFxQjtZQUNyQixZQUFZO1lBQ1osVUFBVTtZQUNWLGVBQWU7WUFDZixXQUFXO1lBQ1gsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osYUFBYTtTQUNkOzRGQUdVLGNBQWM7a0JBckIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLHdCQUF3QixDQUFDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEZWNpc2lvbkNvbXBvbmVudH0gZnJvbSAnLi9kZWNpc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtEZWNpc2lvblJvdXRpbmdNb2R1bGV9IGZyb20gJy4vZGVjaXNpb24tcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtEZWNpc2lvbkRlcGxveUNvbXBvbmVudH0gZnJvbSAnLi9kZWNpc2lvbi1kZXBsb3kvZGVjaXNpb24tZGVwbG95LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RGVjaXNpb25EaXNwbGF5Q29tcG9uZW50fSBmcm9tICcuL2RlY2lzaW9uLWRpc3BsYXkvZGVjaXNpb24tZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHtEZWNpc2lvbkxpc3RDb21wb25lbnR9IGZyb20gJy4vZGVjaXNpb24tbGlzdC9kZWNpc2lvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0xpc3RNb2R1bGUsIE1vZGFsTW9kdWxlLCBTcGlubmVyTW9kdWxlLCBXaWRnZXRNb2R1bGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtEZWNpc2lvbk1vZGVsZXJDb21wb25lbnR9IGZyb20gJy4vZGVjaXNpb24tbW9kZWxlci9kZWNpc2lvbi1tb2RlbGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NlbGVjdE1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vdXNlci1pbnRlcmZhY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEZWNpc2lvbkNvbXBvbmVudCxcbiAgICBEZWNpc2lvbkRlcGxveUNvbXBvbmVudCxcbiAgICBEZWNpc2lvbkRpc3BsYXlDb21wb25lbnQsXG4gICAgRGVjaXNpb25MaXN0Q29tcG9uZW50LFxuICAgIERlY2lzaW9uTW9kZWxlckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIERlY2lzaW9uUm91dGluZ01vZHVsZSxcbiAgICBXaWRnZXRNb2R1bGUsXG4gICAgTGlzdE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgICBTcGlubmVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbRGVjaXNpb25Db21wb25lbnQsIERlY2lzaW9uTW9kZWxlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIERlY2lzaW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -33,6 +33,12 @@ export class DecisionService {
|
|
|
33
33
|
getDecisions() {
|
|
34
34
|
return this.http.get(`${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/decision-definition`);
|
|
35
35
|
}
|
|
36
|
+
getDecisionById(decisionId) {
|
|
37
|
+
return this.http.get(`${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/decision-definition/${decisionId}`);
|
|
38
|
+
}
|
|
39
|
+
getLatestDecisionByKey(decisionKey) {
|
|
40
|
+
return this.http.get(`${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/decision-definition/key/${decisionKey}`);
|
|
41
|
+
}
|
|
36
42
|
getDecisionXml(decisionId) {
|
|
37
43
|
return this.http.get(`${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/decision-definition/${decisionId}/xml`);
|
|
38
44
|
}
|
|
@@ -45,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
45
51
|
providedIn: 'root',
|
|
46
52
|
}]
|
|
47
53
|
}], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.HttpClient }]; } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGVjaXNpb24vc3JjL2xpYi9kZWNpc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQVN6QyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixhQUE0QixFQUFVLElBQWdCO1FBQXRELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFTO1FBQ2pCLE1BQU0sUUFBUSxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDMUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELFFBQVEsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLCtDQUErQyxFQUNuRixRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxpREFBaUQsQ0FDdEYsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxtREFBbUQsVUFBVSxFQUFFLENBQ3BHLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsV0FBbUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyx1REFBdUQsV0FBVyxFQUFFLENBQ3pHLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQWtCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsbURBQW1ELFVBQVUsTUFBTSxDQUN4RyxDQUFDO0lBQ0osQ0FBQzs7NkdBeENVLGVBQWU7aUhBQWYsZUFBZSxjQUZkLE1BQU07NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtEZWNpc2lvbiwgRGVjaXNpb25YbWx9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERlY2lzaW9uU2VydmljZSB7XG4gIHByaXZhdGUgdmFsdGltb0FwaUNvbmZpZzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgdGhpcy52YWx0aW1vQXBpQ29uZmlnID0gY29uZmlnU2VydmljZS5jb25maWcudmFsdGltb0FwaTtcbiAgfVxuXG4gIGRlcGxveURtbihkbW46IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGRtbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdkZXBsb3ltZW50LW5hbWUnLCAnZG1uVGFibGVEZXBsb3knKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RlcGxveW1lbnQtc291cmNlJywgJ3Byb2Nlc3MgYXBwbGljYXRpb24nKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMudmFsdGltb0FwaUNvbmZpZy5lbmRwb2ludFVyaX1jYW11bmRhLXJlc3QvZW5naW5lL2RlZmF1bHQvZGVwbG95bWVudC9jcmVhdGVgLFxuICAgICAgZm9ybURhdGFcbiAgICApO1xuICB9XG5cbiAgZ2V0RGVjaXNpb25zKCk6IE9ic2VydmFibGU8RGVjaXNpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERlY2lzaW9uW10+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vQXBpQ29uZmlnLmVuZHBvaW50VXJpfWNhbXVuZGEtcmVzdC9lbmdpbmUvZGVmYXVsdC9kZWNpc2lvbi1kZWZpbml0aW9uYFxuICAgICk7XG4gIH1cblxuICBnZXREZWNpc2lvbkJ5SWQoZGVjaXNpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZWNpc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERlY2lzaW9uPihcbiAgICAgIGAke3RoaXMudmFsdGltb0FwaUNvbmZpZy5lbmRwb2ludFVyaX1jYW11bmRhLXJlc3QvZW5naW5lL2RlZmF1bHQvZGVjaXNpb24tZGVmaW5pdGlvbi8ke2RlY2lzaW9uSWR9YFxuICAgICk7XG4gIH1cblxuICBnZXRMYXRlc3REZWNpc2lvbkJ5S2V5KGRlY2lzaW9uS2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPERlY2lzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGVjaXNpb24+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vQXBpQ29uZmlnLmVuZHBvaW50VXJpfWNhbXVuZGEtcmVzdC9lbmdpbmUvZGVmYXVsdC9kZWNpc2lvbi1kZWZpbml0aW9uL2tleS8ke2RlY2lzaW9uS2V5fWBcbiAgICApO1xuICB9XG5cbiAgZ2V0RGVjaXNpb25YbWwoZGVjaXNpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZWNpc2lvblhtbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERlY2lzaW9uWG1sPihcbiAgICAgIGAke3RoaXMudmFsdGltb0FwaUNvbmZpZy5lbmRwb2ludFVyaX1jYW11bmRhLXJlc3QvZW5naW5lL2RlZmF1bHQvZGVjaXNpb24tZGVmaW5pdGlvbi8ke2RlY2lzaW9uSWR9L3htbGBcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { startWith, Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DecisionStateService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._refreshDecisions$ = new Subject();
|
|
7
|
+
}
|
|
8
|
+
get refreshDecisions$() {
|
|
9
|
+
return this._refreshDecisions$.asObservable().pipe(startWith(null));
|
|
10
|
+
}
|
|
11
|
+
refreshDecisions() {
|
|
12
|
+
this._refreshDecisions$.next(null);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
DecisionStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
+
DecisionStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionStateService, providedIn: 'root' });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DecisionStateService, decorators: [{
|
|
18
|
+
type: Injectable,
|
|
19
|
+
args: [{
|
|
20
|
+
providedIn: 'root',
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXNpb24tc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGVjaXNpb24vc3JjL2xpYi9zZXJ2aWNlcy9kZWNpc2lvbi1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBS3BELE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJbUIsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQVMzRDtJQVBDLElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDOztrSEFUVSxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBzdGFydFdpdGgsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGVjaXNpb25TdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZWZyZXNoRGVjaXNpb25zJCA9IG5ldyBTdWJqZWN0PG51bGw+KCk7XG5cbiAgZ2V0IHJlZnJlc2hEZWNpc2lvbnMkKCk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoRGVjaXNpb25zJC5hc09ic2VydmFibGUoKS5waXBlKHN0YXJ0V2l0aChudWxsKSk7XG4gIH1cblxuICByZWZyZXNoRGVjaXNpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlZnJlc2hEZWNpc2lvbnMkLm5leHQobnVsbCk7XG4gIH1cbn1cbiJdfQ==
|