pict-section-recordset 1.0.49 → 1.0.52

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.
@@ -204,7 +204,7 @@ module.exports.default_configuration.pict_configuration = (
204
204
  "IDBook":
205
205
  {
206
206
  "Name": "Book Identifier",
207
- "Hash": "BookIdentifire",
207
+ "Hash": "BookIdentifier",
208
208
  },
209
209
  "PublicationYear":
210
210
  {
@@ -266,7 +266,7 @@ module.exports.default_configuration.pict_configuration = (
266
266
  "DataType": "Number",
267
267
  "PictDashboard":
268
268
  {
269
- "Equation": "AuthorSineWave = ROUND(SIN(BookIdentifire / 100)^3,5)", //FIXME: having to + 0 here seems sketchy
269
+ "Equation": "AuthorSineWave = ROUND(SIN(BookIdentifier / 100)^3,5)", //FIXME: having to + 0 here seems sketchy
270
270
  //"ValueTemplate": "{~D:Record.Payload.AuthorsInOrbit~}",
271
271
  "Solvers": [ "AuthorsInOrbit = SIN(Authors.length)" ],
272
272
  }
@@ -283,14 +283,19 @@ module.exports.default_configuration.pict_configuration = (
283
283
  {
284
284
  "Name": "Title",
285
285
  "Hash": "Title",
286
- "DataType": "String"
286
+ "DataType": "String",
287
+ "PictDashboard":
288
+ {
289
+ }
287
290
  },
288
291
  "Authors":
289
292
  {
290
293
  "Name": "Authors",
291
- "Hash": "Authors",
294
+ "Hash": "BookAuthors",
295
+ "DataType": "Array",
292
296
  "PictDashboard":
293
297
  {
298
+ "ValueTemplate": "{~PJU:, ^Name^Record.Payload.Authors~}"
294
299
  }
295
300
  },
296
301
  "AuthorCount":
@@ -300,6 +305,16 @@ module.exports.default_configuration.pict_configuration = (
300
305
  "DataType": "Number",
301
306
  "PictDashboard":
302
307
  {
308
+ "EquationNamespaceScope": "Full",
309
+ "Equation": "Payload.Authors.length + 0", //FIXME: having to + 0 here seems sketchy
310
+ "Solvers":
311
+ [
312
+ {
313
+ "Ordinal": 0,
314
+ "Expression": "Price = ROUND(RANDOMFLOATBETWEEN(0.5, 40), 2)",
315
+ },
316
+ "AuthorCount = COS(Authors.length)",
317
+ ],
303
318
  }
304
319
  }
305
320
  },
@@ -490,7 +505,7 @@ module.exports.default_configuration.pict_configuration = (
490
505
  "RecordSetType": "MeadowEndpoint", // Could be "Custom" which would require a provider to already be created for the record set.
491
506
  "RecordSetMeadowEntity": "Book", // This leverages the /Schema endpoint to get the record set columns.
492
507
 
493
- "RecordSetListManifestOnly": true,
508
+ "RecordSetDashboardManifestOnly": true,
494
509
 
495
510
  "RecordSetDashboardManifests": [ "Bestsellers", "Underdogs", "NewReleases" ],
496
511
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pict-section-recordset",
3
- "version": "1.0.49",
3
+ "version": "1.0.52",
4
4
  "description": "Pict dynamic record set management views",
5
5
  "main": "source/Pict-Section-RecordSet.js",
6
6
  "directories": {
@@ -33,7 +33,7 @@
33
33
  "browser-env": "^3.3.0",
34
34
  "eslint": "^9.28.0",
35
35
  "jquery": "^3.7.1",
36
- "pict": "^1.0.299",
36
+ "pict": "^1.0.300",
37
37
  "pict-application": "^1.0.27",
38
38
  "pict-service-commandlineutility": "^1.0.15",
39
39
  "quackage": "^1.0.42",
@@ -145,7 +145,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
145
145
 
146
146
  _prepareFilterState(pEntity, pOptions, pFilterExperienceResultAddress = 'Records')
147
147
  {
148
- const tmpClauses = [].concat(this.pict.Bundle._ActiveFilterState?.[pOptions.Entity || this.options.Entity]?.FilterClauses || []);
148
+ const tmpClauses = [].concat(this.pict.Bundle._ActiveFilterState?.[pOptions.RecordSet || pOptions.Entity || this.options.Entity]?.FilterClauses || []);
149
149
  const tmpExperience = Object.assign({}, this.pict.Bundle._ActiveFilterState?.[pOptions.Entity || this.options.Entity]?.Experience || {});
150
150
  if (!tmpExperience.ResultDestinationAddress)
151
151
  {
@@ -29,7 +29,7 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
29
29
  let tmpOptions = Object.assign({}, _DEFAULT_CONFIGURATION, pOptions);
30
30
  super(pFable, tmpOptions, pServiceHash);
31
31
 
32
- /** @type {import('pict') & { addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any, newManyfest: (rec: any) => any }} */
32
+ /** @type {import('pict') & { PictSectionRecordSet: any, addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any, newManyfest: (rec: any) => any }} */
33
33
  this.fable;
34
34
  this.pict = this.fable;
35
35
  /** @type {any} */
@@ -66,6 +66,71 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
66
66
 
67
67
  //FIXME: this duplicates a behavior in pict-section-form - figure out how we want this coupled dependency to work.
68
68
  this.fable.addProviderSingleton('PictFormSectionDefaultTemplateProvider', libFormsTemplateProvider.default_configuration, libFormsTemplateProvider);
69
+
70
+ this.pict.MetaTemplate.addPatternBoth('{~ProcessCell:', '~}', (pHash, pData, fCallback)=>
71
+ {
72
+ const field = this.pict.resolveStateFromAddress(pHash, pData, fCallback);
73
+ return fCallback(null, this.pict.manifest.getValueByHash(pData.Payload, field));
74
+ }, async (pHash, pData, fCallback) =>
75
+ {
76
+ const field = this.pict.resolveStateFromAddress(pHash, pData, fCallback);
77
+ let value = this.pict.manifest.getValueByHash(pData.Payload, field);
78
+ const IDPrefixes = ['Parent', 'Child', 'Creating', 'Updating', 'Deleting'];
79
+ let sanitizedField = field;
80
+ for (let p of IDPrefixes)
81
+ {
82
+ sanitizedField = sanitizedField.replace(`${ p }ID`, 'ID');
83
+ }
84
+ if (sanitizedField?.startsWith('ID'))
85
+ {
86
+ if (!value)
87
+ {
88
+ return fCallback(null, '');
89
+ }
90
+ const remote = field.split('ID')[1];
91
+ try
92
+ {
93
+ const entity = await new Promise((resolve, reject) =>
94
+ {
95
+ this.pict.EntityProvider.getEntity(remote, value, (pError, pResult) =>
96
+ {
97
+ if (pError)
98
+ {
99
+ return reject(pError);
100
+ }
101
+ resolve(pResult);
102
+ });
103
+ });
104
+ if (remote === 'User')
105
+ {
106
+ value = `${ entity.NameFirst } ${ entity.NameLast }`;
107
+ }
108
+ else if (entity?.Name)
109
+ {
110
+ value = entity.Name;
111
+ }
112
+ else if (entity?.Title)
113
+ {
114
+ value = entity.Title;
115
+ }
116
+ else if (entity?.Hash)
117
+ {
118
+ value = entity.Hash;
119
+ }
120
+ if (this.pict.PictSectionRecordSet.recordSetProviderConfigurations[remote])
121
+ {
122
+ const url = this.pict.parseTemplateByHash('PRSP-Read-Link-URL-Template', { Payload: { Payload: { RecordSet: remote, GUIDAddress: `GUID${ remote }` }, Data: entity }});
123
+ value = `<a href="${ url }">${ value }</a>`;
124
+ }
125
+ }
126
+ catch (e)
127
+ {
128
+ this.pict.log.error(`[RecordSet-MetaController] Unable to fetch entity: ${ e }`);
129
+ return fCallback(e, '');
130
+ }
131
+ }
132
+ return fCallback(null, value);
133
+ });
69
134
  }
70
135
 
71
136
  /*
@@ -472,7 +537,7 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
472
537
  }
473
538
  if (!tmpPictDashboard.ValueTemplate)
474
539
  {
475
- tmpPictDashboard.ValueTemplate = '{~DVBK:Record.Payload:Record.Data.Key~}';
540
+ tmpPictDashboard.ValueTemplate = '{~ProcessCell:Record.Data.Key~}';
476
541
  }
477
542
  return {
478
543
  Key: key,
@@ -80,8 +80,9 @@ const _DEFAULT_CONFIGURATION_SUBSET_Filter =
80
80
  Template: /*html*/`
81
81
  <!-- DefaultPackage pict view template: [PRSP-SUBSET-Filters-Template-AddFilter-Dropdown] -->
82
82
  <div>
83
- <select id="PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Select" onchange="event.preventDefault(); _Pict.views['PRSP-Filters'].render('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown', undefined,
83
+ <select id="PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Select" data-i-view-context="{~D:Record.ViewContext~}" onchange="event.preventDefault(); _Pict.views['PRSP-Filters'].render('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown', undefined,
84
84
  {
85
+ ViewContext: '{~D:Record.ViewContext~}',
85
86
  RecordSet: event.target.querySelector('option:checked').getAttribute('data-i-recordset'),
86
87
  FilterKey: event.target.querySelector('option:checked').getAttribute('data-i-filter-key'),
87
88
  AvailableClauses: _Pict.providers[\`RSP-Provider-\${event.target.querySelector('option:checked').getAttribute('data-i-recordset')}\`].getFilterClauseSchemaForKey(event.target.querySelector('option:checked').getAttribute('data-i-filter-key')).AvailableClauses,
@@ -382,7 +383,7 @@ class ViewRecordSetSUBSETFilters extends libPictView
382
383
  pEvent.preventDefault();
383
384
  //const tmpRecordsetProvider = this.pict.providers['RSP-Provider-' + pRecordSet];
384
385
  //this.pict.log.info(`Selecting filter to add for record set: ${pRecordSet} in view context: ${pViewContext}`, tmpRecordsetProvider.getFilterSchema())
385
- this.renderWithScope(this.pict.providers[`RSP-Provider-${pRecordSet}`], 'PRSP-SUBSET-Filters-Template-AddFilter-Dropdown');
386
+ this.renderWithScope(this.pict.providers[`RSP-Provider-${pRecordSet}`], 'PRSP-SUBSET-Filters-Template-AddFilter-Dropdown', undefined, { RecordSet: pRecordSet, ViewContext: pViewContext });
386
387
  }
387
388
 
388
389
  addFilter(pEvent, pRecordSet, pViewContext, pFilterKey, pClauseKey)
@@ -428,6 +429,7 @@ class ViewRecordSetSUBSETFilters extends libPictView
428
429
  const tmpActiveOption = document.getElementById('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Select')?.querySelector('option:checked')
429
430
  const tmpRecordSet = tmpActiveOption?.getAttribute('data-i-recordset');
430
431
  const tmpFilterKey = tmpActiveOption?.getAttribute('data-i-filter-key');
432
+ const tmpViewContext = tmpSelect?.getAttribute('data-i-view-context');
431
433
  if (tmpRecordSet && tmpFilterKey)
432
434
  {
433
435
  const tmpProvider = this.pict.providers[`RSP-Provider-${tmpRecordSet}`];
@@ -435,6 +437,7 @@ class ViewRecordSetSUBSETFilters extends libPictView
435
437
  {
436
438
  tmpRecord.RecordSet = tmpRecordSet;
437
439
  tmpRecord.FilterKey = tmpFilterKey;
440
+ tmpRecord.ViewContext = tmpViewContext;
438
441
  tmpRecord.AvailableClauses = tmpProvider.getFilterClauseSchemaForKey(tmpFilterKey).AvailableClauses;
439
442
  if (Array.isArray(tmpRecord.AvailableClauses))
440
443
  {
@@ -88,7 +88,6 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
88
88
  Template: /*html*/`
89
89
  <li><a href="{~TBR:Record.Data.URL~}">{~TBR:Record.Data.Name~}</a></li>
90
90
  `
91
- // {~Breakpoint~}
92
91
 
93
92
  },
94
93
  ],
@@ -195,7 +195,7 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
195
195
  ManifestHash: 'Default',
196
196
  PictDashboard:
197
197
  {
198
- ValueTemplate: '{~DVBK:Record.Payload:Record.Data.Key~}',
198
+ ValueTemplate: '{~ProcessCell:Record.Data.Key~}',
199
199
  },
200
200
  });
201
201
  }
@@ -408,12 +408,12 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
408
408
  {
409
409
  // Put code here to preprocess columns into other data parts.
410
410
  /*
411
- "RecordSetListManifestOnly": false,
411
+ "RecordSetDashboardManifestOnly": false,
412
412
 
413
413
  "RecordSetListManifests": [ "Bestsellers", "Underdogs", "NewReleases" ],
414
414
  "RecordSetDashboardManifests": [ "Bestsellers" ],
415
415
  */
416
- if (pRecordSetConfiguration.RecordSetListManifestOnly)
416
+ if (pRecordSetConfiguration.RecordSetDashboardManifestOnly)
417
417
  {
418
418
  const tmpManifestHash = pRecordSetConfiguration.RecordSetDashboardDefaultManifest || pRecordSetConfiguration.RecordSetDashboardManifests?.[0];
419
419
  const tmpManifest = this.pict.PictSectionRecordSet.getManifest(tmpManifestHash);
@@ -442,6 +442,10 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
442
442
  {
443
443
  key.ManifestHash = 'Default';
444
444
  }
445
+ if (key.PictDashboard && !key.PictDashboard.ValueTemplate)
446
+ {
447
+ key.PictDashboard.ValueTemplate = '{~ProcessCell:Record.Data.Key~}';
448
+ }
445
449
  return key;
446
450
  }
447
451
  return {
@@ -450,7 +454,7 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
450
454
  ManifestHash: 'Default',
451
455
  PictDashboard:
452
456
  {
453
- ValueTemplate: '{~DVBK:Record.Payload:Record.Data.Key~}',
457
+ ValueTemplate: '{~ProcessCell:Record.Data.Key~}',
454
458
  },
455
459
  };
456
460
  });
@@ -509,7 +513,7 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
509
513
  this.pict.log.error(`RecordSetDashboard: No provider found for ${pProviderHash} in ${pRecordSetConfiguration.RecordSet}. List Render failed.`);
510
514
  return;
511
515
  }
512
- if (pRecordSetConfiguration.RecordSetListManifestOnly)
516
+ if (pRecordSetConfiguration.RecordSetDashboardManifestOnly)
513
517
  {
514
518
  const tmpManifestHash = pRecordSetConfiguration.RecordSetDashboardDefaultManifest || pRecordSetConfiguration.RecordSetDashboardManifests?.[0];
515
519
  const tmpManifest = this.pict.PictSectionRecordSet.getManifest(tmpManifestHash);
@@ -689,7 +693,7 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
689
693
 
690
694
  // Put code here to preprocess columns into other data parts.
691
695
  /*
692
- "RecordSetListManifestOnly": false,
696
+ "RecordSetDashboardManifestOnly": false,
693
697
 
694
698
  "RecordSetListManifests": [ "Bestsellers", "Underdogs", "NewReleases" ],
695
699
  "RecordSetDashboardManifests": [ "Bestsellers" ],
@@ -715,7 +719,7 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
715
719
  }
716
720
  if (!tmpTableCell.PictDashboard.ValueTemplate)
717
721
  {
718
- tmpTableCell.PictDashboard.ValueTemplate = '{~DVBK:Record.Payload:Record.Data.Key~}';
722
+ tmpTableCell.PictDashboard.ValueTemplate = '{~ProcessCell:Record.Data.Key~}';
719
723
  }
720
724
  return tmpTableCell;
721
725
  }
@@ -725,7 +729,7 @@ class viewRecordSetDashboard extends libPictRecordSetRecordView
725
729
  ManifestHash: 'Default',
726
730
  PictDashboard:
727
731
  {
728
- ValueTemplate: '{~DVBK:Record.Payload:Record.Data.Key~}',
732
+ ValueTemplate: '{~ProcessCell:Record.Data.Key~}',
729
733
  },
730
734
  };
731
735
  });
@@ -62,7 +62,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
62
62
  Hash: 'PRSP-List-RecordListEntry-Template-Row-Cell',
63
63
  Template: /*html*/`
64
64
  <td style="border-bottom: 1px solid #ccc; padding: 5px;">
65
- {~DVBK:Record.Payload:Record.Data.Key~}
65
+ {~TBDA:Record.Data.PictDashboard.ValueTemplate~}
66
66
  </td>
67
67
  `
68
68
  },
@@ -90,7 +90,6 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
90
90
  Template: /*html*/`
91
91
  <li><a href="{~TBR:Record.Data.URL~}">{~TBR:Record.Data.Name~}</a></li>
92
92
  `
93
- // {~Breakpoint~}
94
93
 
95
94
  },
96
95
  ],
@@ -167,6 +167,9 @@ class viewRecordSetList extends libPictRecordSetRecordView
167
167
  pRecordListData.TableCells.push({
168
168
  'Key': tmpColumn,
169
169
  'DisplayName': tmpProperties?.[tmpColumn].title || tmpColumn,
170
+ 'PictDashboard': {
171
+ 'ValueTemplate': '{~ProcessCell:Record.Data.Key~}'
172
+ }
170
173
  });
171
174
  }
172
175
  }
@@ -193,6 +196,20 @@ class viewRecordSetList extends libPictRecordSetRecordView
193
196
  return;
194
197
  }
195
198
 
199
+ if (pRecordSetConfiguration.RecordSetListManifestOnly)
200
+ {
201
+ const tmpManifestHash = pRecordSetConfiguration.RecordSetListDefaultManifest || pRecordSetConfiguration.RecordSetListManifests?.[0];
202
+ const tmpManifest = this.pict.PictSectionRecordSet.manifestDefinitions[tmpManifestHash];
203
+ if (!tmpManifest)
204
+ {
205
+ this.pict.log.error(`RecordSetList: No manifest found for ${pRecordSetConfiguration.RecordSet}. List Render failed.`);
206
+ }
207
+ else
208
+ {
209
+ return this.renderListFromManifest(tmpManifest, pRecordSetConfiguration, pProviderHash, pFilterString, pSerializedFilterExperience, pOffset, pPageSize);
210
+ }
211
+ }
212
+
196
213
  const tmpEncodedFilterExperience = pSerializedFilterExperience && encodeURIComponent(pSerializedFilterExperience);
197
214
  if (tmpEncodedFilterExperience)
198
215
  {
@@ -371,6 +388,13 @@ class viewRecordSetList extends libPictRecordSetRecordView
371
388
  {
372
389
  key.ManifestHash = 'Default';
373
390
  }
391
+ if (!key.PictDashboard)
392
+ {
393
+ key.PictDashboard =
394
+ {
395
+ ValueTemplate: '{~ProcessCell:Record.Data.Key~}',
396
+ };
397
+ }
374
398
  return key;
375
399
  }
376
400
  return {
@@ -379,7 +403,7 @@ class viewRecordSetList extends libPictRecordSetRecordView
379
403
  ManifestHash: 'Default',
380
404
  PictDashboard:
381
405
  {
382
- ValueTemplate: '{~DVBK:Record.Payload:Record.Data.Key~}',
406
+ ValueTemplate: '{~ProcessCell:Record.Data.Key~}',
383
407
  },
384
408
  };
385
409
  });
@@ -411,6 +435,261 @@ class viewRecordSetList extends libPictRecordSetRecordView
411
435
  }.bind(this));
412
436
  }
413
437
 
438
+ /**
439
+ * @param {object} pManifest
440
+ * @param {Record<string, any>} pRecordSetConfiguration
441
+ * @param {string} pProviderHash
442
+ * @param {string} pFilterString
443
+ * @param {string} pSerializedFilterExperience
444
+ * @param {number} pOffset
445
+ * @param {number} pPageSize
446
+ *
447
+ * @return {Promise<void>}
448
+ */
449
+ async renderListFromManifest(pManifest, pRecordSetConfiguration, pProviderHash, pFilterString, pSerializedFilterExperience, pOffset, pPageSize)
450
+ {
451
+ if (!pRecordSetConfiguration)
452
+ {
453
+ this.pict.log.error(`RecordSetList: No record set configuration found. List Render failed.`);
454
+ return;
455
+ }
456
+ // Get the records
457
+ if (!(pProviderHash in this.pict.providers))
458
+ {
459
+ this.pict.log.error(`RecordSetList: No provider found for ${pProviderHash} in ${pRecordSetConfiguration.RecordSet}. List Render failed.`);
460
+ return;
461
+ }
462
+
463
+ let tmpTitle = pRecordSetConfiguration.Title || pRecordSetConfiguration.RecordSet;
464
+ if (pManifest && pManifest.TitleTemplate)
465
+ {
466
+ tmpTitle = this.pict.parseTemplate(pManifest.TitleTemplate, pRecordSetConfiguration);
467
+ }
468
+
469
+ const tmpEncodedFilterExperience = pSerializedFilterExperience && encodeURIComponent(pSerializedFilterExperience);
470
+ if (tmpEncodedFilterExperience)
471
+ {
472
+ // shove filter xp into the active filters for this recordset
473
+ const tmpExperienceFromURL = await this.pict.views['PRSP-Filters'].deserializeFilterExperience(pSerializedFilterExperience);
474
+ if (tmpExperienceFromURL)
475
+ {
476
+ this.pict.manifest.setValueByHash(this.pict.Bundle, `_ActiveFilterState[${pRecordSetConfiguration.RecordSet}].FilterClauses`, tmpExperienceFromURL);
477
+ }
478
+ }
479
+
480
+ let tmpRecordListData =
481
+ {
482
+ "Title": tmpTitle,
483
+
484
+ "RecordSet": pRecordSetConfiguration.RecordSet,
485
+ "RecordSetConfiguration": pRecordSetConfiguration,
486
+
487
+ "RenderDestination": this.options.DefaultDestinationAddress,
488
+
489
+ "FilterString": pFilterString ? encodeURIComponent(pFilterString) : undefined,
490
+
491
+ "Records": { "Records": [] },
492
+ "TotalRecordCount": { "Count": -1 },
493
+
494
+ "Offset": pOffset || 0,
495
+ "PageSize": pPageSize || 100,
496
+ };
497
+
498
+ // TODO: There are still problems with the way these have nested data. Discuss how we might move that around
499
+ // Fetch the records
500
+ tmpRecordListData.Records = await this.pict.providers[pProviderHash].getDecoratedRecords(tmpRecordListData);
501
+ // Get the total record count
502
+ tmpRecordListData.TotalRecordCount = await this.pict.providers[pProviderHash].getRecordSetCount(tmpRecordListData);
503
+ // Get the record schema
504
+ tmpRecordListData.RecordSchema = await this.pict.providers[pProviderHash].getRecordSchema();
505
+
506
+ // TODO: This should be coming from the schema but that can come after we discuss how we deal with default routing
507
+ tmpRecordListData.GUIDAddress = `GUID${this.pict.providers[pProviderHash].options.Entity}`;
508
+
509
+ // Get the "page end record number" for the current page (e.g. for messaging like Record 700 to 800 of 75,000)
510
+ const tmpOffset = Number(tmpRecordListData.Offset);
511
+ tmpRecordListData.PageEnd = tmpOffset + tmpRecordListData.Records.Records.length;
512
+
513
+ // Compute the number of pages total
514
+ tmpRecordListData.PageCount = Math.ceil(tmpRecordListData.TotalRecordCount.Count / tmpRecordListData.PageSize);
515
+
516
+ // Generate each page's links.
517
+ // TODO: This is fast and cool; any reason not to?
518
+ // Get "bookmarks" as references to the array of page links.
519
+ tmpRecordListData.PageLinkBookmarks = (
520
+ {
521
+ Current: Math.floor(tmpRecordListData.Offset / tmpRecordListData.PageSize)
522
+ });
523
+ tmpRecordListData.PageLinks = [];
524
+ for (let i = 0; i < tmpRecordListData.PageCount; i++)
525
+ {
526
+ if (tmpRecordListData.FilterString)
527
+ {
528
+ tmpRecordListData.PageLinks.push(
529
+ {
530
+ Page: i + 1,
531
+ RelativeOffset: i - tmpRecordListData.PageLinkBookmarks.Current,
532
+ URL: `#/PSRS/${tmpRecordListData.RecordSet}/List/FilteredTo/${tmpRecordListData.FilterString}/${i * tmpRecordListData.PageSize}/${tmpRecordListData.PageSize}`
533
+ });
534
+ }
535
+ else
536
+ {
537
+ tmpRecordListData.PageLinks.push(
538
+ {
539
+ Page: i + 1,
540
+ RelativeOffset: i - tmpRecordListData.PageLinkBookmarks.Current,
541
+ URL: `#/PSRS/${tmpRecordListData.RecordSet}/List/${i * tmpRecordListData.PageSize}/${tmpRecordListData.PageSize}`
542
+ });
543
+ }
544
+ if (tmpEncodedFilterExperience)
545
+ {
546
+ tmpRecordListData.PageLinks[tmpRecordListData.PageLinks.length - 1].URL += `/FilterExperience/${tmpEncodedFilterExperience}`;
547
+ }
548
+ }
549
+
550
+ //FIXME: short-term workaround to not blow up the tempplate rendering with way too many links
551
+ const linkRangeStart = Math.max(0, tmpRecordListData.PageLinkBookmarks.Current - 10);
552
+ const linkRangeEnd = Math.min(tmpRecordListData.PageLinks.length, tmpRecordListData.PageLinkBookmarks.Current + 10);
553
+ tmpRecordListData.PageLinksLimited = tmpRecordListData.PageLinks.slice(linkRangeStart, linkRangeEnd);
554
+ if (linkRangeStart > 0)
555
+ {
556
+ if (tmpRecordListData.FilterString)
557
+ {
558
+ tmpRecordListData.PageLinksLimited.unshift(
559
+ {
560
+ Page: 1,
561
+ RelativeOffset: -tmpRecordListData.PageLinkBookmarks.Current,
562
+ URL: `#/PSRS/${tmpRecordListData.RecordSet}/list/FilteredTo/${tmpRecordListData.FilterString}/${tmpRecordListData.PageSize}/${tmpRecordListData.PageSize}`
563
+ });
564
+ }
565
+ else
566
+ {
567
+ tmpRecordListData.PageLinksLimited.unshift(
568
+ {
569
+ Page: 1,
570
+ RelativeOffset: -tmpRecordListData.PageLinkBookmarks.Current,
571
+ URL: `#/PSRS/${tmpRecordListData.RecordSet}/List/0/${tmpRecordListData.PageSize}`
572
+ });
573
+ }
574
+ if (tmpEncodedFilterExperience)
575
+ {
576
+ tmpRecordListData.PageLinksLimited[tmpRecordListData.PageLinksLimited.length - 1].URL += `/FilterExperience/${tmpEncodedFilterExperience}`;
577
+ }
578
+ }
579
+ if (linkRangeEnd < tmpRecordListData.PageLinks.length)
580
+ {
581
+ if (tmpRecordListData.FilterString)
582
+ {
583
+ tmpRecordListData.PageLinksLimited.push(
584
+ {
585
+ Page: tmpRecordListData.PageCount,
586
+ RelativeOffset: (tmpRecordListData.PageCount - 1) - tmpRecordListData.PageLinkBookmarks.Current,
587
+ URL: `#/PSRS/${tmpRecordListData.RecordSet}/List/FilteredTo/${tmpRecordListData.FilterString}/${(tmpRecordListData.PageCount - 1) * tmpRecordListData.PageSize}/${tmpRecordListData.PageSize}`
588
+ });
589
+ }
590
+ else
591
+ {
592
+ tmpRecordListData.PageLinksLimited.push(
593
+ {
594
+ Page: tmpRecordListData.PageCount,
595
+ RelativeOffset: (tmpRecordListData.PageCount - 1) - tmpRecordListData.PageLinkBookmarks.Current,
596
+ URL: `#/PSRS/${tmpRecordListData.RecordSet}/List/${(tmpRecordListData.PageCount - 1) * tmpRecordListData.PageSize}/${tmpRecordListData.PageSize}`
597
+ });
598
+ }
599
+ if (tmpEncodedFilterExperience)
600
+ {
601
+ tmpRecordListData.PageLinksLimited[tmpRecordListData.PageLinksLimited.length - 1].URL += `/FilterExperience/${tmpEncodedFilterExperience}`;
602
+ }
603
+ }
604
+
605
+ tmpRecordListData.PageLinkBookmarks.Previous = tmpRecordListData.PageLinkBookmarks.Current - 1;
606
+ tmpRecordListData.PageLinkBookmarks.Next = tmpRecordListData.PageLinkBookmarks.Current + 1;
607
+ tmpRecordListData.PageLinkBookmarks.ShowPreviousLink = true;
608
+ tmpRecordListData.PageLinkBookmarks.ShowNextLink = true;
609
+ if (tmpRecordListData.PageLinkBookmarks.Previous < 0)
610
+ {
611
+ tmpRecordListData.PageLinkBookmarks.PreviousLink = false;
612
+ tmpRecordListData.PageLinkBookmarks.ShowPreviousLink = false;
613
+ }
614
+ else
615
+ {
616
+ tmpRecordListData.PageLinkBookmarks.PreviousLink = tmpRecordListData.PageLinks[tmpRecordListData.PageLinkBookmarks.Previous];
617
+ }
618
+ if (tmpRecordListData.PageLinkBookmarks.Next >= tmpRecordListData.PageLinks.length)
619
+ {
620
+ tmpRecordListData.PageLinkBookmarks.NextLink = false;
621
+ tmpRecordListData.PageLinkBookmarks.ShowNextLink = false;
622
+ }
623
+ else
624
+ {
625
+ tmpRecordListData.PageLinkBookmarks.NextLink = tmpRecordListData.PageLinks[tmpRecordListData.PageLinkBookmarks.Next];
626
+ }
627
+
628
+ tmpRecordListData.TableCells = pManifest?.TableCells;
629
+
630
+ if (!tmpRecordListData.TableCells)
631
+ {
632
+ if (tmpRecordListData.RecordSetConfiguration.hasOwnProperty('RecordSetListColumns'))
633
+ {
634
+ tmpRecordListData.TableCells = tmpRecordListData.RecordSetConfiguration.RecordSetListColumns.map((key) =>
635
+ {
636
+ if (typeof key === 'object')
637
+ {
638
+ if (!key.DisplayName)
639
+ {
640
+ key.DisplayName = key.Key; //FIXME: use schema?
641
+ }
642
+ if (!key.ManifestHash)
643
+ {
644
+ key.ManifestHash = 'Default';
645
+ }
646
+ if (key.PictDashboard && !key.PictDashboard.ValueTemplate)
647
+ {
648
+ key.PictDashboard.ValueTemplate = '{~ProcessCell:Record.Data.Key~}';
649
+ }
650
+ return key;
651
+ }
652
+ return {
653
+ Key: key,
654
+ DisplayName: key, //FIXME: use schema?
655
+ ManifestHash: 'Default',
656
+ PictDashboard:
657
+ {
658
+ ValueTemplate: '{~ProcessCell:Record.Data.Key~}',
659
+ },
660
+ };
661
+ });
662
+ }
663
+ else
664
+ {
665
+ this.dynamicallyGenerateColumns(tmpRecordListData);
666
+ }
667
+ }
668
+
669
+ tmpRecordListData = this.onBeforeRenderList(tmpRecordListData);
670
+
671
+ this.pict.providers.DynamicRecordsetSolver.solveDashboard(pManifest, tmpRecordListData.Records.Records);
672
+
673
+ this.renderAsync('PRSP_Renderable_List', tmpRecordListData.RenderDestination, tmpRecordListData,
674
+ function (pError)
675
+ {
676
+ if (pError)
677
+ {
678
+ this.pict.log.error(`RecordSetList: Error rendering list ${pError}`, tmpRecordListData);
679
+ return;
680
+ }
681
+
682
+ if (this.pict.LogNoisiness > 0)
683
+ {
684
+ this.pict.log.info(`RecordSetList: Rendered list ${tmpRecordListData.RecordSet} with ${tmpRecordListData.Records.Records.length} records.`, tmpRecordListData);
685
+ }
686
+ else
687
+ {
688
+ this.pict.log.info(`RecordSetList: Rendered list ${tmpRecordListData.RecordSet} with ${tmpRecordListData.Records.Records.length} records.`);
689
+ }
690
+ }.bind(this));
691
+ }
692
+
414
693
  onInitialize()
415
694
  {
416
695
  this.childViews.headerList = this.pict.addView('PRSP-List-HeaderList', viewHeaderList.default_configuration, viewHeaderList);
@@ -1,12 +1,14 @@
1
1
  export = RecordSetMetacontroller;
2
2
  declare class RecordSetMetacontroller {
3
3
  constructor(pFable: any, pOptions: any, pServiceHash: any);
4
- /** @type {import('pict') & { addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any, newManyfest: (rec: any) => any }} */
4
+ /** @type {import('pict') & { PictSectionRecordSet: any, addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any, newManyfest: (rec: any) => any }} */
5
5
  fable: import("pict") & {
6
+ PictSectionRecordSet: any;
6
7
  addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any;
7
8
  newManyfest: (rec: any) => any;
8
9
  };
9
10
  pict: import("pict") & {
11
+ PictSectionRecordSet: any;
10
12
  addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any;
11
13
  newManyfest: (rec: any) => any;
12
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RecordsSet-MetaController.d.ts","sourceRoot":"","sources":["../../source/services/RecordsSet-MetaController.js"],"names":[],"mappings":";AAwBA;IAEC,2DA0CC;IArCA,0JAA0J;IAC1J,OADW,OAAO,MAAM,CAAC,GAAG;QAAE,iCAAiC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;QAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CAC5I;IACV;2CAFiE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG;qBAAe,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG;MAE9H;IACtB,kBAAkB;IAClB,KADW,GAAG,CACN;IACR,kBAAkB;IAClB,SADW,GAAG,CACF;IACZ,qBAAqB;IACrB,MADW,MAAM,CACR;IAET;;;;;MAKC;IAED,sDAAsD;IACtD,oBADW,MAAM,CAAC,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CACtB;IAC5B,kDAAkD;IAClD,iCADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACL;IAEzC,kDAAkD;IAClD,yBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACb;IAEjC,+DAA+D;IAC/D,kBADW,KAAK,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CACjC;IAE1B,kDAAkD;IAClD,qBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACjB;IAC7B,iDAAiD;IACjD,WADW,MAAM,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC,CAAC,CACG;IAEhD,yBAA4B;IAiC7B;;;;OAIG;IACH,sCAJW,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAK9B;IAED;;OAEG;IACH,oDAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAyG7B;IAED;;OAEG;IACH,8DAFW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAqBpC;IAED;;;;OAIG;IACH,qCAJW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,YAC5B,MAAM,mBACN,MAAM,OAqDhB;IAED;;OAEG;IACH,+CAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAe7B;IAED;;OAEG;IACH,qCAMC;IAED;;OAEG;IACH,0BAFW,MAAM,oBAYhB;IAED;;;;;;OAMG;IACH,qCANW,MAAM,gBACN,MAAM,YACN,OAAO,GAEN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAK9B;IAED,0BAmFC;IAED,6CAGC;IAED;;OAEG;IACH,sCAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAwC7B;CAED;;;;AAtdD,kCAAkC;AAClC,sCADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAI3B"}
1
+ {"version":3,"file":"RecordsSet-MetaController.d.ts","sourceRoot":"","sources":["../../source/services/RecordsSet-MetaController.js"],"names":[],"mappings":";AAwBA;IAEC,2DA2GC;IAtGA,qLAAqL;IACrL,OADW,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE,GAAG,CAAC;QAAC,iCAAiC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;QAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CACvK;IACV;8BAFoD,GAAG;2CAAqC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG;qBAAe,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG;MAEzJ;IACtB,kBAAkB;IAClB,KADW,GAAG,CACN;IACR,kBAAkB;IAClB,SADW,GAAG,CACF;IACZ,qBAAqB;IACrB,MADW,MAAM,CACR;IAET;;;;;MAKC;IAED,sDAAsD;IACtD,oBADW,MAAM,CAAC,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CACtB;IAC5B,kDAAkD;IAClD,iCADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACL;IAEzC,kDAAkD;IAClD,yBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACb;IAEjC,+DAA+D;IAC/D,kBADW,KAAK,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CACjC;IAE1B,kDAAkD;IAClD,qBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACjB;IAC7B,iDAAiD;IACjD,WADW,MAAM,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC,CAAC,CACG;IAEhD,yBAA4B;IAkG7B;;;;OAIG;IACH,sCAJW,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAK9B;IAED;;OAEG;IACH,oDAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAyG7B;IAED;;OAEG;IACH,8DAFW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAqBpC;IAED;;;;OAIG;IACH,qCAJW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,YAC5B,MAAM,mBACN,MAAM,OAqDhB;IAED;;OAEG;IACH,+CAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAe7B;IAED;;OAEG;IACH,qCAMC;IAED;;OAEG;IACH,0BAFW,MAAM,oBAYhB;IAED;;;;;;OAMG;IACH,qCANW,MAAM,gBACN,MAAM,YACN,OAAO,GAEN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAK9B;IAED,0BAmFC;IAED,6CAGC;IAED;;OAEG;IACH,sCAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAwC7B;CAED;;;;AAvhBD,kCAAkC;AAClC,sCADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAI3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordSet-Filters.d.ts","sourceRoot":"","sources":["../../source/views/RecordSet-Filters.js"],"names":[],"mappings":";AA+LA;IAEC,2DA4BC;IAxBA,kHAAkH;IAClH,MADW,GAAe,GAAG,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE;;;;;;SAAsC,CAAA;KAAE,CACrG;IAeT,cAA+E;IAG/E,wCAA0E;IAO3E;;OAEG;IACH,6BAFY,MAAM,CAKjB;IAED;;;;OAIG;IACH,kCAJW,MAAM,GAEL,GAAG,CAMd;IAKD;;;;OAIG;IACH,qBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,mBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,qBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAShB;IAED;;;;OAIG;IACH,0BAJW,MAAM,gBACN,MAAM,kBACN,MAAM,QAgDhB;IAED;;;;OAIG;IACH,oBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAqBhB;IAED;;;;OAIG;IACH,0BAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAQhB;IAED,mGAOC;IAED,6FAOC;IAED,wCAIC;IAwCD,6DAeC;IAED;;;;OAIG;IACH,yCAJW,MAAM,GAEL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAUvC;IAED;;;;;OAKG;IACH,iBALW,MAAM,aACN,iBAAiB,GAEhB,OAAO,CAAC,WAAW,CAAC,CAU/B;IAED;;;OAGG;IACH,sBAHW,UAAU,aACV,iBAAiB,mBAY3B;IAED;;;;OAIG;IACH,oBAJW,WAAW,GAEV,MAAM,CA2BjB;IAED;;;;OAIG;IACH,eAJW,MAAM,GAEL,WAAW,CAsCtB;CACD;;;;;AAzkBD,kCAAkC;AAClC,oDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+I5B"}
1
+ {"version":3,"file":"RecordSet-Filters.d.ts","sourceRoot":"","sources":["../../source/views/RecordSet-Filters.js"],"names":[],"mappings":";AAgMA;IAEC,2DA4BC;IAxBA,kHAAkH;IAClH,MADW,GAAe,GAAG,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE;;;;;;SAAsC,CAAA;KAAE,CACrG;IAeT,cAA+E;IAG/E,wCAA0E;IAO3E;;OAEG;IACH,6BAFY,MAAM,CAKjB;IAED;;;;OAIG;IACH,kCAJW,MAAM,GAEL,GAAG,CAMd;IAKD;;;;OAIG;IACH,qBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,mBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,qBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAShB;IAED;;;;OAIG;IACH,0BAJW,MAAM,gBACN,MAAM,kBACN,MAAM,QAgDhB;IAED;;;;OAIG;IACH,oBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAqBhB;IAED;;;;OAIG;IACH,0BAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAQhB;IAED,mGAOC;IAED,6FAOC;IAED,wCAIC;IA0CD,6DAeC;IAED;;;;OAIG;IACH,yCAJW,MAAM,GAEL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAUvC;IAED;;;;;OAKG;IACH,iBALW,MAAM,aACN,iBAAiB,GAEhB,OAAO,CAAC,WAAW,CAAC,CAU/B;IAED;;;OAGG;IACH,sBAHW,UAAU,aACV,iBAAiB,mBAY3B;IAED;;;;OAIG;IACH,oBAJW,WAAW,GAEV,MAAM,CA2BjB;IAED;;;;OAIG;IACH,eAJW,MAAM,GAEL,WAAW,CAsCtB;CACD;;;;;AA5kBD,kCAAkC;AAClC,oDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgJ5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordSet-Dashboard-RecordListEntry.d.ts","sourceRoot":"","sources":["../../../source/views/dashboard/RecordSet-Dashboard-RecordListEntry.js"],"names":[],"mappings":";AA4GA;IAEC,2DAIC;CACD;;;;;AAjHD,kCAAkC;AAClC,2DADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAwG1B"}
1
+ {"version":3,"file":"RecordSet-Dashboard-RecordListEntry.d.ts","sourceRoot":"","sources":["../../../source/views/dashboard/RecordSet-Dashboard-RecordListEntry.js"],"names":[],"mappings":";AA2GA;IAEC,2DAIC;CACD;;;;;AAhHD,kCAAkC;AAClC,2DADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAuG1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordSet-Dashboard.d.ts","sourceRoot":"","sources":["../../../source/views/dashboard/RecordSet-Dashboard.js"],"names":[],"mappings":";AA4EA;IAOE;;;;;;;;MAQC;IAGF,iEAuCC;IA2BD,8CAGC;IAED,sDAuCC;IAnCA,iCAUC;IA2BF;;;;;;;;;;OAUG;IACH,wCAVW,MAAM,2BACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CA+QxB;IAED;;;;;;;;;OASG;IACH,yCATW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CA4QxB;CAwBD;;;;;AAzwBD,kCAAkC;AAClC,iDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+D1B"}
1
+ {"version":3,"file":"RecordSet-Dashboard.d.ts","sourceRoot":"","sources":["../../../source/views/dashboard/RecordSet-Dashboard.js"],"names":[],"mappings":";AA4EA;IAOE;;;;;;;;MAQC;IAGF,iEAuCC;IA2BD,8CAGC;IAED,sDAuCC;IAnCA,iCAUC;IA2BF;;;;;;;;;;OAUG;IACH,wCAVW,MAAM,2BACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CAmRxB;IAED;;;;;;;;;OASG;IACH,yCATW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CA4QxB;CAwBD;;;;;AA7wBD,kCAAkC;AAClC,iDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+D1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordSet-List-RecordListEntry.d.ts","sourceRoot":"","sources":["../../../source/views/list/RecordSet-List-RecordListEntry.js"],"names":[],"mappings":";AA8GA;IAEC,2DAIC;CACD;;;;;AAnHD,kCAAkC;AAClC,2DADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA0G1B"}
1
+ {"version":3,"file":"RecordSet-List-RecordListEntry.d.ts","sourceRoot":"","sources":["../../../source/views/list/RecordSet-List-RecordListEntry.js"],"names":[],"mappings":";AA6GA;IAEC,2DAIC;CACD;;;;;AAlHD,kCAAkC;AAClC,2DADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyG1B"}
@@ -24,6 +24,18 @@ declare class viewRecordSetList extends libPictRecordSetRecordView {
24
24
  * @return {Promise<void>}
25
25
  */
26
26
  renderList(pRecordSetConfiguration: Record<string, any>, pProviderHash: string, pFilterString: string, pSerializedFilterExperience: string, pOffset: number, pPageSize: number): Promise<void>;
27
+ /**
28
+ * @param {object} pManifest
29
+ * @param {Record<string, any>} pRecordSetConfiguration
30
+ * @param {string} pProviderHash
31
+ * @param {string} pFilterString
32
+ * @param {string} pSerializedFilterExperience
33
+ * @param {number} pOffset
34
+ * @param {number} pPageSize
35
+ *
36
+ * @return {Promise<void>}
37
+ */
38
+ renderListFromManifest(pManifest: object, pRecordSetConfiguration: Record<string, any>, pProviderHash: string, pFilterString: string, pSerializedFilterExperience: string, pOffset: number, pPageSize: number): Promise<void>;
27
39
  }
28
40
  declare namespace viewRecordSetList {
29
41
  export { _DEFAULT_CONFIGURATION__List as default_configuration };
@@ -1 +1 @@
1
- {"version":3,"file":"RecordSet-List.d.ts","sourceRoot":"","sources":["../../../source/views/list/RecordSet-List.js"],"names":[],"mappings":";AA4EA;IAOE;;;;;;;;MAQC;IAGF,4DAwBC;IAiBD,8CAGC;IAED,sDAkCC;IA9BA,iCAUC;IAsBF;;;;;;;;;OASG;IACH,oCATW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CAmOxB;CAwBD;;;;;AAxaD,kCAAkC;AAClC,4CADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+D1B"}
1
+ {"version":3,"file":"RecordSet-List.d.ts","sourceRoot":"","sources":["../../../source/views/list/RecordSet-List.js"],"names":[],"mappings":";AA4EA;IAOE;;;;;;;;MAQC;IAGF,4DAwBC;IAiBD,8CAGC;IAED,sDAqCC;IAjCA,iCAUC;IAyBF;;;;;;;;;OASG;IACH,oCATW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CAwPxB;IAED;;;;;;;;;;OAUG;IACH,kCAVW,MAAM,2BACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,iBACN,MAAM,+BACN,MAAM,WACN,MAAM,aACN,MAAM,GAEL,OAAO,CAAC,IAAI,CAAC,CAoPxB;CAwBD;;;;;AA/rBD,kCAAkC;AAClC,4CADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+D1B"}