@trudb/tru-common-lib 0.0.810 → 0.0.813
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.
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../services/tru-data-context";
|
|
4
|
-
import * as i2 from "../../services/tru-
|
|
5
|
-
import * as i3 from "../../
|
|
4
|
+
import * as i2 from "../../services/tru-app-environment";
|
|
5
|
+
import * as i3 from "../../services/tru-text-manager";
|
|
6
|
+
import * as i4 from "../../components/desktop/services/tru-window-event-handler";
|
|
6
7
|
export class TruDetailViewBase {
|
|
7
8
|
dataContext;
|
|
9
|
+
appEnvironment;
|
|
8
10
|
textManager;
|
|
9
11
|
windowEventHandler;
|
|
10
12
|
view;
|
|
@@ -16,11 +18,26 @@ export class TruDetailViewBase {
|
|
|
16
18
|
disableNavigationToPreviousEntity = false;
|
|
17
19
|
disableNavigationToNextEntity = false;
|
|
18
20
|
navigationIndex = 0;
|
|
19
|
-
|
|
21
|
+
recordsBeforeRevert = 0;
|
|
22
|
+
subs = [];
|
|
23
|
+
constructor(dataContext, appEnvironment, textManager, windowEventHandler) {
|
|
20
24
|
this.dataContext = dataContext;
|
|
25
|
+
this.appEnvironment = appEnvironment;
|
|
21
26
|
this.textManager = textManager;
|
|
22
27
|
this.windowEventHandler = windowEventHandler;
|
|
23
28
|
}
|
|
29
|
+
calculateNextIndex = () => {
|
|
30
|
+
let nextIndex = 0;
|
|
31
|
+
var removedRecords = this.recordsBeforeRevert - this.entities.length;
|
|
32
|
+
if (this.navigationIndex > this.entities.length - 1)
|
|
33
|
+
nextIndex = this.entities.length - 1;
|
|
34
|
+
else {
|
|
35
|
+
nextIndex = (this.navigationIndex - removedRecords);
|
|
36
|
+
}
|
|
37
|
+
if (nextIndex < 0)
|
|
38
|
+
nextIndex = 0;
|
|
39
|
+
return nextIndex;
|
|
40
|
+
};
|
|
24
41
|
onAddEntity = () => {
|
|
25
42
|
let newEntity = this.dataContext.entityAccess().add(this.entityType);
|
|
26
43
|
this.entities.splice(this.navigationIndex + 1, 0, newEntity);
|
|
@@ -48,6 +65,19 @@ export class TruDetailViewBase {
|
|
|
48
65
|
this.setNavigationIndex(index);
|
|
49
66
|
this.setEntityDisplayValues(this.tableName);
|
|
50
67
|
};
|
|
68
|
+
subscribe() {
|
|
69
|
+
this.subs.push(this.appEnvironment.onRevertComplete$.subscribe((event) => {
|
|
70
|
+
if (event?.successful && this.view.entities) {
|
|
71
|
+
this.recordsBeforeRevert = this.entities.length;
|
|
72
|
+
this.entities = this.entities.filter((e) => { return !e.entityAspect.entityState.isDetached(); });
|
|
73
|
+
this.setNavigationIndex(this.calculateNextIndex());
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
this.subs.push(this.view.onActive().subscribe((active) => {
|
|
77
|
+
if (active)
|
|
78
|
+
this.setEntityDisplayValues(this.tableName);
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
51
81
|
setNavigationIndex(index) {
|
|
52
82
|
this.navigationIndex = index;
|
|
53
83
|
this.disableNavigationToPreviousEntity = index === 0;
|
|
@@ -71,13 +101,13 @@ export class TruDetailViewBase {
|
|
|
71
101
|
this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
|
|
72
102
|
this.recordLocation = recordIndex + ' of ' + this.entities.length;
|
|
73
103
|
}
|
|
74
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, deps: [{ token: i1.TruDataContext }, { token: i2.
|
|
104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, deps: [{ token: i1.TruDataContext }, { token: i2.TruAppEnvironment }, { token: i3.TruTextManager }, { token: i4.TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
105
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruDetailViewBase, selector: "tru-detail-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""] });
|
|
76
106
|
}
|
|
77
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, decorators: [{
|
|
78
108
|
type: Component,
|
|
79
109
|
args: [{ selector: 'tru-detail-view-base', template: "" }]
|
|
80
|
-
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.
|
|
110
|
+
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruAppEnvironment }, { type: i3.TruTextManager }, { type: i4.TruWindowEventHandler }], propDecorators: { view: [{
|
|
81
111
|
type: Input
|
|
82
112
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRldGFpbC12aWV3LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2Jhc2Utdmlld3MvZGV0YWlsL3RydS1kZXRhaWwtdmlldy1iYXNlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVdqRCxNQUFNLE9BQU8saUJBQWlCO0lBYWhCO0lBQ0E7SUFDQTtJQWRILElBQUksQ0FBd0I7SUFFckMsU0FBUyxDQUFNO0lBQ2YsUUFBUSxHQUFlLEVBQUUsQ0FBQztJQUMxQixNQUFNLENBQU07SUFDWixVQUFVLENBQU07SUFDaEIsY0FBYyxHQUFrQixJQUFJLENBQUM7SUFDckMsaUNBQWlDLEdBQVksS0FBSyxDQUFDO0lBQ25ELDZCQUE2QixHQUFZLEtBQUssQ0FBQztJQUMvQyxlQUFlLEdBQVcsQ0FBQyxDQUFDO0lBRTVCLFlBQ1ksV0FBMkIsRUFDM0IsV0FBMkIsRUFDM0Isa0JBQXlDO1FBRnpDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtJQUVyRCxDQUFDO0lBRUQsV0FBVyxHQUFHLEdBQUcsRUFBRTtRQUNqQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUE7SUFFRCxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBRXJCLENBQUMsQ0FBQTtJQUVELGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDcEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQTtJQUVELGFBQWEsR0FBRyxHQUFHLEVBQUU7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUE7SUFFRCxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVELFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVELFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUE7SUFFRCxVQUFVLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtRQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUE7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELHNCQUFzQixDQUFDLFNBQWlCO1FBQ3RDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRCxJQUFJLE1BQU0sRUFBRTtZQUNWLEtBQUssR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzdDLEtBQUssSUFBSSxZQUFZLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQzFCO1lBQ0QsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDO3VHQTdFVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixzRkNYOUIsRUFBQTs7MkZEV2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLHNCQUFzQjtvSkFLdkIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0NvbmZpZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVza3RvcC9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydVRleHRNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXRleHQtbWFuYWdlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1kZXRhaWwtdmlldy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWRldGFpbC12aWV3LWJhc2UuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWRldGFpbC12aWV3LWJhc2UuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURldGFpbFZpZXdCYXNlIHtcclxuICBASW5wdXQoKSB2aWV3ITogVHJ1RGVza3RvcFZpZXdDb25maWc7XHJcblxyXG4gIHRhYmxlTmFtZTogYW55O1xyXG4gIGVudGl0aWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgZW50aXR5OiBhbnk7XHJcbiAgZW50aXR5VHlwZTogYW55O1xyXG4gIHJlY29yZExvY2F0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBkaXNhYmxlTmF2aWdhdGlvblRvUHJldmlvdXNFbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlTmF2aWdhdGlvblRvTmV4dEVudGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5hdmlnYXRpb25JbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJvdGVjdGVkIHRleHRNYW5hZ2VyOiBUcnVUZXh0TWFuYWdlcixcclxuICAgIHByb3RlY3RlZCB3aW5kb3dFdmVudEhhbmRsZXI6IFRydVdpbmRvd0V2ZW50SGFuZGxlcikge1xyXG5cclxuICB9XHJcblxyXG4gIG9uQWRkRW50aXR5ID0gKCkgPT4ge1xyXG4gICAgbGV0IG5ld0VudGl0eSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5VHlwZSk7XHJcbiAgICB0aGlzLmVudGl0aWVzLnNwbGljZSh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEsIDAsIG5ld0VudGl0eSk7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxKTtcclxuICB9XHJcblxyXG4gIG9uQ2xvbmVFbnRpdHkgPSAoKSA9PiB7XHJcblxyXG4gIH1cclxuXHJcbiAgb25EZWxldGVFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICBsZXQgY29uZmlybU1zZyA9IHRoaXMudGV4dE1hbmFnZXIuZm10RGVsZXRlQ29uZmlybWF0aW9uKHRoaXMuZW50aXR5VHlwZS5uYW1lKTtcclxuICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKFt0aGlzLmVudGl0eV0sIGNvbmZpcm1Nc2csICgpID0+IHsgcmV0dXJuIHRydWU7IH0pO1xyXG4gIH1cclxuXHJcbiAgb25GaXJzdEVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbygwKTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlvdXNFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5uYXZpZ2F0aW9uSW5kZXggLSAxKTtcclxuICB9XHJcblxyXG4gIG9uTmV4dEVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpO1xyXG4gIH1cclxuXHJcbiAgb25MYXN0RW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMSk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvID0gKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIHRoaXMuc2V0TmF2aWdhdGlvbkluZGV4KGluZGV4KTtcclxuICAgIHRoaXMuc2V0RW50aXR5RGlzcGxheVZhbHVlcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBzZXROYXZpZ2F0aW9uSW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uSW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZGlzYWJsZU5hdmlnYXRpb25Ub1ByZXZpb3VzRW50aXR5ID0gaW5kZXggPT09IDA7XHJcbiAgICB0aGlzLmRpc2FibGVOYXZpZ2F0aW9uVG9OZXh0RW50aXR5ID0gaW5kZXggPT09IHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuZW50aXR5ID0gdGhpcy5lbnRpdGllc1t0aGlzLm5hdmlnYXRpb25JbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRFbnRpdHlEaXNwbGF5VmFsdWVzKHRhYmxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdGl0bGUgPSAnJztcclxuICAgIGxldCByZWNvcmRJbmRleCA9ICc/JztcclxuICAgIGxldCBlbnRpdHkgPSB0aGlzLmVudGl0aWVzW3RoaXMubmF2aWdhdGlvbkluZGV4XTtcclxuICAgIGlmIChlbnRpdHkpIHtcclxuICAgICAgdGl0bGUgPSB0YWJsZU5hbWUgKyAnIC0gJztcclxuICAgICAgaWYgKGVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNBZGRlZCgpKSB7XHJcbiAgICAgICAgdGl0bGUgKz0gJ05ldyBSZWNvcmQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRpdGxlICs9IHRoaXMuZW50aXR5LkhJRDtcclxuICAgICAgfVxyXG4gICAgICByZWNvcmRJbmRleCA9ICh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndpbmRvd0V2ZW50SGFuZGxlci5zZXRXaW5kb3dUaXRsZSh0aGlzLnRleHRNYW5hZ2VyLmZvcm1hdFdpbmRvd1RpdGxlKHRpdGxlKSk7XHJcbiAgICB0aGlzLnJlY29yZExvY2F0aW9uID0gcmVjb3JkSW5kZXggKyAnIG9mICcgKyB0aGlzLmVudGl0aWVzLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIiwiIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRldGFpbC12aWV3LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2Jhc2Utdmlld3MvZGV0YWlsL3RydS1kZXRhaWwtdmlldy1iYXNlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFhakQsTUFBTSxPQUFPLGlCQUFpQjtJQWVoQjtJQUNBO0lBQ0E7SUFDQTtJQWpCSCxJQUFJLENBQXdCO0lBRXJDLFNBQVMsQ0FBTTtJQUNmLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFDMUIsTUFBTSxDQUFNO0lBQ1osVUFBVSxDQUFNO0lBQ2hCLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBQ3JDLGlDQUFpQyxHQUFZLEtBQUssQ0FBQztJQUNuRCw2QkFBNkIsR0FBWSxLQUFLLENBQUM7SUFDL0MsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixtQkFBbUIsR0FBVyxDQUFDLENBQUM7SUFDaEMsSUFBSSxHQUF3QixFQUFFLENBQUM7SUFFL0IsWUFDWSxXQUEyQixFQUMzQixjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixrQkFBeUM7UUFIekMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtJQUNyRCxDQUFDO0lBRU8sa0JBQWtCLEdBQUcsR0FBVyxFQUFFO1FBQ3hDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLGNBQWMsR0FBRyxJ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TTtnQkFDTCxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDMUI7WUFDRCxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3BFLENBQUM7dUdBNUdVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHNGQ2I5QixFQUFBOzsyRkRhYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0Usc0JBQXNCO29MQUt2QixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0NvbmZpZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVza3RvcC9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydVRleHRNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXRleHQtbWFuYWdlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1kZXRhaWwtdmlldy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWRldGFpbC12aWV3LWJhc2UuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWRldGFpbC12aWV3LWJhc2UuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURldGFpbFZpZXdCYXNlIHtcclxuICBASW5wdXQoKSB2aWV3ITogVHJ1RGVza3RvcFZpZXdDb25maWc7XHJcblxyXG4gIHRhYmxlTmFtZTogYW55O1xyXG4gIGVudGl0aWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgZW50aXR5OiBhbnk7XHJcbiAgZW50aXR5VHlwZTogYW55O1xyXG4gIHJlY29yZExvY2F0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBkaXNhYmxlTmF2aWdhdGlvblRvUHJldmlvdXNFbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlTmF2aWdhdGlvblRvTmV4dEVudGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5hdmlnYXRpb25JbmRleDogbnVtYmVyID0gMDtcclxuICByZWNvcmRzQmVmb3JlUmV2ZXJ0OiBudW1iZXIgPSAwO1xyXG4gIHN1YnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJvdGVjdGVkIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCxcclxuICAgIHByb3RlY3RlZCB0ZXh0TWFuYWdlcjogVHJ1VGV4dE1hbmFnZXIsXHJcbiAgICBwcm90ZWN0ZWQgd2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlTmV4dEluZGV4ID0gKCk6IG51bWJlciA9PiB7XHJcbiAgICBsZXQgbmV4dEluZGV4ID0gMDtcclxuICAgIHZhciByZW1vdmVkUmVjb3JkcyA9IHRoaXMucmVjb3Jkc0JlZm9yZVJldmVydCAtIHRoaXMuZW50aXRpZXMubGVuZ3RoO1xyXG4gICAgaWYgKHRoaXMubmF2aWdhdGlvbkluZGV4ID4gdGhpcy5lbnRpdGllcy5sZW5ndGggLSAxKVxyXG4gICAgICBuZXh0SW5kZXggPSB0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDE7XHJcbiAgICBlbHNlIHtcclxuICAgICAgbmV4dEluZGV4ID0gKHRoaXMubmF2aWdhdGlvbkluZGV4IC0gcmVtb3ZlZFJlY29yZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChuZXh0SW5kZXggPCAwKVxyXG4gICAgICBuZXh0SW5kZXggPSAwO1xyXG5cclxuICAgIHJldHVybiBuZXh0SW5kZXg7XHJcbiAgfVxyXG5cclxuICBvbkFkZEVudGl0eSA9ICgpID0+IHtcclxuICAgIGxldCBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eVR5cGUpO1xyXG4gICAgdGhpcy5lbnRpdGllcy5zcGxpY2UodGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxLCAwLCBuZXdFbnRpdHkpO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSk7XHJcbiAgfVxyXG5cclxuICBvbkNsb25lRW50aXR5ID0gKCkgPT4ge1xyXG5cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlRW50aXR5ID0gKCkgPT4ge1xyXG4gICAgbGV0IGNvbmZpcm1Nc2cgPSB0aGlzLnRleHRNYW5hZ2VyLmZtdERlbGV0ZUNvbmZpcm1hdGlvbih0aGlzLmVudGl0eVR5cGUubmFtZSk7XHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmRlbGV0ZShbdGhpcy5lbnRpdHldLCBjb25maXJtTXNnLCAoKSA9PiB7IHJldHVybiB0cnVlOyB9KTtcclxuICB9XHJcblxyXG4gIG9uRmlyc3RFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8oMCk7XHJcbiAgfVxyXG5cclxuICBvblByZXZpb3VzRW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMubmF2aWdhdGlvbkluZGV4IC0gMSk7XHJcbiAgfVxyXG5cclxuICBvbk5leHRFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxKTtcclxuICB9XHJcblxyXG4gIG9uTGFzdEVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUbyA9IChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICB0aGlzLnNldE5hdmlnYXRpb25JbmRleChpbmRleCk7XHJcbiAgICB0aGlzLnNldEVudGl0eURpc3BsYXlWYWx1ZXModGhpcy50YWJsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5hcHBFbnZpcm9ubWVudC5vblJldmVydENvbXBsZXRlJC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGV2ZW50Py5zdWNjZXNzZnVsICYmIHRoaXMudmlldy5lbnRpdGllcykge1xyXG4gICAgICAgIHRoaXMucmVjb3Jkc0JlZm9yZVJldmVydCA9IHRoaXMuZW50aXRpZXMubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuZW50aXRpZXMgPSB0aGlzLmVudGl0aWVzLmZpbHRlcigoZTogYW55KSA9PiB7IHJldHVybiAhZS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNEZXRhY2hlZCgpIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0TmF2aWdhdGlvbkluZGV4KHRoaXMuY2FsY3VsYXRlTmV4dEluZGV4KCkpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnZpZXcub25BY3RpdmUoKS5zdWJzY3JpYmUoKGFjdGl2ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoYWN0aXZlKVxyXG4gICAgICAgIHRoaXMuc2V0RW50aXR5RGlzcGxheVZhbHVlcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBzZXROYXZpZ2F0aW9uSW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uSW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZGlzYWJsZU5hdmlnYXRpb25Ub1ByZXZpb3VzRW50aXR5ID0gaW5kZXggPT09IDA7XHJcbiAgICB0aGlzLmRpc2FibGVOYXZpZ2F0aW9uVG9OZXh0RW50aXR5ID0gaW5kZXggPT09IHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuZW50aXR5ID0gdGhpcy5lbnRpdGllc1t0aGlzLm5hdmlnYXRpb25JbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRFbnRpdHlEaXNwbGF5VmFsdWVzKHRhYmxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdGl0bGUgPSAnJztcclxuICAgIGxldCByZWNvcmRJbmRleCA9ICc/JztcclxuICAgIGxldCBlbnRpdHkgPSB0aGlzLmVudGl0aWVzW3RoaXMubmF2aWdhdGlvbkluZGV4XTtcclxuICAgIGlmIChlbnRpdHkpIHtcclxuICAgICAgdGl0bGUgPSB0YWJsZU5hbWUgKyAnIC0gJztcclxuICAgICAgaWYgKGVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNBZGRlZCgpKSB7XHJcbiAgICAgICAgdGl0bGUgKz0gJ05ldyBSZWNvcmQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRpdGxlICs9IHRoaXMuZW50aXR5LkhJRDtcclxuICAgICAgfVxyXG4gICAgICByZWNvcmRJbmRleCA9ICh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndpbmRvd0V2ZW50SGFuZGxlci5zZXRXaW5kb3dUaXRsZSh0aGlzLnRleHRNYW5hZ2VyLmZvcm1hdFdpbmRvd1RpdGxlKHRpdGxlKSk7XHJcbiAgICB0aGlzLnJlY29yZExvY2F0aW9uID0gcmVjb3JkSW5kZXggKyAnIG9mICcgKyB0aGlzLmVudGl0aWVzLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIiwiIl19
|
|
@@ -1547,6 +1547,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
1547
1547
|
|
|
1548
1548
|
class TruDetailViewBase {
|
|
1549
1549
|
dataContext;
|
|
1550
|
+
appEnvironment;
|
|
1550
1551
|
textManager;
|
|
1551
1552
|
windowEventHandler;
|
|
1552
1553
|
view;
|
|
@@ -1558,11 +1559,26 @@ class TruDetailViewBase {
|
|
|
1558
1559
|
disableNavigationToPreviousEntity = false;
|
|
1559
1560
|
disableNavigationToNextEntity = false;
|
|
1560
1561
|
navigationIndex = 0;
|
|
1561
|
-
|
|
1562
|
+
recordsBeforeRevert = 0;
|
|
1563
|
+
subs = [];
|
|
1564
|
+
constructor(dataContext, appEnvironment, textManager, windowEventHandler) {
|
|
1562
1565
|
this.dataContext = dataContext;
|
|
1566
|
+
this.appEnvironment = appEnvironment;
|
|
1563
1567
|
this.textManager = textManager;
|
|
1564
1568
|
this.windowEventHandler = windowEventHandler;
|
|
1565
1569
|
}
|
|
1570
|
+
calculateNextIndex = () => {
|
|
1571
|
+
let nextIndex = 0;
|
|
1572
|
+
var removedRecords = this.recordsBeforeRevert - this.entities.length;
|
|
1573
|
+
if (this.navigationIndex > this.entities.length - 1)
|
|
1574
|
+
nextIndex = this.entities.length - 1;
|
|
1575
|
+
else {
|
|
1576
|
+
nextIndex = (this.navigationIndex - removedRecords);
|
|
1577
|
+
}
|
|
1578
|
+
if (nextIndex < 0)
|
|
1579
|
+
nextIndex = 0;
|
|
1580
|
+
return nextIndex;
|
|
1581
|
+
};
|
|
1566
1582
|
onAddEntity = () => {
|
|
1567
1583
|
let newEntity = this.dataContext.entityAccess().add(this.entityType);
|
|
1568
1584
|
this.entities.splice(this.navigationIndex + 1, 0, newEntity);
|
|
@@ -1590,6 +1606,19 @@ class TruDetailViewBase {
|
|
|
1590
1606
|
this.setNavigationIndex(index);
|
|
1591
1607
|
this.setEntityDisplayValues(this.tableName);
|
|
1592
1608
|
};
|
|
1609
|
+
subscribe() {
|
|
1610
|
+
this.subs.push(this.appEnvironment.onRevertComplete$.subscribe((event) => {
|
|
1611
|
+
if (event?.successful && this.view.entities) {
|
|
1612
|
+
this.recordsBeforeRevert = this.entities.length;
|
|
1613
|
+
this.entities = this.entities.filter((e) => { return !e.entityAspect.entityState.isDetached(); });
|
|
1614
|
+
this.setNavigationIndex(this.calculateNextIndex());
|
|
1615
|
+
}
|
|
1616
|
+
}));
|
|
1617
|
+
this.subs.push(this.view.onActive().subscribe((active) => {
|
|
1618
|
+
if (active)
|
|
1619
|
+
this.setEntityDisplayValues(this.tableName);
|
|
1620
|
+
}));
|
|
1621
|
+
}
|
|
1593
1622
|
setNavigationIndex(index) {
|
|
1594
1623
|
this.navigationIndex = index;
|
|
1595
1624
|
this.disableNavigationToPreviousEntity = index === 0;
|
|
@@ -1613,13 +1642,13 @@ class TruDetailViewBase {
|
|
|
1613
1642
|
this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
|
|
1614
1643
|
this.recordLocation = recordIndex + ' of ' + this.entities.length;
|
|
1615
1644
|
}
|
|
1616
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, deps: [{ token: TruDataContext }, { token: TruTextManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
|
|
1645
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruTextManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
|
|
1617
1646
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruDetailViewBase, selector: "tru-detail-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""] });
|
|
1618
1647
|
}
|
|
1619
1648
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, decorators: [{
|
|
1620
1649
|
type: Component,
|
|
1621
1650
|
args: [{ selector: 'tru-detail-view-base', template: "" }]
|
|
1622
|
-
}], ctorParameters: () => [{ type: TruDataContext }, { type: TruTextManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
|
|
1651
|
+
}], ctorParameters: () => [{ type: TruDataContext }, { type: TruAppEnvironment }, { type: TruTextManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
|
|
1623
1652
|
type: Input
|
|
1624
1653
|
}] } });
|
|
1625
1654
|
|