@trudb/tru-common-lib 0.0.810 → 0.0.812

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-text-manager";
5
- import * as i3 from "../../components/desktop/services/tru-window-event-handler";
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,37 @@ export class TruDetailViewBase {
16
18
  disableNavigationToPreviousEntity = false;
17
19
  disableNavigationToNextEntity = false;
18
20
  navigationIndex = 0;
19
- constructor(dataContext, textManager, windowEventHandler) {
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;
28
+ this.subs.push(this.appEnvironment.onRevertComplete$.subscribe((event) => {
29
+ if (event?.successful && this.view.entities) {
30
+ this.recordsBeforeRevert = this.entities.length;
31
+ this.entities = this.entities.filter((e) => { return !e.entityAspect.entityState.isDetached(); });
32
+ this.setNavigationIndex(this.calculateNextIndex());
33
+ }
34
+ }));
35
+ this.subs.push(this.view.onActive().subscribe((active) => {
36
+ if (active)
37
+ this.setEntityDisplayValues(this.tableName);
38
+ }));
23
39
  }
40
+ calculateNextIndex = () => {
41
+ let nextIndex = 0;
42
+ var removedRecords = this.recordsBeforeRevert - this.entities.length;
43
+ if (this.navigationIndex > this.entities.length - 1)
44
+ nextIndex = this.entities.length - 1;
45
+ else {
46
+ nextIndex = (this.navigationIndex - removedRecords);
47
+ }
48
+ if (nextIndex < 0)
49
+ nextIndex = 0;
50
+ return nextIndex;
51
+ };
24
52
  onAddEntity = () => {
25
53
  let newEntity = this.dataContext.entityAccess().add(this.entityType);
26
54
  this.entities.splice(this.navigationIndex + 1, 0, newEntity);
@@ -71,13 +99,13 @@ export class TruDetailViewBase {
71
99
  this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
72
100
  this.recordLocation = recordIndex + ' of ' + this.entities.length;
73
101
  }
74
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, deps: [{ token: i1.TruDataContext }, { token: i2.TruTextManager }, { token: i3.TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
102
+ 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
103
  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
104
  }
77
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, decorators: [{
78
106
  type: Component,
79
107
  args: [{ selector: 'tru-detail-view-base', template: "" }]
80
- }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruTextManager }, { type: i3.TruWindowEventHandler }], propDecorators: { view: [{
108
+ }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruAppEnvironment }, { type: i3.TruTextManager }, { type: i4.TruWindowEventHandler }], propDecorators: { view: [{
81
109
  type: Input
82
110
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRldGFpbC12aWV3LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2Jhc2Utdmlld3MvZGV0YWlsL3RydS1kZXRhaWwtdmlldy1iYXNlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVdqRCxNQUFNLE9BQU8saUJBQWlCO0lBYWhCO0lBQ0E7SUFDQTtJQWRILElBQUksQ0FBd0I7SUFFckMsU0FBUyxDQUFNO0lBQ2YsUUFBUSxHQUFlLEVBQUUsQ0FBQztJQUMxQixNQUFNLENBQU07SUFDWixVQUFVLENBQU07SUFDaEIsY0FBYyxHQUFrQixJQUFJLENBQUM7SUFDckMsaUNBQWlDLEdBQVksS0FBSyxDQUFDO0lBQ25ELDZCQUE2QixHQUFZLEtBQUssQ0FBQztJQUMvQyxlQUFlLEdBQVcsQ0FBQyxDQUFDO0lBRTVCLFlBQ1ksV0FBMkIsRUFDM0IsV0FBMkIsRUFDM0Isa0JBQXlDO1FBRnpDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtJQUVyRCxDQUFDO0lBRUQsV0FBVyxHQUFHLEdBQUcsRUFBRTtRQUNqQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUs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Q0FBQztJQUNwRSxDQUFDO3VHQTdFVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixzRkNYOUIsRUFBQTs7MkZEV2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLHNCQUFzQjtvSkFLdkIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVEZXNrdG9wVmlld0NvbmZpZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVza3RvcC9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydVRleHRNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXRleHQtbWFuYWdlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1kZXRhaWwtdmlldy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWRldGFpbC12aWV3LWJhc2UuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWRldGFpbC12aWV3LWJhc2UuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURldGFpbFZpZXdCYXNlIHtcclxuICBASW5wdXQoKSB2aWV3ITogVHJ1RGVza3RvcFZpZXdDb25maWc7XHJcblxyXG4gIHRhYmxlTmFtZTogYW55O1xyXG4gIGVudGl0aWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgZW50aXR5OiBhbnk7XHJcbiAgZW50aXR5VHlwZTogYW55O1xyXG4gIHJlY29yZExvY2F0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBkaXNhYmxlTmF2aWdhdGlvblRvUHJldmlvdXNFbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlTmF2aWdhdGlvblRvTmV4dEVudGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5hdmlnYXRpb25JbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJvdGVjdGVkIHRleHRNYW5hZ2VyOiBUcnVUZXh0TWFuYWdlcixcclxuICAgIHByb3RlY3RlZCB3aW5kb3dFdmVudEhhbmRsZXI6IFRydVdpbmRvd0V2ZW50SGFuZGxlcikge1xyXG5cclxuICB9XHJcblxyXG4gIG9uQWRkRW50aXR5ID0gKCkgPT4ge1xyXG4gICAgbGV0IG5ld0VudGl0eSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5VHlwZSk7XHJcbiAgICB0aGlzLmVudGl0aWVzLnNwbGljZSh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEsIDAsIG5ld0VudGl0eSk7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxKTtcclxuICB9XHJcblxyXG4gIG9uQ2xvbmVFbnRpdHkgPSAoKSA9PiB7XHJcblxyXG4gIH1cclxuXHJcbiAgb25EZWxldGVFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICBsZXQgY29uZmlybU1zZyA9IHRoaXMudGV4dE1hbmFnZXIuZm10RGVsZXRlQ29uZmlybWF0aW9uKHRoaXMuZW50aXR5VHlwZS5uYW1lKTtcclxuICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKFt0aGlzLmVudGl0eV0sIGNvbmZpcm1Nc2csICgpID0+IHsgcmV0dXJuIHRydWU7IH0pO1xyXG4gIH1cclxuXHJcbiAgb25GaXJzdEVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbygwKTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlvdXNFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5uYXZpZ2F0aW9uSW5kZXggLSAxKTtcclxuICB9XHJcblxyXG4gIG9uTmV4dEVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpO1xyXG4gIH1cclxuXHJcbiAgb25MYXN0RW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMSk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvID0gKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIHRoaXMuc2V0TmF2aWdhdGlvbkluZGV4KGluZGV4KTtcclxuICAgIHRoaXMuc2V0RW50aXR5RGlzcGxheVZhbHVlcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBzZXROYXZpZ2F0aW9uSW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uSW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZGlzYWJsZU5hdmlnYXRpb25Ub1ByZXZpb3VzRW50aXR5ID0gaW5kZXggPT09IDA7XHJcbiAgICB0aGlzLmRpc2FibGVOYXZpZ2F0aW9uVG9OZXh0RW50aXR5ID0gaW5kZXggPT09IHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuZW50aXR5ID0gdGhpcy5lbnRpdGllc1t0aGlzLm5hdmlnYXRpb25JbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRFbnRpdHlEaXNwbGF5VmFsdWVzKHRhYmxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdGl0bGUgPSAnJztcclxuICAgIGxldCByZWNvcmRJbmRleCA9ICc/JztcclxuICAgIGxldCBlbnRpdHkgPSB0aGlzLmVudGl0aWVzW3RoaXMubmF2aWdhdGlvbkluZGV4XTtcclxuICAgIGlmIChlbnRpdHkpIHtcclxuICAgICAgdGl0bGUgPSB0YWJsZU5hbWUgKyAnIC0gJztcclxuICAgICAgaWYgKGVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNBZGRlZCgpKSB7XHJcbiAgICAgICAgdGl0bGUgKz0gJ05ldyBSZWNvcmQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRpdGxlICs9IHRoaXMuZW50aXR5LkhJRDtcclxuICAgICAgfVxyXG4gICAgICByZWNvcmRJbmRleCA9ICh0aGlzLm5hdmlnYXRpb25JbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndpbmRvd0V2ZW50SGFuZGxlci5zZXRXaW5kb3dUaXRsZSh0aGlzLnRleHRNYW5hZ2VyLmZvcm1hdFdpbmRvd1RpdGxlKHRpdGxlKSk7XHJcbiAgICB0aGlzLnJlY29yZExvY2F0aW9uID0gcmVjb3JkSW5kZXggKyAnIG9mICcgKyB0aGlzLmVudGl0aWVzLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIiwiIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRldGFpbC12aWV3LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2Jhc2Utdmlld3MvZGV0YWlsL3RydS1kZXRhaWwtdmlldy1iYXNlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFhakQsTUFBTSxPQUFPLGlCQUFpQjtJQWVoQjtJQUNBO0lBQ0E7SUFDQTtJQWpCSCxJQUFJLENBQXdCO0lBRXJDLFNBQVMsQ0FBTTtJQUNmLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFDMUIsTUFBTSxDQUFNO0lBQ1osVUFBVSxDQUFNO0lBQ2hCLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBQ3JDLGlDQUFpQyxHQUFZLEtBQUssQ0FBQztJQUNuRCw2QkFBNkIsR0FBWSxLQUFLLENBQUM7SUFDL0MsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixtQkFBbUIsR0FBVyxDQUFDLENBQUM7SUFDaEMsSUFBSSxHQUF3QixFQUFFLENBQUM7SUFFL0IsWUFDWSxXQUEyQixFQUMzQixjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixrQkFBeUM7UUFIekMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFB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QUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQzFCO1lBQ0QsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDO3VHQXpHVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixzRkNiOUIsRUFBQTs7MkZEYWEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLHNCQUFzQjtvTEFLdkIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1RGVza3RvcFZpZXdDb25maWcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Rlc2t0b3AvY2xhc3Nlcy90cnUtZGVza3RvcC12aWV3LWNvbmZpZyc7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVza3RvcC9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVUZXh0TWFuYWdlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS10ZXh0LW1hbmFnZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtZGV0YWlsLXZpZXctYmFzZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kZXRhaWwtdmlldy1iYXNlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1kZXRhaWwtdmlldy1iYXNlLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVEZXRhaWxWaWV3QmFzZSB7XHJcbiAgQElucHV0KCkgdmlldyE6IFRydURlc2t0b3BWaWV3Q29uZmlnO1xyXG5cclxuICB0YWJsZU5hbWU6IGFueTtcclxuICBlbnRpdGllczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGVudGl0eTogYW55O1xyXG4gIGVudGl0eVR5cGU6IGFueTtcclxuICByZWNvcmRMb2NhdGlvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZGlzYWJsZU5hdmlnYXRpb25Ub1ByZXZpb3VzRW50aXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZU5hdmlnYXRpb25Ub05leHRFbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBuYXZpZ2F0aW9uSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgcmVjb3Jkc0JlZm9yZVJldmVydDogbnVtYmVyID0gMDtcclxuICBzdWJzOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByb3RlY3RlZCBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcm90ZWN0ZWQgdGV4dE1hbmFnZXI6IFRydVRleHRNYW5hZ2VyLFxyXG4gICAgcHJvdGVjdGVkIHdpbmRvd0V2ZW50SGFuZGxlcjogVHJ1V2luZG93RXZlbnRIYW5kbGVyKSB7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmFwcEVudmlyb25tZW50Lm9uUmV2ZXJ0Q29tcGxldGUkLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQ/LnN1Y2Nlc3NmdWwgJiYgdGhpcy52aWV3LmVudGl0aWVzKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzQmVmb3JlUmV2ZXJ0ID0gdGhpcy5lbnRpdGllcy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKChlOiBhbnkpID0+IHsgcmV0dXJuICFlLmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZS5pc0RldGFjaGVkKCkgfSk7XHJcbiAgICAgICAgdGhpcy5zZXROYXZpZ2F0aW9uSW5kZXgodGhpcy5jYWxjdWxhdGVOZXh0SW5kZXgoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMudmlldy5vbkFjdGl2ZSgpLnN1YnNjcmliZSgoYWN0aXZlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChhY3RpdmUpXHJcbiAgICAgICAgdGhpcy5zZXRFbnRpdHlEaXNwbGF5VmFsdWVzKHRoaXMudGFibGVOYW1lKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlTmV4dEluZGV4ID0gKCk6IG51bWJlciA9PiB7XHJcbiAgICBsZXQgbmV4dEluZGV4ID0gMDtcclxuICAgIHZhciByZW1vdmVkUmVjb3JkcyA9IHRoaXMucmVjb3Jkc0JlZm9yZVJldmVydCAtIHRoaXMuZW50aXRpZXMubGVuZ3RoO1xyXG4gICAgaWYgKHRoaXMubmF2aWdhdGlvbkluZGV4ID4gdGhpcy5lbnRpdGllcy5sZW5ndGggLSAxKVxyXG4gICAgICBuZXh0SW5kZXggPSB0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDE7XHJcbiAgICBlbHNlIHtcclxuICAgICAgbmV4dEluZGV4ID0gKHRoaXMubmF2aWdhdGlvbkluZGV4IC0gcmVtb3ZlZFJlY29yZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChuZXh0SW5kZXggPCAwKVxyXG4gICAgICBuZXh0SW5kZXggPSAwO1xyXG5cclxuICAgIHJldHVybiBuZXh0SW5kZXg7XHJcbiAgfVxyXG5cclxuICBvbkFkZEVudGl0eSA9ICgpID0+IHtcclxuICAgIGxldCBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eVR5cGUpO1xyXG4gICAgdGhpcy5lbnRpdGllcy5zcGxpY2UodGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxLCAwLCBuZXdFbnRpdHkpO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMubmF2aWdhdGlvbkluZGV4ICsgMSk7XHJcbiAgfVxyXG5cclxuICBvbkNsb25lRW50aXR5ID0gKCkgPT4ge1xyXG5cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlRW50aXR5ID0gKCkgPT4ge1xyXG4gICAgbGV0IGNvbmZpcm1Nc2cgPSB0aGlzLnRleHRNYW5hZ2VyLmZtdERlbGV0ZUNvbmZpcm1hdGlvbih0aGlzLmVudGl0eVR5cGUubmFtZSk7XHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmRlbGV0ZShbdGhpcy5lbnRpdHldLCBjb25maXJtTXNnLCAoKSA9PiB7IHJldHVybiB0cnVlOyB9KTtcclxuICB9XHJcblxyXG4gIG9uRmlyc3RFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8oMCk7XHJcbiAgfVxyXG5cclxuICBvblByZXZpb3VzRW50aXR5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKHRoaXMubmF2aWdhdGlvbkluZGV4IC0gMSk7XHJcbiAgfVxyXG5cclxuICBvbk5leHRFbnRpdHkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxKTtcclxuICB9XHJcblxyXG4gIG9uTGFzdEVudGl0eSA9ICgpID0+IHtcclxuICAgIHRoaXMubmF2aWdhdGVUbyh0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUbyA9IChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICB0aGlzLnNldE5hdmlnYXRpb25JbmRleChpbmRleCk7XHJcbiAgICB0aGlzLnNldEVudGl0eURpc3BsYXlWYWx1ZXModGhpcy50YWJsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0TmF2aWdhdGlvbkluZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMubmF2aWdhdGlvbkluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmRpc2FibGVOYXZpZ2F0aW9uVG9QcmV2aW91c0VudGl0eSA9IGluZGV4ID09PSAwO1xyXG4gICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvblRvTmV4dEVudGl0eSA9IGluZGV4ID09PSB0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDE7XHJcbiAgICB0aGlzLmVudGl0eSA9IHRoaXMuZW50aXRpZXNbdGhpcy5uYXZpZ2F0aW9uSW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgc2V0RW50aXR5RGlzcGxheVZhbHVlcyh0YWJsZU5hbWU6IHN0cmluZykge1xyXG4gICAgbGV0IHRpdGxlID0gJyc7XHJcbiAgICBsZXQgcmVjb3JkSW5kZXggPSAnPyc7XHJcbiAgICBsZXQgZW50aXR5ID0gdGhpcy5lbnRpdGllc1t0aGlzLm5hdmlnYXRpb25JbmRleF07XHJcbiAgICBpZiAoZW50aXR5KSB7XHJcbiAgICAgIHRpdGxlID0gdGFibGVOYW1lICsgJyAtICc7XHJcbiAgICAgIGlmIChlbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzQWRkZWQoKSkge1xyXG4gICAgICAgIHRpdGxlICs9ICdOZXcgUmVjb3JkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aXRsZSArPSB0aGlzLmVudGl0eS5ISUQ7XHJcbiAgICAgIH1cclxuICAgICAgcmVjb3JkSW5kZXggPSAodGhpcy5uYXZpZ2F0aW9uSW5kZXggKyAxKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy53aW5kb3dFdmVudEhhbmRsZXIuc2V0V2luZG93VGl0bGUodGhpcy50ZXh0TWFuYWdlci5mb3JtYXRXaW5kb3dUaXRsZSh0aXRsZSkpO1xyXG4gICAgdGhpcy5yZWNvcmRMb2NhdGlvbiA9IHJlY29yZEluZGV4ICsgJyBvZiAnICsgdGhpcy5lbnRpdGllcy5sZW5ndGg7XHJcbiAgfVxyXG59XHJcbiIsIiJdfQ==
@@ -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,37 @@ class TruDetailViewBase {
1558
1559
  disableNavigationToPreviousEntity = false;
1559
1560
  disableNavigationToNextEntity = false;
1560
1561
  navigationIndex = 0;
1561
- constructor(dataContext, textManager, windowEventHandler) {
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;
1569
+ this.subs.push(this.appEnvironment.onRevertComplete$.subscribe((event) => {
1570
+ if (event?.successful && this.view.entities) {
1571
+ this.recordsBeforeRevert = this.entities.length;
1572
+ this.entities = this.entities.filter((e) => { return !e.entityAspect.entityState.isDetached(); });
1573
+ this.setNavigationIndex(this.calculateNextIndex());
1574
+ }
1575
+ }));
1576
+ this.subs.push(this.view.onActive().subscribe((active) => {
1577
+ if (active)
1578
+ this.setEntityDisplayValues(this.tableName);
1579
+ }));
1565
1580
  }
1581
+ calculateNextIndex = () => {
1582
+ let nextIndex = 0;
1583
+ var removedRecords = this.recordsBeforeRevert - this.entities.length;
1584
+ if (this.navigationIndex > this.entities.length - 1)
1585
+ nextIndex = this.entities.length - 1;
1586
+ else {
1587
+ nextIndex = (this.navigationIndex - removedRecords);
1588
+ }
1589
+ if (nextIndex < 0)
1590
+ nextIndex = 0;
1591
+ return nextIndex;
1592
+ };
1566
1593
  onAddEntity = () => {
1567
1594
  let newEntity = this.dataContext.entityAccess().add(this.entityType);
1568
1595
  this.entities.splice(this.navigationIndex + 1, 0, newEntity);
@@ -1613,13 +1640,13 @@ class TruDetailViewBase {
1613
1640
  this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
1614
1641
  this.recordLocation = recordIndex + ' of ' + this.entities.length;
1615
1642
  }
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 });
1643
+ 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
1644
  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
1645
  }
1619
1646
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruDetailViewBase, decorators: [{
1620
1647
  type: Component,
1621
1648
  args: [{ selector: 'tru-detail-view-base', template: "" }]
1622
- }], ctorParameters: () => [{ type: TruDataContext }, { type: TruTextManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
1649
+ }], ctorParameters: () => [{ type: TruDataContext }, { type: TruAppEnvironment }, { type: TruTextManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
1623
1650
  type: Input
1624
1651
  }] } });
1625
1652