@xh/hoist 77.0.0-SNAPSHOT.1760722044277 → 77.0.0-SNAPSHOT.1761102084750

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.
@@ -401,6 +401,7 @@ export declare class Store extends HoistBase {
401
401
  private rebuildFiltered;
402
402
  private createRecord;
403
403
  private createRecords;
404
+ private get summaryRecordIds();
404
405
  private parseRaw;
405
406
  private parseUpdate;
406
407
  private createDataDefaults;
@@ -7,6 +7,8 @@ export declare class ViewRowData {
7
7
  constructor(id: string);
8
8
  /** Unique id. */
9
9
  id: string;
10
+ /** Denotes a type for the row */
11
+ cubeRowType: 'leaf' | 'aggregate' | 'bucket';
10
12
  /**
11
13
  * Label of the row. The dimension value or, for leaf rows. the underlying cubeId.
12
14
  * Suitable for display, although apps will typically wish to customize leaf row rendering.
package/data/Store.ts CHANGED
@@ -1041,26 +1041,36 @@ export class Store extends HoistBase {
1041
1041
  return ret;
1042
1042
  }
1043
1043
 
1044
- private createRecords(rawData: PlainObject[], parent: StoreRecord, recordMap = new Map()) {
1044
+ private createRecords(
1045
+ rawData: PlainObject[],
1046
+ parent: StoreRecord,
1047
+ recordMap: Map<StoreRecordId, StoreRecord> = new Map(),
1048
+ summaryRecordIds: Set<StoreRecordId> = this.summaryRecordIds
1049
+ ) {
1045
1050
  const {loadTreeData, loadTreeDataFrom} = this;
1051
+
1046
1052
  rawData.forEach(raw => {
1047
1053
  const rec = this.createRecord(raw, parent),
1048
1054
  {id} = rec;
1049
1055
 
1050
1056
  throwIf(
1051
- recordMap.has(id) || this.summaryRecords?.some(it => it.id === id),
1057
+ recordMap.has(id) || summaryRecordIds.has(id),
1052
1058
  `ID ${id} is not unique. Use the 'Store.idSpec' config to resolve a unique ID for each record.`
1053
1059
  );
1054
1060
 
1055
1061
  recordMap.set(id, rec);
1056
1062
 
1057
1063
  if (loadTreeData && raw[loadTreeDataFrom]) {
1058
- this.createRecords(raw[loadTreeDataFrom], rec, recordMap);
1064
+ this.createRecords(raw[loadTreeDataFrom], rec, recordMap, summaryRecordIds);
1059
1065
  }
1060
1066
  });
1061
1067
  return recordMap;
1062
1068
  }
1063
1069
 
1070
+ private get summaryRecordIds(): Set<StoreRecordId> {
1071
+ return new Set(this.summaryRecords?.map(it => it.id) ?? []);
1072
+ }
1073
+
1064
1074
  private parseRaw(data: PlainObject): PlainObject {
1065
1075
  // a) create/prepare the data object
1066
1076
  const ret = Object.create(this._dataDefaults);
@@ -19,6 +19,9 @@ export class ViewRowData {
19
19
  /** Unique id. */
20
20
  id: string;
21
21
 
22
+ /** Denotes a type for the row */
23
+ cubeRowType: 'leaf' | 'aggregate' | 'bucket';
24
+
22
25
  /**
23
26
  * Label of the row. The dimension value or, for leaf rows. the underlying cubeId.
24
27
  * Suitable for display, although apps will typically wish to customize leaf row rendering.
@@ -38,6 +38,7 @@ export class AggregateRow extends BaseRow {
38
38
 
39
39
  this.dim = dim;
40
40
  this.dimName = dimName;
41
+ this.data.cubeRowType = 'aggregate';
41
42
  this.data.cubeLabel = strVal;
42
43
  this.data.cubeDimension = dimName;
43
44
 
@@ -35,6 +35,7 @@ export class BucketRow extends BaseRow {
35
35
  super(view, id);
36
36
 
37
37
  this.bucketSpec = bucketSpec;
38
+ this.data.cubeRowType = 'bucket';
38
39
  this.data.cubeLabel = bucketSpec.labelFn(bucketVal);
39
40
  this.data.cubeDimension = bucketSpec.name;
40
41
 
@@ -33,8 +33,8 @@ export class LeafRow extends BaseRow {
33
33
 
34
34
  constructor(view: View, id: string, rawRecord: StoreRecord) {
35
35
  super(view, id);
36
-
37
36
  this.cubeRecordId = rawRecord.id;
37
+ this.data.cubeRowType = 'leaf';
38
38
  this.data.cubeLabel = rawRecord.id.toString();
39
39
  this.data.cubeDimension = null;
40
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xh/hoist",
3
- "version": "77.0.0-SNAPSHOT.1760722044277",
3
+ "version": "77.0.0-SNAPSHOT.1761102084750",
4
4
  "description": "Hoist add-on for building and deploying React Applications.",
5
5
  "repository": "github:xh/hoist-react",
6
6
  "homepage": "https://xh.io",