@mmlogic/components 0.2.0 → 0.3.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.
@@ -8,24 +8,19 @@ export class MrdLayoutSection {
8
8
  this.items = [];
9
9
  /** Record data object; keys are field names, _links holds relation and related-view links. */
10
10
  this.data = {};
11
- /** View metadata map (ClientDashboardMetadata.views) for RELATED_VIEW and VIEW items. */
11
+ /** Legacy: view metadata map (ClientDashboardMetadata.views). Not needed in new flat format. */
12
12
  this.views = {};
13
- /** Top-level _links from ClientDashboardMetadata; used to resolve hrefs for VIEW items. */
13
+ /** Legacy: top-level _links from ClientDashboardMetadata. Not needed in new flat format. */
14
14
  this.links = {};
15
15
  this.locale = navigator.language;
16
16
  this.searchQueryMap = {};
17
17
  this.searchResultsMap = {};
18
18
  this.imagePreviewUrl = null;
19
19
  this.imagePreviews = {};
20
- this.activeViewMap = {};
21
- this.viewLinksMap = {};
22
- this.activeFiltersMap = {};
23
20
  this.searchTimers = {};
24
21
  this.handleViewLoadPage = (e, name) => {
25
- var _a;
26
22
  e.stopPropagation();
27
- const filters = (_a = this.activeFiltersMap[name]) !== null && _a !== void 0 ? _a : [];
28
- this.mrdLoadViewPage.emit({ name, page: e.detail.page, sort: e.detail.sort, filters });
23
+ this.mrdLoadViewPage.emit({ name, page: e.detail.page, sort: e.detail.sort, path: e.detail.path, qs: e.detail.qs });
29
24
  };
30
25
  this.handleSearchInput = (dataClass, query) => {
31
26
  this.searchQueryMap = Object.assign(Object.assign({}, this.searchQueryMap), { [dataClass]: query });
@@ -42,59 +37,29 @@ export class MrdLayoutSection {
42
37
  }
43
38
  componentDidLoad() {
44
39
  setTimeout(() => {
45
- this.emitLoadViews();
40
+ this.initEmbeddedTables();
46
41
  this.emitLoadImages();
47
42
  }, 0);
48
43
  }
49
- linksChanged(newVal) {
50
- if (Object.keys(newVal !== null && newVal !== void 0 ? newVal : {}).length > 0) {
51
- this.emitLoadViews();
52
- }
53
- }
54
44
  dataChanged(newVal) {
55
- var _a;
56
- if (newVal && Object.keys((_a = newVal === null || newVal === void 0 ? void 0 : newVal._links) !== null && _a !== void 0 ? _a : {}).length > 0) {
57
- this.emitLoadViews();
45
+ if (newVal && Object.keys(newVal).length > 0) {
46
+ setTimeout(() => this.initEmbeddedTables(), 0);
58
47
  }
59
48
  }
60
- resolveViewFilters(viewConfig) {
61
- var _a;
62
- return ((_a = viewConfig.filter) !== null && _a !== void 0 ? _a : []).map(f => {
63
- var _a, _b, _c, _d;
64
- const base = { field: f.name, dataType: 'TEXT' };
65
- switch (f.operator) {
66
- case 'FROM': return Object.assign(Object.assign({}, base), { from: (_a = f.value) !== null && _a !== void 0 ? _a : null });
67
- case 'TO': return Object.assign(Object.assign({}, base), { to: (_b = f.value) !== null && _b !== void 0 ? _b : null });
68
- case 'STARTS_WITH': return Object.assign(Object.assign({}, base), { operator: 'startsWith', value: (_c = f.value) !== null && _c !== void 0 ? _c : null });
69
- case 'NOT_EMPTY': return Object.assign(Object.assign({}, base), { operator: 'isNotEmpty' });
70
- case 'EMPTY': return Object.assign(Object.assign({}, base), { operator: 'isEmpty' });
71
- default: return Object.assign(Object.assign({}, base), { operator: 'equals', value: (_d = f.value) !== null && _d !== void 0 ? _d : null });
72
- }
73
- });
74
- }
75
- emitLoadViews() {
76
- var _a, _b, _c, _d, _e, _f, _g;
77
- const dataLinks = ((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links) !== null && _b !== void 0 ? _b : {});
78
- for (const item of this.flattenItems(this.items)) {
79
- if (item.type === ClientLayoutItemType.RELATED_VIEW && item.name) {
80
- const viewConfig = this.views[item.name];
81
- if (!viewConfig)
82
- continue;
83
- const href = (_d = dataLinks[(_c = item.relatedClass) !== null && _c !== void 0 ? _c : '']) === null || _d === void 0 ? void 0 : _d.href;
84
- this.mrdLoadView.emit({ name: item.name, href, viewConfig, sort: (_e = viewConfig.defaultSort) !== null && _e !== void 0 ? _e : '', filters: this.resolveViewFilters(viewConfig) });
85
- }
86
- else if (item.type === ClientLayoutItemType.VIEW) {
87
- const viewName = item.name;
88
- if (!viewName)
89
- continue;
90
- const viewConfig = this.views[viewName];
91
- if (!viewConfig)
92
- continue;
93
- const href = (_f = this.links[viewName]) === null || _f === void 0 ? void 0 : _f.href;
94
- this.mrdLoadView.emit({ name: viewName, href, viewConfig, sort: (_g = viewConfig.defaultSort) !== null && _g !== void 0 ? _g : '', filters: this.resolveViewFilters(viewConfig) });
49
+ async initEmbeddedTables() {
50
+ const tables = this.el.querySelectorAll('mrd-table[data-view]');
51
+ for (const table of Array.from(tables)) {
52
+ if (typeof table.init === 'function') {
53
+ await table.init();
95
54
  }
96
55
  }
97
56
  }
57
+ viewKeyFor(item) {
58
+ var _a, _b, _c, _d;
59
+ if (item.type === ClientLayoutItemType.RELATED_VIEW)
60
+ return (_b = (_a = item.relatedClass) !== null && _a !== void 0 ? _a : item.name) !== null && _b !== void 0 ? _b : '';
61
+ return (_d = (_c = item.dataClass) !== null && _c !== void 0 ? _c : item.name) !== null && _d !== void 0 ? _d : '';
62
+ }
98
63
  emitLoadImages() {
99
64
  for (const item of this.flattenItems(this.items)) {
100
65
  if (item.type === ClientLayoutItemType.FIELD && item.dataType === ClientLayoutItemFieldDataType.IMAGE) {
@@ -124,19 +89,14 @@ export class MrdLayoutSection {
124
89
  }
125
90
  /**
126
91
  * Inject data into an embedded mrd-table for a RELATED_VIEW or VIEW item.
127
- * Pass totalElements on page 0 to initialise the table; omit on subsequent pages.
128
- * Pass pageLinks (_links from the page response) on page 0 to enable action hrefs in mrdViewAction.
92
+ * Pass totalElements to update the pagination total (safe to pass on every page).
129
93
  */
130
- async setViewPage(name, page, rows, totalElements, pageLinks) {
131
- if (pageLinks) {
132
- this.viewLinksMap = Object.assign(Object.assign({}, this.viewLinksMap), { [name]: pageLinks });
133
- }
94
+ async setViewPage(name, page, rows, totalElements) {
134
95
  const table = this.el.querySelector(`mrd-table[data-view="${name}"]`);
135
96
  if (!table)
136
97
  return;
137
98
  if (totalElements !== undefined) {
138
99
  table.totalElements = totalElements;
139
- await table.init();
140
100
  }
141
101
  await table.setPage(page, rows);
142
102
  }
@@ -272,63 +232,36 @@ export class MrdLayoutSection {
272
232
  return (h("div", { class: "mrd-layout-section__search", key: `search-${dataClass}` }, h("div", { class: "mrd-layout-section__search-wrap" }, h("svg", { class: "mrd-layout-section__search-icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true" }, h("path", { "fill-rule": "evenodd", d: "M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z", "clip-rule": "evenodd" })), h("input", { class: "mrd-layout-section__search-input", type: "text", value: query, placeholder: (_c = item.label) !== null && _c !== void 0 ? _c : '', onInput: e => this.handleSearchInput(dataClass, e.target.value) })), results.length > 0 && (h("ul", { class: "mrd-layout-section__search-results" }, results.map(r => (h("li", { key: r.id, class: "mrd-layout-section__search-result" }, h("button", { class: "mrd-layout-section__search-result-btn", onClick: () => this.mrdNavigate.emit({ href: r.id, label: r.label }) }, h("span", { class: "mrd-layout-section__search-result-label" }, r.label), r.description && h("span", { class: "mrd-layout-section__search-result-desc" }, r.description)))))))));
273
233
  }
274
234
  renderRelatedView(item) {
275
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
276
- const isRelated = item.type === ClientLayoutItemType.RELATED_VIEW;
277
- const name = item.name;
278
- if (!name)
235
+ var _a, _b, _c, _d, _e, _f;
236
+ const key = this.viewKeyFor(item);
237
+ if (!key)
279
238
  return null;
280
- const viewConfig = this.views[name];
281
- if (!viewConfig)
239
+ if (!item.view)
282
240
  return null;
283
241
  const showTitle = (_a = item.showTitle) !== null && _a !== void 0 ? _a : false;
284
- const activeName = (_b = this.activeViewMap[name]) !== null && _b !== void 0 ? _b : name;
285
- const activeViewConfig = (_c = this.views[activeName]) !== null && _c !== void 0 ? _c : viewConfig;
286
- // Build the full view list (original + alternatives) so the switcher can always go back.
287
- const originalLabel = (_f = (_e = (_d = viewConfig.pluralLabel) !== null && _d !== void 0 ? _d : viewConfig.singularLabel) !== null && _e !== void 0 ? _e : item.label) !== null && _f !== void 0 ? _f : name;
288
- const allViews = [{ name, label: originalLabel }, ...((_g = item.alternativeViews) !== null && _g !== void 0 ? _g : [])];
289
- const activeEntry = allViews.find(v => v.name === activeName);
290
- const viewLabel = (_k = (_j = (_h = activeEntry === null || activeEntry === void 0 ? void 0 : activeEntry.label) !== null && _h !== void 0 ? _h : activeViewConfig.pluralLabel) !== null && _j !== void 0 ? _j : activeViewConfig.singularLabel) !== null && _k !== void 0 ? _k : '';
291
- const altViews = allViews.filter(v => v.name !== activeName);
292
- const rawActions = (_l = item.actions) !== null && _l !== void 0 ? _l : ['NEW', 'EXPORT'];
293
- const tableActions = rawActions.reduce((acc, a) => {
294
- if (a === 'NEW')
295
- acc.push({ action: 'create', label: t('table_new_record', this.locale), icon: 'assets/sprites.svg#icon-plus', variant: 'primary' });
296
- if (a === 'EXPORT')
297
- acc.push({ action: 'export', label: t('table_export_excel', this.locale), icon: 'assets/sprites.svg#icon-file-excel' });
298
- return acc;
299
- }, []);
300
- return (h("div", { class: "mrd-layout-section__related-view", key: `view-${name}` }, showTitle && item.label && h("h3", { class: "mrd-layout-section__related-view-title" }, item.label), h("mrd-table", { "data-view": name, columns: activeViewConfig.values, locale: this.locale, defaultSort: (_m = activeViewConfig.defaultSort) !== null && _m !== void 0 ? _m : '', viewLabel: viewLabel, alternativeViews: altViews, actions: tableActions, onMrdLoadPage: (e) => this.handleViewLoadPage(e, name), onMrdSwitchView: (e) => {
301
- var _a, _b, _c, _d, _e, _f, _g, _h;
242
+ // Extract parentId from data._links.self.href for RELATED_VIEW path construction
243
+ const selfHref = (_e = (_d = (_c = (_b = this.data) === null || _b === void 0 ? void 0 : _b._links) === null || _c === void 0 ? void 0 : _c.self) === null || _d === void 0 ? void 0 : _d.href) !== null && _e !== void 0 ? _e : '';
244
+ const parentId = (_f = selfHref.split('/').filter(Boolean).pop()) !== null && _f !== void 0 ? _f : '';
245
+ return (h("div", { class: "mrd-layout-section__related-view", key: `view-${key}` }, showTitle && item.label && h("h3", { class: "mrd-layout-section__related-view-title" }, item.label), h("mrd-table", { "data-view": key, item: item, parentId: parentId, locale: this.locale, onMrdLoadPage: (e) => this.handleViewLoadPage(e, key), onMrdLoadAggregations: (e) => {
246
+ var _a;
302
247
  e.stopPropagation();
303
- const newViewName = e.detail.name;
304
- const newViewConfig = this.views[newViewName];
305
- if (!newViewConfig)
306
- return;
307
- this.activeViewMap = Object.assign(Object.assign({}, this.activeViewMap), { [name]: newViewName });
308
- this.activeFiltersMap = Object.assign(Object.assign({}, this.activeFiltersMap), { [name]: [] });
309
- const dataLinks = ((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links) !== null && _b !== void 0 ? _b : {});
310
- const href = isRelated
311
- ? (_d = dataLinks[(_c = item.relatedClass) !== null && _c !== void 0 ? _c : '']) === null || _d === void 0 ? void 0 : _d.href
312
- : ((_f = (_e = this.links[newViewName]) === null || _e === void 0 ? void 0 : _e.href) !== null && _f !== void 0 ? _f : (_g = this.links[name]) === null || _g === void 0 ? void 0 : _g.href);
313
- this.mrdLoadView.emit({ name, href, viewConfig: newViewConfig, sort: (_h = newViewConfig.defaultSort) !== null && _h !== void 0 ? _h : '', filters: this.resolveViewFilters(newViewConfig) });
314
- }, onMrdFilter: (e) => {
315
- e.stopPropagation();
316
- this.activeFiltersMap = Object.assign(Object.assign({}, this.activeFiltersMap), { [name]: e.detail.filters });
317
- }, onMrdLoadAggregations: (e) => {
318
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
248
+ this.mrdLoadViewAggregations.emit(Object.assign({ name: key, dataClass: (_a = item.dataClass) !== null && _a !== void 0 ? _a : key }, e.detail));
249
+ }, onMrdRowClick: (e) => {
250
+ var _a, _b, _c;
319
251
  e.stopPropagation();
320
- const dataLinks = ((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links) !== null && _b !== void 0 ? _b : {});
321
- const href = isRelated
322
- ? (_d = dataLinks[(_c = item.relatedClass) !== null && _c !== void 0 ? _c : '']) === null || _d === void 0 ? void 0 : _d.href
323
- : ((_g = (_f = this.links[(_e = this.activeViewMap[name]) !== null && _e !== void 0 ? _e : name]) === null || _f === void 0 ? void 0 : _f.href) !== null && _g !== void 0 ? _g : (_h = this.links[name]) === null || _h === void 0 ? void 0 : _h.href);
324
- const filters = (_j = this.activeFiltersMap[name]) !== null && _j !== void 0 ? _j : [];
325
- this.mrdLoadViewAggregations.emit(Object.assign({ name, href, filters }, e.detail));
252
+ const row = e.detail;
253
+ this.mrdNavigate.emit({ href: (_b = (_a = row === null || row === void 0 ? void 0 : row._links) === null || _a === void 0 ? void 0 : _a.self) === null || _b === void 0 ? void 0 : _b.href, label: (_c = row === null || row === void 0 ? void 0 : row.name) !== null && _c !== void 0 ? _c : '' });
326
254
  }, onMrdAction: (e) => {
327
- var _a, _b, _c;
255
+ var _a;
328
256
  e.stopPropagation();
329
- const pl = (_a = this.viewLinksMap[name]) !== null && _a !== void 0 ? _a : {};
330
- const href = e.detail.action === 'export' ? (_b = pl['excel']) === null || _b === void 0 ? void 0 : _b.href : (_c = pl['self']) === null || _c === void 0 ? void 0 : _c.href;
331
- this.mrdViewAction.emit({ name, action: e.detail.action, href });
257
+ this.mrdViewAction.emit({
258
+ name: key,
259
+ action: e.detail.action,
260
+ dataClass: (_a = item.dataClass) !== null && _a !== void 0 ? _a : key,
261
+ path: e.detail.path,
262
+ qs: e.detail.qs,
263
+ parentPath: e.detail.parentPath,
264
+ });
332
265
  } })));
333
266
  }
334
267
  renderItem(item) {
@@ -362,7 +295,7 @@ export class MrdLayoutSection {
362
295
  return (h("div", { class: "mrd-layout-section__modal-backdrop", onClick: () => { this.imagePreviewUrl = null; } }, h("div", { class: "mrd-layout-section__modal", onClick: (e) => e.stopPropagation() }, h("button", { class: "mrd-layout-section__modal-close", onClick: () => { this.imagePreviewUrl = null; } }, "\u2715"), h("img", { class: "mrd-layout-section__modal-image", src: this.imagePreviewUrl, alt: "" }))));
363
296
  }
364
297
  render() {
365
- return (h(Host, { key: '7a91a541e056965dc79d74a50827e8c270c33a0d' }, h("div", { key: 'bcf4a2e81e704d136fb437cd2cb22acb4a05a8b3', class: "mrd-layout-section" }, this.items.map(item => this.renderItem(item))), this.renderImageModal()));
298
+ return (h(Host, { key: 'a7b6514d19cf79261396d9aaf03f459600037566' }, h("div", { key: '331f0558ef3eddf5a9b4332f7ec45c58b52dd8c3', class: "mrd-layout-section" }, this.items.map(item => this.renderItem(item))), this.renderImageModal()));
366
299
  }
367
300
  static get is() { return "mrd-layout-section"; }
368
301
  static get encapsulation() { return "scoped"; }
@@ -449,7 +382,7 @@ export class MrdLayoutSection {
449
382
  "optional": false,
450
383
  "docs": {
451
384
  "tags": [],
452
- "text": "View metadata map (ClientDashboardMetadata.views) for RELATED_VIEW and VIEW items."
385
+ "text": "Legacy: view metadata map (ClientDashboardMetadata.views). Not needed in new flat format."
453
386
  },
454
387
  "getter": false,
455
388
  "setter": false,
@@ -472,7 +405,7 @@ export class MrdLayoutSection {
472
405
  "optional": false,
473
406
  "docs": {
474
407
  "tags": [],
475
- "text": "Top-level _links from ClientDashboardMetadata; used to resolve hrefs for VIEW items."
408
+ "text": "Legacy: top-level _links from ClientDashboardMetadata. Not needed in new flat format."
476
409
  },
477
410
  "getter": false,
478
411
  "setter": false,
@@ -505,8 +438,7 @@ export class MrdLayoutSection {
505
438
  "searchQueryMap": {},
506
439
  "searchResultsMap": {},
507
440
  "imagePreviewUrl": {},
508
- "imagePreviews": {},
509
- "activeViewMap": {}
441
+ "imagePreviews": {}
510
442
  };
511
443
  }
512
444
  static get events() {
@@ -562,34 +494,6 @@ export class MrdLayoutSection {
562
494
  "resolved": "{ href: string; fileName: string; }",
563
495
  "references": {}
564
496
  }
565
- }, {
566
- "method": "mrdLoadView",
567
- "name": "mrdLoadView",
568
- "bubbles": true,
569
- "cancelable": true,
570
- "composed": true,
571
- "docs": {
572
- "tags": [],
573
- "text": "Fired once on load for each RELATED_VIEW and VIEW item; host fetches page 0 and calls setViewPage()."
574
- },
575
- "complexType": {
576
- "original": "{ name: string; href?: string; viewConfig: ClientViewMetadata; sort: string; filters: ColumnFilter[] }",
577
- "resolved": "{ name: string; href?: string | undefined; viewConfig: ClientViewMetadata; sort: string; filters: ColumnFilter[]; }",
578
- "references": {
579
- "ClientViewMetadata": {
580
- "location": "import",
581
- "path": "../../types/client-layout",
582
- "id": "src/types/client-layout.ts::ClientViewMetadata",
583
- "referenceLocation": "ClientViewMetadata"
584
- },
585
- "ColumnFilter": {
586
- "location": "import",
587
- "path": "../../utils/cell-renderer",
588
- "id": "src/utils/cell-renderer.ts::ColumnFilter",
589
- "referenceLocation": "ColumnFilter"
590
- }
591
- }
592
- }
593
497
  }, {
594
498
  "method": "mrdLoadViewPage",
595
499
  "name": "mrdLoadViewPage",
@@ -601,16 +505,9 @@ export class MrdLayoutSection {
601
505
  "text": "Re-emitted from an embedded mrd-table's mrdLoadPage; host fetches the next page and calls setViewPage()."
602
506
  },
603
507
  "complexType": {
604
- "original": "{ name: string; page: number; sort: string; filters: ColumnFilter[] }",
605
- "resolved": "{ name: string; page: number; sort: string; filters: ColumnFilter[]; }",
606
- "references": {
607
- "ColumnFilter": {
608
- "location": "import",
609
- "path": "../../utils/cell-renderer",
610
- "id": "src/utils/cell-renderer.ts::ColumnFilter",
611
- "referenceLocation": "ColumnFilter"
612
- }
613
- }
508
+ "original": "{ name: string; page: number; sort: string; path: string; qs: string }",
509
+ "resolved": "{ name: string; page: number; sort: string; path: string; qs: string; }",
510
+ "references": {}
614
511
  }
615
512
  }, {
616
513
  "method": "mrdLoadImage",
@@ -635,11 +532,11 @@ export class MrdLayoutSection {
635
532
  "composed": true,
636
533
  "docs": {
637
534
  "tags": [],
638
- "text": "Re-emitted from an embedded mrd-table's mrdAction; includes the view name and resolved href."
535
+ "text": "Re-emitted from an embedded mrd-table's mrdAction; host builds the target URL from dataClass."
639
536
  },
640
537
  "complexType": {
641
- "original": "{ name: string; action: string; href?: string }",
642
- "resolved": "{ name: string; action: string; href?: string | undefined; }",
538
+ "original": "{ name: string; action: string; dataClass: string; path?: string; qs?: string; parentPath?: string | null }",
539
+ "resolved": "{ name: string; action: string; dataClass: string; path?: string | undefined; qs?: string | undefined; parentPath?: string | null | undefined; }",
643
540
  "references": {}
644
541
  }
645
542
  }, {
@@ -653,16 +550,9 @@ export class MrdLayoutSection {
653
550
  "text": "Re-emitted from an embedded mrd-table's mrdLoadAggregations; host calls setViewAggregations() with the result."
654
551
  },
655
552
  "complexType": {
656
- "original": "{ name: string; href?: string; filters: ColumnFilter[]; sum?: string[]; avg?: string[]; count?: string[] }",
657
- "resolved": "{ name: string; href?: string | undefined; filters: ColumnFilter[]; sum?: string[] | undefined; avg?: string[] | undefined; count?: string[] | undefined; }",
658
- "references": {
659
- "ColumnFilter": {
660
- "location": "import",
661
- "path": "../../utils/cell-renderer",
662
- "id": "src/utils/cell-renderer.ts::ColumnFilter",
663
- "referenceLocation": "ColumnFilter"
664
- }
665
- }
553
+ "original": "{ name: string; dataClass: string; path: string; qs: string; sum?: string[]; avg?: string[]; count?: string[] }",
554
+ "resolved": "{ name: string; dataClass: string; path: string; qs: string; sum?: string[] | undefined; avg?: string[] | undefined; count?: string[] | undefined; }",
555
+ "references": {}
666
556
  }
667
557
  }];
668
558
  }
@@ -701,7 +591,7 @@ export class MrdLayoutSection {
701
591
  },
702
592
  "setViewPage": {
703
593
  "complexType": {
704
- "signature": "(name: string, page: number, rows: any[], totalElements?: number, pageLinks?: Record<string, { href: string; }>) => Promise<void>",
594
+ "signature": "(name: string, page: number, rows: any[], totalElements?: number) => Promise<void>",
705
595
  "parameters": [{
706
596
  "name": "name",
707
597
  "type": "string",
@@ -718,25 +608,17 @@ export class MrdLayoutSection {
718
608
  "name": "totalElements",
719
609
  "type": "number | undefined",
720
610
  "docs": ""
721
- }, {
722
- "name": "pageLinks",
723
- "type": "Record<string, { href: string; }> | undefined",
724
- "docs": ""
725
611
  }],
726
612
  "references": {
727
613
  "Promise": {
728
614
  "location": "global",
729
615
  "id": "global::Promise"
730
- },
731
- "Record": {
732
- "location": "global",
733
- "id": "global::Record"
734
616
  }
735
617
  },
736
618
  "return": "Promise<void>"
737
619
  },
738
620
  "docs": {
739
- "text": "Inject data into an embedded mrd-table for a RELATED_VIEW or VIEW item.\nPass totalElements on page 0 to initialise the table; omit on subsequent pages.\nPass pageLinks (_links from the page response) on page 0 to enable action hrefs in mrdViewAction.",
621
+ "text": "Inject data into an embedded mrd-table for a RELATED_VIEW or VIEW item.\nPass totalElements to update the pagination total (safe to pass on every page).",
740
622
  "tags": []
741
623
  }
742
624
  },
@@ -816,9 +698,6 @@ export class MrdLayoutSection {
816
698
  static get elementRef() { return "el"; }
817
699
  static get watchers() {
818
700
  return [{
819
- "propName": "links",
820
- "methodName": "linksChanged"
821
- }, {
822
701
  "propName": "data",
823
702
  "methodName": "dataChanged"
824
703
  }];