@universis/ngx-tables 0.8.1 → 0.8.2

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,15 +1,27 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { ActivatedRoute, NavigationStart, Router } from '@angular/router';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { skip } from 'rxjs/operators';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "@angular/router";
5
7
  export class ActivatedTableService {
6
8
  constructor(_router, _activatedRoute) {
7
9
  this._router = _router;
8
10
  this._activatedRoute = _activatedRoute;
11
+ /**
12
+ * Get the last table that was set as active
13
+ * Note: Emitted value may be null (e.g. reset on route changes)
14
+ */
15
+ this.lastActiveTable = new BehaviorSubject(null);
16
+ /**
17
+ * Omit the last emitted value to observe only new active table changes
18
+ * Note: Emitted value may be null (e.g. reset on route changes)
19
+ */
20
+ this.nextActiveTable = this.lastActiveTable.pipe(skip(1));
9
21
  _router.events.forEach((event) => {
10
22
  if (event instanceof NavigationStart) {
11
23
  if (this._activeTable) {
12
- this._activeTable = null;
24
+ this.activeTable = null;
13
25
  }
14
26
  }
15
27
  });
@@ -19,6 +31,8 @@ export class ActivatedTableService {
19
31
  }
20
32
  set activeTable(tableComponent) {
21
33
  this._activeTable = tableComponent;
34
+ // provide change to observers
35
+ this.lastActiveTable.next(this._activeTable);
22
36
  }
23
37
  }
24
38
  ActivatedTableService.decorators = [
@@ -33,4 +47,4 @@ ActivatedTableService.ctorParameters = () => [
33
47
  ];
34
48
  ActivatedTableService.ngInjectableDef = i0.defineInjectable({ factory: function ActivatedTableService_Factory() { return new ActivatedTableService(i0.inject(i1.Router), i0.inject(i1.ActivatedRoute)); }, token: ActivatedTableService, providedIn: "root" });
35
49
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLmFjdGl2YXRlZC10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL3RhYmxlcy5hY3RpdmF0ZWQtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxjQUFjLEVBQWlCLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTXZGLE1BQU07SUFFSixZQUFvQixPQUFlLEVBQVUsZUFBK0I7UUFBeEQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMxRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9CLElBQUssS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDckMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztpQkFDMUI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsY0FBc0M7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUM7SUFDckMsQ0FBQzs7O1lBckJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUx1RCxNQUFNO1lBQXRELGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge0FkdmFuY2VkVGFibGVDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aXZhdGVkVGFibGVTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9hY3RpdmVUYWJsZTogQWR2YW5jZWRUYWJsZUNvbXBvbmVudDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBfcm91dGVyLmV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xyXG4gICAgICBpZiAoIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZVRhYmxlKSB7XHJcbiAgICAgICAgICB0aGlzLl9hY3RpdmVUYWJsZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVUYWJsZSgpOiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJsZTtcclxuICB9XHJcblxyXG4gIHNldCBhY3RpdmVUYWJsZSh0YWJsZUNvbXBvbmVudDogQWR2YW5jZWRUYWJsZUNvbXBvbmVudCkge1xyXG4gICAgdGhpcy5fYWN0aXZlVGFibGUgPSB0YWJsZUNvbXBvbmVudDtcclxuICB9XHJcbn1cclxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLmFjdGl2YXRlZC10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL3RhYmxlcy5hY3RpdmF0ZWQtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLdEMsTUFBTTtJQWVKLFlBQW9CLE9BQWUsRUFBVSxlQUErQjtRQUF4RCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBYjVFOzs7V0FHRztRQUNhLG9CQUFlLEdBQ29CLElBQUksZUFBZSxDQUFnQyxJQUFJLENBQUMsQ0FBQztRQUM1Rzs7O1dBR0c7UUFDYSxvQkFBZSxHQUNlLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRy9FLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0IsSUFBSyxLQUFLLFlBQVksZUFBZSxFQUFFO2dCQUNyQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxjQUE2QztRQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQztRQUNuQyw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7OztZQXBDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFQeUMsTUFBTTtZQUF2QyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBZHZhbmNlZFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aXZhdGVkVGFibGVTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9hY3RpdmVUYWJsZTogQWR2YW5jZWRUYWJsZUNvbXBvbmVudDtcclxuICAvKipcclxuICAgKiBHZXQgdGhlIGxhc3QgdGFibGUgdGhhdCB3YXMgc2V0IGFzIGFjdGl2ZVxyXG4gICAqIE5vdGU6IEVtaXR0ZWQgdmFsdWUgbWF5IGJlIG51bGwgKGUuZy4gcmVzZXQgb24gcm91dGUgY2hhbmdlcylcclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgbGFzdEFjdGl2ZVRhYmxlOlxyXG4gICAgQmVoYXZpb3JTdWJqZWN0PEFkdmFuY2VkVGFibGVDb21wb25lbnQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWR2YW5jZWRUYWJsZUNvbXBvbmVudCB8IG51bGw+KG51bGwpO1xyXG4gIC8qKlxyXG4gICAqIE9taXQgdGhlIGxhc3QgZW1pdHRlZCB2YWx1ZSB0byBvYnNlcnZlIG9ubHkgbmV3IGFjdGl2ZSB0YWJsZSBjaGFuZ2VzXHJcbiAgICogTm90ZTogRW1pdHRlZCB2YWx1ZSBtYXkgYmUgbnVsbCAoZS5nLiByZXNldCBvbiByb3V0ZSBjaGFuZ2VzKVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBuZXh0QWN0aXZlVGFibGU6XHJcbiAgICBPYnNlcnZhYmxlPEFkdmFuY2VkVGFibGVDb21wb25lbnQgfCBudWxsPiA9IHRoaXMubGFzdEFjdGl2ZVRhYmxlLnBpcGUoc2tpcCgxKSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyLCBwcml2YXRlIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgIF9yb3V0ZXIuZXZlbnRzLmZvckVhY2goKGV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICggZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcclxuICAgICAgICBpZiAodGhpcy5fYWN0aXZlVGFibGUpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlVGFibGUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlVGFibGUoKTogQWR2YW5jZWRUYWJsZUNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGFibGU7XHJcbiAgfVxyXG5cclxuICBzZXQgYWN0aXZlVGFibGUodGFibGVDb21wb25lbnQ6IEFkdmFuY2VkVGFibGVDb21wb25lbnQgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9hY3RpdmVUYWJsZSA9IHRhYmxlQ29tcG9uZW50O1xyXG4gICAgLy8gcHJvdmlkZSBjaGFuZ2UgdG8gb2JzZXJ2ZXJzXHJcbiAgICB0aGlzLmxhc3RBY3RpdmVUYWJsZS5uZXh0KHRoaXMuX2FjdGl2ZVRhYmxlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,5 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { ActivatedRoute, NavigationStart, Router } from '@angular/router';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { skip } from 'rxjs/operators';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "@angular/router";
5
7
  var ActivatedTableService = /** @class */ (function () {
@@ -7,10 +9,20 @@ var ActivatedTableService = /** @class */ (function () {
7
9
  var _this = this;
8
10
  this._router = _router;
9
11
  this._activatedRoute = _activatedRoute;
12
+ /**
13
+ * Get the last table that was set as active
14
+ * Note: Emitted value may be null (e.g. reset on route changes)
15
+ */
16
+ this.lastActiveTable = new BehaviorSubject(null);
17
+ /**
18
+ * Omit the last emitted value to observe only new active table changes
19
+ * Note: Emitted value may be null (e.g. reset on route changes)
20
+ */
21
+ this.nextActiveTable = this.lastActiveTable.pipe(skip(1));
10
22
  _router.events.forEach(function (event) {
11
23
  if (event instanceof NavigationStart) {
12
24
  if (_this._activeTable) {
13
- _this._activeTable = null;
25
+ _this.activeTable = null;
14
26
  }
15
27
  }
16
28
  });
@@ -21,6 +33,8 @@ var ActivatedTableService = /** @class */ (function () {
21
33
  },
22
34
  set: function (tableComponent) {
23
35
  this._activeTable = tableComponent;
36
+ // provide change to observers
37
+ this.lastActiveTable.next(this._activeTable);
24
38
  },
25
39
  enumerable: true,
26
40
  configurable: true
@@ -40,4 +54,4 @@ var ActivatedTableService = /** @class */ (function () {
40
54
  }());
41
55
  export { ActivatedTableService };
42
56
 
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLmFjdGl2YXRlZC10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL3RhYmxlcy5hY3RpdmF0ZWQtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxjQUFjLEVBQWlCLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBR3ZGO0lBS0UsK0JBQW9CLE9BQWUsRUFBVSxlQUErQjtRQUE1RSxpQkFRQztRQVJtQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQzFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUMzQixJQUFLLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ3JDLElBQUksS0FBSSxDQUFDLFlBQVksRUFBRTtvQkFDckIsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7aUJBQzFCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBSSw4Q0FBVzthQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNCLENBQUM7YUFFRCxVQUFnQixjQUFzQztZQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQztRQUNyQyxDQUFDOzs7T0FKQTs7Z0JBakJGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTHVELE1BQU07Z0JBQXRELGNBQWM7OztnQ0FEdEI7Q0EwQkMsQUF0QkQsSUFzQkM7U0FuQlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtBZHZhbmNlZFRhYmxlQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2YXRlZFRhYmxlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfYWN0aXZlVGFibGU6IEFkdmFuY2VkVGFibGVDb21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgX3JvdXRlci5ldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVUYWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5fYWN0aXZlVGFibGUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlVGFibGUoKTogQWR2YW5jZWRUYWJsZUNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGFibGU7XHJcbiAgfVxyXG5cclxuICBzZXQgYWN0aXZlVGFibGUodGFibGVDb21wb25lbnQ6IEFkdmFuY2VkVGFibGVDb21wb25lbnQpIHtcclxuICAgIHRoaXMuX2FjdGl2ZVRhYmxlID0gdGFibGVDb21wb25lbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLmFjdGl2YXRlZC10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL3RhYmxlcy5hY3RpdmF0ZWQtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFdEM7SUFrQkUsK0JBQW9CLE9BQWUsRUFBVSxlQUErQjtRQUE1RSxpQkFRQztRQVJtQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBYjVFOzs7V0FHRztRQUNhLG9CQUFlLEdBQ29CLElBQUksZUFBZSxDQUFnQyxJQUFJLENBQUMsQ0FBQztRQUM1Rzs7O1dBR0c7UUFDYSxvQkFBZSxHQUNlLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRy9FLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUMzQixJQUFLLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ3JDLElBQUksS0FBSSxDQUFDLFlBQVksRUFBRTtvQkFDckIsS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBSSw4Q0FBVzthQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNCLENBQUM7YUFFRCxVQUFnQixjQUE2QztZQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQztZQUNuQyw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUM7OztPQU5BOztnQkE5QkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFQeUMsTUFBTTtnQkFBdkMsY0FBYzs7O2dDQUR2QjtDQTJDQyxBQXJDRCxJQXFDQztTQWxDWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFkdmFuY2VkVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmF0ZWRUYWJsZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2FjdGl2ZVRhYmxlOiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgbGFzdCB0YWJsZSB0aGF0IHdhcyBzZXQgYXMgYWN0aXZlXHJcbiAgICogTm90ZTogRW1pdHRlZCB2YWx1ZSBtYXkgYmUgbnVsbCAoZS5nLiByZXNldCBvbiByb3V0ZSBjaGFuZ2VzKVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBsYXN0QWN0aXZlVGFibGU6XHJcbiAgICBCZWhhdmlvclN1YmplY3Q8QWR2YW5jZWRUYWJsZUNvbXBvbmVudCB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBZHZhbmNlZFRhYmxlQ29tcG9uZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgLyoqXHJcbiAgICogT21pdCB0aGUgbGFzdCBlbWl0dGVkIHZhbHVlIHRvIG9ic2VydmUgb25seSBuZXcgYWN0aXZlIHRhYmxlIGNoYW5nZXNcclxuICAgKiBOb3RlOiBFbWl0dGVkIHZhbHVlIG1heSBiZSBudWxsIChlLmcuIHJlc2V0IG9uIHJvdXRlIGNoYW5nZXMpXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IG5leHRBY3RpdmVUYWJsZTpcclxuICAgIE9ic2VydmFibGU8QWR2YW5jZWRUYWJsZUNvbXBvbmVudCB8IG51bGw+ID0gdGhpcy5sYXN0QWN0aXZlVGFibGUucGlwZShza2lwKDEpKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgX3JvdXRlci5ldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVUYWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVUYWJsZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVUYWJsZSgpOiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVUYWJsZTtcclxuICB9XHJcblxyXG4gIHNldCBhY3RpdmVUYWJsZSh0YWJsZUNvbXBvbmVudDogQWR2YW5jZWRUYWJsZUNvbXBvbmVudCB8IG51bGwpIHtcclxuICAgIHRoaXMuX2FjdGl2ZVRhYmxlID0gdGFibGVDb21wb25lbnQ7XHJcbiAgICAvLyBwcm92aWRlIGNoYW5nZSB0byBvYnNlcnZlcnNcclxuICAgIHRoaXMubGFzdEFjdGl2ZVRhYmxlLm5leHQodGhpcy5fYWN0aXZlVGFibGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -24,7 +24,7 @@ import { template, at, cloneDeep } from 'lodash';
24
24
  import { Injectable, Directive, Optional, Input, Output, EventEmitter, Pipe, Component, ViewChild, ViewEncapsulation, ElementRef, ChangeDetectorRef, NgModule, CUSTOM_ELEMENTS_SCHEMA, defineInjectable, inject, HostListener, InjectionToken, Inject, Injector, ChangeDetectionStrategy } from '@angular/core';
25
25
  import { ActivatedRoute, Router, NavigationStart, NavigationEnd, RouterModule } from '@angular/router';
26
26
  import { createFeatureSelector, createSelector, select, Store } from '@ngrx/store';
27
- import { first, filter } from 'rxjs/operators';
27
+ import { skip, first, filter } from 'rxjs/operators';
28
28
 
29
29
  class AdvancedColumnFormatter {
30
30
  static template(expr) {
@@ -709,10 +709,20 @@ class ActivatedTableService {
709
709
  constructor(_router, _activatedRoute) {
710
710
  this._router = _router;
711
711
  this._activatedRoute = _activatedRoute;
712
+ /**
713
+ * Get the last table that was set as active
714
+ * Note: Emitted value may be null (e.g. reset on route changes)
715
+ */
716
+ this.lastActiveTable = new BehaviorSubject(null);
717
+ /**
718
+ * Omit the last emitted value to observe only new active table changes
719
+ * Note: Emitted value may be null (e.g. reset on route changes)
720
+ */
721
+ this.nextActiveTable = this.lastActiveTable.pipe(skip(1));
712
722
  _router.events.forEach((event) => {
713
723
  if (event instanceof NavigationStart) {
714
724
  if (this._activeTable) {
715
- this._activeTable = null;
725
+ this.activeTable = null;
716
726
  }
717
727
  }
718
728
  });
@@ -722,6 +732,8 @@ class ActivatedTableService {
722
732
  }
723
733
  set activeTable(tableComponent) {
724
734
  this._activeTable = tableComponent;
735
+ // provide change to observers
736
+ this.lastActiveTable.next(this._activeTable);
725
737
  }
726
738
  }
727
739
  ActivatedTableService.decorators = [
@@ -1720,7 +1732,7 @@ class AdvancedTableComponent {
1720
1732
  // get order expression
1721
1733
  const order = aoData[2].value;
1722
1734
  // get skip records param
1723
- let skip = aoData[3].value;
1735
+ let skip$$1 = aoData[3].value;
1724
1736
  // get page size param
1725
1737
  let top = aoData[4].value;
1726
1738
  // get search value
@@ -1729,7 +1741,7 @@ class AdvancedTableComponent {
1729
1741
  const q = self._query instanceof ClientDataQueryable ? self._query : self._context.model(self.config.model).asQueryable();
1730
1742
  // apply paging params
1731
1743
  if (top) {
1732
- q.take(top).skip(skip);
1744
+ q.take(top).skip(skip$$1);
1733
1745
  }
1734
1746
  // apply order params
1735
1747
  if (order && order.length) {