@ifc-lite/lists 1.20.1 → 1.22.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.
package/dist/engine.d.ts CHANGED
@@ -1,18 +1,51 @@
1
- import type { ListDataProvider, ListDefinition, ListResult, ListRow, ListGroup, ListSummary } from './types.js';
1
+ import type { ListDataProvider, ListDefinition, ListResult, ListRow, ListGroup, ListGrouping, ListSummary, ListScheduleRow } from './types.js';
2
2
  /**
3
3
  * Execute a list definition against a data provider.
4
4
  * Returns a flat table result with matched entities and column values.
5
5
  */
6
6
  export declare function executeList(definition: ListDefinition, provider: ListDataProvider, modelId?: string): ListResult;
7
+ /**
8
+ * Effective ordered group-by column ids for a grouping config — `columnIds`
9
+ * (multi-criteria, issue #1790) when present, else the legacy single
10
+ * `columnId`. `[]` when the config only carries sum columns (or is absent).
11
+ */
12
+ export declare function groupingColumnIds(grouping: ListGrouping | undefined): string[];
7
13
  /**
8
14
  * Build the grouped breakdown + whole-result summary for a definition over a
9
15
  * row set. Returns `{}` when no grouping is configured, so the result shape is
10
16
  * unchanged for plain flat lists. Exported so federated callers can re-derive
11
17
  * groups/summary after merging rows from several models.
18
+ *
19
+ * Multi-criteria grouping (issue #1790): with several group columns the
20
+ * returned `groups` is a FLAT pre-order list — each parent group followed by
21
+ * its subgroups, `level`/`path` carrying the nesting. Every group carries its
22
+ * own `count` (the Count aggregate) and per-column sums.
12
23
  */
13
24
  export declare function summariseListRows(definition: ListDefinition, rows: ListRow[]): {
14
25
  groups?: ListGroup[];
15
26
  summary?: ListSummary;
16
27
  };
28
+ /**
29
+ * Collision-free unique key for a group path: the JSON encoding of the label
30
+ * array. A plain label join would be ambiguous whenever a model-derived label
31
+ * contains the join separator, silently merging distinct groups' expansion /
32
+ * render identity downstream.
33
+ */
34
+ export declare function groupPathKey(path: string[]): string;
35
+ /**
36
+ * Project a flat pre-order `ListGroup[]` (as returned by `summariseListRows`)
37
+ * down to a `schedule` / pivot presentation (issue #1790 round 2): ONE row
38
+ * per group-value tuple — the LEAF groups only, in the same order they
39
+ * appear in `groups`. Because `groups` is a pre-order flattening of the
40
+ * group tree, every parent's leaf descendants stay contiguous, so the result
41
+ * is already in the right order for a Bonsai-style schedule table (rows for
42
+ * one outer group value sit together) without re-sorting here.
43
+ *
44
+ * `levelCount` is the number of active grouping columns — typically
45
+ * `groupingColumnIds(grouping).filter(id => columns still has id).length`.
46
+ * With 0 levels (nothing to pivot on) or no `groups` at all, this returns
47
+ * `[]` rather than inventing a single all-rows row.
48
+ */
49
+ export declare function toScheduleRows(groups: ListGroup[] | undefined, levelCount: number): ListScheduleRow[];
17
50
  export declare function listResultToCSV(result: ListResult, delimiter?: string): string;
18
51
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EAIZ,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,SAAY,GAClB,UAAU,CAiDZ;AAYD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,OAAO,EAAE,GACd;IAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,CA+CjD;AA0aD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,SAAM,GAAG,MAAM,CA4B3E"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EAIhB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,SAAY,GAClB,UAAU,CAiDZ;AAaD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,EAAE,CAM9E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,OAAO,EAAE,GACd;IAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,CAsEjD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,EAAE,CAWrG;AAucD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,SAAM,GAAG,MAAM,CA4B3E"}
package/dist/engine.js CHANGED
@@ -53,18 +53,44 @@ export function executeList(definition, provider, modelId = 'default') {
53
53
  // ============================================================================
54
54
  // Grouping & Aggregation
55
55
  // ============================================================================
56
+ /**
57
+ * Effective ordered group-by column ids for a grouping config — `columnIds`
58
+ * (multi-criteria, issue #1790) when present, else the legacy single
59
+ * `columnId`. `[]` when the config only carries sum columns (or is absent).
60
+ */
61
+ export function groupingColumnIds(grouping) {
62
+ if (!grouping)
63
+ return [];
64
+ const ids = grouping.columnIds && grouping.columnIds.length > 0
65
+ ? grouping.columnIds
66
+ : (grouping.columnId ? [grouping.columnId] : []);
67
+ return ids.filter(id => id !== '');
68
+ }
56
69
  /**
57
70
  * Build the grouped breakdown + whole-result summary for a definition over a
58
71
  * row set. Returns `{}` when no grouping is configured, so the result shape is
59
72
  * unchanged for plain flat lists. Exported so federated callers can re-derive
60
73
  * groups/summary after merging rows from several models.
74
+ *
75
+ * Multi-criteria grouping (issue #1790): with several group columns the
76
+ * returned `groups` is a FLAT pre-order list — each parent group followed by
77
+ * its subgroups, `level`/`path` carrying the nesting. Every group carries its
78
+ * own `count` (the Count aggregate) and per-column sums.
61
79
  */
62
80
  export function summariseListRows(definition, rows) {
63
81
  const grouping = definition.grouping;
64
82
  if (!grouping)
65
83
  return {};
66
84
  const columns = definition.columns;
67
- const groupIdx = columns.findIndex(c => c.id === grouping.columnId);
85
+ // Drop group ids that no longer resolve to a column (e.g. the column was
86
+ // removed after the grouping was persisted) so the hierarchy matches the
87
+ // viewer/export exactly instead of inserting synthetic "(none)" levels.
88
+ const groupIds = groupingColumnIds(grouping).filter(id => columns.some(c => c.id === id));
89
+ // No resolvable group column (sums only, or every group column gone) keeps
90
+ // the legacy single-bucket behaviour: every row lands in one "(none)" group.
91
+ const levelIndices = groupIds.length > 0
92
+ ? groupIds.map(id => columns.findIndex(c => c.id === id))
93
+ : [-1];
68
94
  const sumIndices = grouping.sumColumnIds
69
95
  .map(id => ({ id, idx: columns.findIndex(c => c.id === id) }))
70
96
  .filter(s => s.idx >= 0);
@@ -74,33 +100,86 @@ export function summariseListRows(definition, rows) {
74
100
  out[s.id] = 0;
75
101
  return out;
76
102
  };
77
- // Whole-result summary.
103
+ // Whole-result summary (accumulated once, independent of nesting depth).
78
104
  const summary = { count: rows.length, sums: zeroSums() };
79
- // Group accumulation, preserving first-seen order.
80
- const byKey = new Map();
81
105
  for (const row of rows) {
82
- const raw = groupIdx >= 0 ? row.values[groupIdx] : null;
83
- const label = raw === null || raw === undefined || raw === '' ? '(none)' : String(raw);
84
- const key = label;
85
- let group = byKey.get(key);
86
- if (!group) {
87
- group = { key, label, count: 0, sums: zeroSums() };
88
- byKey.set(key, group);
89
- }
90
- group.count++;
91
106
  for (const s of sumIndices) {
92
107
  const v = row.values[s.idx];
93
- if (typeof v === 'number' && Number.isFinite(v)) {
94
- group.sums[s.id] += v;
108
+ if (typeof v === 'number' && Number.isFinite(v))
95
109
  summary.sums[s.id] += v;
96
- }
97
110
  }
98
111
  }
99
- const groups = Array.from(byKey.values());
100
- // Stable, useful default: largest groups first.
101
- groups.sort((a, b) => b.count - a.count || a.label.localeCompare(b.label));
112
+ // Recursive per-level bucketing, preserving first-seen order within a level,
113
+ // then ordered largest-group-first (stable default) before flattening.
114
+ const groups = [];
115
+ const walk = (subRows, level, parentPath) => {
116
+ const colIdx = levelIndices[level];
117
+ const byKey = new Map();
118
+ for (const row of subRows) {
119
+ const raw = colIdx >= 0 ? row.values[colIdx] : null;
120
+ const label = raw === null || raw === undefined || raw === '' ? '(none)' : String(raw);
121
+ let bucket = byKey.get(label);
122
+ if (!bucket) {
123
+ const path = [...parentPath, label];
124
+ bucket = { group: { key: groupPathKey(path), label, count: 0, sums: zeroSums(), level, path }, rows: [] };
125
+ byKey.set(label, bucket);
126
+ }
127
+ bucket.group.count++;
128
+ bucket.rows.push(row);
129
+ for (const s of sumIndices) {
130
+ const v = row.values[s.idx];
131
+ if (typeof v === 'number' && Number.isFinite(v))
132
+ bucket.group.sums[s.id] += v;
133
+ }
134
+ }
135
+ const ordered = Array.from(byKey.values())
136
+ .sort((a, b) => b.group.count - a.group.count || a.group.label.localeCompare(b.group.label));
137
+ for (const bucket of ordered) {
138
+ groups.push(bucket.group);
139
+ if (level + 1 < levelIndices.length) {
140
+ walk(bucket.rows, level + 1, bucket.group.path);
141
+ }
142
+ }
143
+ };
144
+ walk(rows, 0, []);
102
145
  return { groups, summary };
103
146
  }
147
+ /**
148
+ * Collision-free unique key for a group path: the JSON encoding of the label
149
+ * array. A plain label join would be ambiguous whenever a model-derived label
150
+ * contains the join separator, silently merging distinct groups' expansion /
151
+ * render identity downstream.
152
+ */
153
+ export function groupPathKey(path) {
154
+ return JSON.stringify(path);
155
+ }
156
+ /**
157
+ * Project a flat pre-order `ListGroup[]` (as returned by `summariseListRows`)
158
+ * down to a `schedule` / pivot presentation (issue #1790 round 2): ONE row
159
+ * per group-value tuple — the LEAF groups only, in the same order they
160
+ * appear in `groups`. Because `groups` is a pre-order flattening of the
161
+ * group tree, every parent's leaf descendants stay contiguous, so the result
162
+ * is already in the right order for a Bonsai-style schedule table (rows for
163
+ * one outer group value sit together) without re-sorting here.
164
+ *
165
+ * `levelCount` is the number of active grouping columns — typically
166
+ * `groupingColumnIds(grouping).filter(id => columns still has id).length`.
167
+ * With 0 levels (nothing to pivot on) or no `groups` at all, this returns
168
+ * `[]` rather than inventing a single all-rows row.
169
+ */
170
+ export function toScheduleRows(groups, levelCount) {
171
+ if (!groups || levelCount <= 0)
172
+ return [];
173
+ const leafLevel = levelCount - 1;
174
+ return groups
175
+ // `level` is optional on ListGroup. Defaulting a missing one to 0 would
176
+ // put EVERY group at level 0, so a hand-built multi-level set (the public
177
+ // API allows one — `summariseListRows` always fills `level` in) would
178
+ // match no leaf at all and pivot to nothing. Fall back to the depth its
179
+ // own `path` implies before assuming the outermost level.
180
+ .filter((g) => (g.level ?? (g.path ? g.path.length - 1 : 0)) === leafLevel)
181
+ .map((g) => ({ key: g.key, path: g.path ?? [g.label], count: g.count, sums: g.sums }));
182
+ }
104
183
  // ============================================================================
105
184
  // Source Set Resolution
106
185
  // ============================================================================
@@ -190,10 +269,32 @@ function getConditionValue(entityId, condition, provider) {
190
269
  return getSpatialValue(entityId, condition.propertyName, provider);
191
270
  case 'model':
192
271
  return provider.getModelName?.() || null;
272
+ case 'zone':
273
+ return getZoneValue(entityId, condition.psetName ?? '', condition.propertyName, provider);
193
274
  default:
194
275
  return null;
195
276
  }
196
277
  }
278
+ /**
279
+ * Resolve a `zone` column/condition (issue #1810): `zoneSetId` identifies
280
+ * which zone set (durable id, not display name — sets can be renamed);
281
+ * `mode` selects `Zone` (default — the zone name, or every straddled zone's
282
+ * name joined when the element crosses a boundary) or `Straddles` (boolean),
283
+ * matched case-insensitively like `spatial`'s level selector. `null` when the
284
+ * provider has no zone data (no zones defined, or this element was never
285
+ * classified).
286
+ */
287
+ function getZoneValue(entityId, zoneSetId, mode, provider) {
288
+ const assignment = provider.getZoneAssignment?.(entityId, zoneSetId);
289
+ if (!assignment)
290
+ return null;
291
+ if (mode.toLowerCase() === 'straddles')
292
+ return assignment.straddles;
293
+ if (assignment.straddles && assignment.touchedZoneNames.length > 0) {
294
+ return uniqueJoin(assignment.touchedZoneNames);
295
+ }
296
+ return assignment.zoneName;
297
+ }
197
298
  /**
198
299
  * Resolve a `spatial` column/condition to a spatial-container name at the
199
300
  * requested level. `propertyName` selects the level, matched
@@ -333,6 +434,9 @@ function extractColumnValues(columns, entityId, provider, columnMeta) {
333
434
  case 'model':
334
435
  values[i] = provider.getModelName?.() || null;
335
436
  break;
437
+ case 'zone':
438
+ values[i] = getZoneValue(entityId, col.psetName ?? '', col.propertyName, provider);
439
+ break;
336
440
  default:
337
441
  values[i] = null;
338
442
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, ListClassificationRef, ListGrouping, ListGroup, ListSummary, DiscoveredColumns, EntityAttribute, } from './types.js';
1
+ export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, ListClassificationRef, ListGrouping, ListGroup, ListSummary, ListScheduleRow, DiscoveredColumns, EntityAttribute, } from './types.js';
2
2
  export { ENTITY_ATTRIBUTES } from './types.js';
3
- export { executeList, listResultToCSV, summariseListRows } from './engine.js';
3
+ export { executeList, listResultToCSV, summariseListRows, groupingColumnIds, groupPathKey, toScheduleRows, } from './engine.js';
4
4
  export { compileNameMatcher, isNamePattern } from './name-pattern.js';
5
5
  export { discoverColumns } from './discovery.js';
6
6
  export { LIST_PRESETS } from './presets.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EACL,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,GACjG,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  export { ENTITY_ATTRIBUTES } from './types.js';
5
5
  // Engine
6
- export { executeList, listResultToCSV, summariseListRows } from './engine.js';
6
+ export { executeList, listResultToCSV, summariseListRows, groupingColumnIds, groupPathKey, toScheduleRows, } from './engine.js';
7
7
  // Name pattern matching (Bonsai-style `/regex/` set/property names)
8
8
  export { compileNameMatcher, isNamePattern } from './name-pattern.js';
9
9
  // Column discovery
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmB/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9E,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoB/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,SAAS;AACT,OAAO,EACL,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,GACjG,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
package/dist/types.d.ts CHANGED
@@ -105,6 +105,26 @@ export interface ListDataProvider {
105
105
  * when absent, callers fall back to the type-sampled `discoverColumns()`.
106
106
  */
107
107
  discoverAllColumns?(): DiscoveredColumns;
108
+ /**
109
+ * Location-zone assignment (issue #1810) for `zoneSetId` — a viewer-side
110
+ * classification computed from 3D boxes the user draws, not from IFC pset
111
+ * data. `null` when no assignment has been computed yet (e.g. no zones
112
+ * defined) or `zoneSetId` doesn't resolve. `touchedZoneNames` lists every
113
+ * zone the element's bounds overlap, in the same order the assignment
114
+ * engine found them — non-empty only when `straddles` is true. Optional:
115
+ * providers built before zones existed simply have no `zone` column data.
116
+ */
117
+ getZoneAssignment?(expressId: number, zoneSetId: string): {
118
+ zoneName: string | null;
119
+ straddles: boolean;
120
+ touchedZoneNames: string[];
121
+ } | null;
122
+ /** Every zone set currently defined, for the column/condition picker to
123
+ * offer by name while storing the durable id. */
124
+ getZoneSetNames?(): Array<{
125
+ id: string;
126
+ name: string;
127
+ }>;
108
128
  }
109
129
  /** A classification reference exposed to the list engine (code + name). */
110
130
  export interface ListClassificationRef {
@@ -143,8 +163,30 @@ export interface ListDefinition {
143
163
  export interface ListGrouping {
144
164
  /** Column id to group rows by (e.g. a Type / Material / Storey column). */
145
165
  columnId: string;
166
+ /**
167
+ * Multi-criteria grouping (issue #1790): ordered column ids to group by,
168
+ * outermost first (e.g. Building, then Storey). When present and non-empty
169
+ * this takes precedence over `columnId`; `columnId` is kept in sync with the
170
+ * first entry for consumers built before multi-level grouping existed.
171
+ */
172
+ columnIds?: string[];
146
173
  /** Column ids whose numeric values are summed per group and overall. */
147
174
  sumColumnIds: string[];
175
+ /**
176
+ * Result presentation for a grouped list (issue #1790 round 2 — the
177
+ * reporter's follow-up: Count as a first-class column, and a pivot/schedule
178
+ * layout like Bonsai's, not a nested tree):
179
+ * - `nested` (default) — the existing collapsible tree: one header per
180
+ * (sub)group with a count badge next to the label, per-element rows
181
+ * underneath.
182
+ * - `schedule` — a pivot/schedule table: ONE row per group-value tuple (a
183
+ * leaf group combination), the grouping columns repeated as leading
184
+ * columns, followed by a first-class `Count` column and any configured
185
+ * sums. No per-element detail rows.
186
+ * Optional so lists persisted before this existed keep their prior (nested)
187
+ * behaviour — `undefined` is treated as `nested`.
188
+ */
189
+ view?: 'nested' | 'schedule';
148
190
  }
149
191
  export interface PropertyCondition {
150
192
  /**
@@ -156,12 +198,17 @@ export interface PropertyCondition {
156
198
  * - `spatial` — a spatial-container name; `propertyName` selects the level
157
199
  * (`Container`, `Storey` (default), `Building`, `Site`, or `Project`)
158
200
  * - `model` — the source model / file name (federation identity)
201
+ * - `zone` — a location-zone assignment (issue #1810); `psetName` holds the
202
+ * zone-SET id, `propertyName` selects `Zone` (default, the zone name —
203
+ * or the straddled zones joined when the element crosses a boundary) or
204
+ * `Straddles` (boolean)
159
205
  */
160
- source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial' | 'model';
161
- /** Property set name (for property/quantity sources) */
206
+ source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial' | 'model' | 'zone';
207
+ /** Property set name (for property/quantity sources); the zone-SET id for `zone`. */
162
208
  psetName?: string;
163
- /** Attribute / property / quantity name, or the spatial level for `spatial`
164
- * (`Container` | `Storey` | `Building` | `Site` | `Project`). Ignored for
209
+ /** Attribute / property / quantity name, the spatial level for `spatial`
210
+ * (`Container` | `Storey` | `Building` | `Site` | `Project`), or the zone
211
+ * display mode for `zone` (`Zone` (default) | `Straddles`). Ignored for
165
212
  * material/classification/model. */
166
213
  propertyName: string;
167
214
  operator: ConditionOperator;
@@ -175,13 +222,16 @@ export interface ColumnDefinition {
175
222
  * multi-valued (joined with ", "); `spatial` is a spatial-container name at
176
223
  * the level named by `propertyName` (`Container` | `Storey` (default) |
177
224
  * `Building` | `Site` | `Project`); `model` is the source model / file name
178
- * (federation identity).
225
+ * (federation identity); `zone` is a location-zone assignment (issue
226
+ * #1810) — see `PropertyCondition.source` for the exact `psetName`/
227
+ * `propertyName` contract, shared verbatim between conditions and columns.
179
228
  */
180
- source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial' | 'model';
181
- /** For property: pset name. For quantity: qset name. */
229
+ source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial' | 'model' | 'zone';
230
+ /** For property: pset name. For quantity: qset name. For zone: the zone-SET id. */
182
231
  psetName?: string;
183
- /** Attribute / property / quantity name, or the spatial level for `spatial`
184
- * (`Container` | `Storey` | `Building` | `Site` | `Project`). Ignored for
232
+ /** Attribute / property / quantity name, the spatial level for `spatial`
233
+ * (`Container` | `Storey` | `Building` | `Site` | `Project`), or the zone
234
+ * display mode for `zone` (`Zone` (default) | `Straddles`). Ignored for
185
235
  * material/classification/model. */
186
236
  propertyName: string;
187
237
  /** Display label override */
@@ -216,22 +266,49 @@ export interface ListResult {
216
266
  * `grouping` is configured. */
217
267
  summary?: ListSummary;
218
268
  }
219
- /** One group in a grouped list result. */
269
+ /** One group in a grouped list result. With multi-criteria grouping (issue
270
+ * #1790) groups are emitted as a FLAT pre-order list: each parent group is
271
+ * immediately followed by its subgroups (`level` gives the nesting depth). */
220
272
  export interface ListGroup {
221
- /** Group-by value, stringified. Empty values group under `label`. */
273
+ /** Opaque unique group key - the JSON encoding of `path` (see
274
+ * `groupPathKey`), collision-free even when a model-derived label contains
275
+ * separator-like characters. */
222
276
  key: string;
223
- /** Display label for the group header. */
277
+ /** Display label for the group header (this level's value only). */
224
278
  label: string;
225
- /** Number of rows in the group. */
279
+ /** Number of rows in the group (the Count aggregate, issue #1790). */
226
280
  count: number;
227
281
  /** columnId → summed numeric value, for the configured sum columns. */
228
282
  sums: Record<string, number>;
283
+ /** 0-based nesting depth (0 = outermost grouping column). Always emitted by
284
+ * `summariseListRows`; optional for backward type compatibility. */
285
+ level?: number;
286
+ /** Group-by labels from the outermost level down to this group. */
287
+ path?: string[];
229
288
  }
230
289
  /** Whole-result aggregates. */
231
290
  export interface ListSummary {
232
291
  count: number;
233
292
  sums: Record<string, number>;
234
293
  }
294
+ /**
295
+ * One row of the `schedule` presentation (issue #1790 round 2) — a single
296
+ * group-value tuple (a leaf group combination) carrying its Count and sums,
297
+ * projected from the LEAF entries of `ListGroup[]` (see `toScheduleRows`).
298
+ * Unlike `ListGroup`, a schedule row is never a parent: there is exactly one
299
+ * row per distinct combination of group-by values, matching Bonsai's
300
+ * "Building | Storey | Type | Count" schedule format.
301
+ */
302
+ export interface ListScheduleRow {
303
+ /** Collision-free key — `groupPathKey(path)`, matching the source `ListGroup.key`. */
304
+ key: string;
305
+ /** Group-by values, outermost first — one per active grouping level. */
306
+ path: string[];
307
+ /** Count aggregate: number of matched elements in this group combination. */
308
+ count: number;
309
+ /** columnId -> summed numeric value, for the configured sum columns. */
310
+ sums: Record<string, number>;
311
+ }
235
312
  export interface ListRow {
236
313
  /** Entity reference for 3D selection */
237
314
  entityId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IAE/C,mDAAmD;IACnD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,wCAAwC;IACxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,2CAA2C;IAC3C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,6DAA6D;IAC7D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,oDAAoD;IACpD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C;;;;;+BAK2B;IAC3B,yBAAyB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAClD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAElD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACvD;;0EAEsE;IACtE,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAOvD;;;OAGG;IACH,eAAe,CAAC,IAAI,MAAM,EAAE,CAAC;IAC7B;6DACyD;IACzD,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/C,6DAA6D;IAC7D,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAChE,wEAAwE;IACxE,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C;;;;;wBAKoB;IACpB,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C;gDAC4C;IAC5C,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C;4CACwC;IACxC,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC;;mEAE+D;IAC/D,cAAc,CAAC,IAAI,MAAM,CAAC;IAC1B;;kFAE8E;IAC9E,YAAY,CAAC,IAAI,MAAM,CAAC;IACxB;+EAC2E;IAC3E,uBAAuB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,iBAAiB,CAAC;CAC1C;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,WAAW,EAAE,WAAW,EAAE,CAAC;IAE3B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7C,gDAAgD;IAChD,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAEhC,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B,yBAAyB;IACzB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAEzD,yDAAyD;IACzD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;IACpG,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;yCAEqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,QAAQ,CAAC;AAMb,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;IACpG,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;yCAEqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;oCACgC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAMzD,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC;AAMD,eAAO,MAAM,iBAAiB,sGASpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IAE/C,mDAAmD;IACnD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,wCAAwC;IACxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,2CAA2C;IAC3C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,6DAA6D;IAC7D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,oDAAoD;IACpD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C;;;;;+BAK2B;IAC3B,yBAAyB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAClD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAElD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACvD;;0EAEsE;IACtE,mBAAmB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAOvD;;;OAGG;IACH,eAAe,CAAC,IAAI,MAAM,EAAE,CAAC;IAC7B;6DACyD;IACzD,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/C,6DAA6D;IAC7D,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAChE,wEAAwE;IACxE,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C;;;;;wBAKoB;IACpB,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C;gDAC4C;IAC5C,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C;4CACwC;IACxC,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC;;mEAE+D;IAC/D,cAAc,CAAC,IAAI,MAAM,CAAC;IAC1B;;kFAE8E;IAC9E,YAAY,CAAC,IAAI,MAAM,CAAC;IACxB;+EAC2E;IAC3E,uBAAuB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,iBAAiB,CAAC;IAEzC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;QACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,GAAG,IAAI,CAAC;IACT;sDACkD;IAClD,eAAe,CAAC,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,WAAW,EAAE,WAAW,EAAE,CAAC;IAE3B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7C,gDAAgD;IAChD,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAEhC,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B,yBAAyB;IACzB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAEzD,yDAAyD;IACzD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC9B;AAMD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;OAaG;IACH,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7G,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;yCAGqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,QAAQ,CAAC;AAMb,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;OAQG;IACH,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7G,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;yCAGqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;oCACgC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;+EAE+E;AAC/E,MAAM,WAAW,SAAS;IACxB;;qCAEiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;yEACqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAMzD,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC;AAMD,eAAO,MAAM,iBAAiB,sGASpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqT/D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,KAAK;CACG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiY/D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,KAAK;CACG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/lists",
3
- "version": "1.20.1",
3
+ "version": "1.22.0",
4
4
  "description": "Configurable property tables and schedules from IFC data for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,8 +13,8 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ifc-lite/data": "2.7.0",
17
- "@ifc-lite/encoding": "1.14.11"
16
+ "@ifc-lite/data": "3.0.0",
17
+ "@ifc-lite/encoding": "1.15.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "typescript": "^6.0.3",