@xiriframework/xiri-ng 0.4.11 → 0.4.12

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.
@@ -5150,6 +5150,16 @@ class XiriTableComponent {
5150
5150
  return dataStr.indexOf(filter) !== -1;
5151
5151
  };
5152
5152
  }
5153
+ // Gespeicherten Suchtext VOR dem ersten Load wiederherstellen: server-side muss er im ersten
5154
+ // Request stehen, client-side (flach) muss der filter auf der dataSource gesetzt sein.
5155
+ // Sort/Paginator werden erst in setData() restauriert, weil sie die geladene Datenmenge brauchen.
5156
+ const savedFilter = this.savedState()?.filter;
5157
+ if (savedFilter) {
5158
+ this.searchText = savedFilter;
5159
+ this.searchTextInit = savedFilter;
5160
+ if (!this.options.serverSide && !this.tree.enabled)
5161
+ this.dataSource.filter = savedFilter;
5162
+ }
5153
5163
  if (this.options.buttons)
5154
5164
  this.options.buttons.class = 'small';
5155
5165
  this.dataSource.connect()
@@ -5304,24 +5314,23 @@ class XiriTableComponent {
5304
5314
  this._alldata.set(data);
5305
5315
  if (this._firstData) {
5306
5316
  this._firstData = false;
5307
- const stateKey = this.tableStateKey();
5308
- if (this.options.saveState && stateKey) {
5309
- const saved = this.sessionStorageService.getTimeout(stateKey, 3600);
5310
- if (!saved)
5311
- return;
5312
- if (saved.filter !== undefined) {
5313
- this.searchText = saved.filter;
5314
- this.searchTextInit = saved.filter;
5315
- }
5316
- if (saved.sort !== undefined && saved.sortDirection !== undefined)
5317
- this.sort().sort(({ id: saved.sort, start: saved.sortDirection }));
5318
- if (saved.pageSize !== undefined && saved.pageIndex !== undefined) {
5319
- this.paginator().pageIndex = saved.pageIndex;
5320
- this.paginator()._changePageSize(saved.pageSize);
5321
- }
5317
+ const saved = this.savedState();
5318
+ if (!saved)
5319
+ return;
5320
+ if (saved.sort !== undefined && saved.sortDirection !== undefined)
5321
+ this.sort().sort(({ id: saved.sort, start: saved.sortDirection }));
5322
+ if (saved.pageSize !== undefined && saved.pageIndex !== undefined) {
5323
+ this.paginator().pageIndex = saved.pageIndex;
5324
+ this.paginator()._changePageSize(saved.pageSize);
5322
5325
  }
5323
5326
  }
5324
5327
  }
5328
+ savedState() {
5329
+ const stateKey = this.tableStateKey();
5330
+ if (!this.options.saveState || !stateKey)
5331
+ return null;
5332
+ return this.sessionStorageService.getTimeout(stateKey, 3600);
5333
+ }
5325
5334
  setFooter(footer) {
5326
5335
  this.footer = footer;
5327
5336
  this.displayedColumns.forEach((column) => {