@ifc-lite/lists 1.16.1 → 1.18.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.map +1 -1
- package/dist/engine.js +88 -24
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/name-pattern.d.ts +23 -0
- package/dist/name-pattern.d.ts.map +1 -0
- package/dist/name-pattern.js +51 -0
- package/dist/name-pattern.js.map +1 -0
- package/dist/types.d.ts +44 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"
|
|
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;AAqZD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,SAAM,GAAG,MAAM,CAuB3E"}
|
package/dist/engine.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { parsePropertyValue } from '@ifc-lite/encoding';
|
|
5
|
+
import { compileNameMatcher } from './name-pattern.js';
|
|
5
6
|
/**
|
|
6
7
|
* Execute a list definition against a data provider.
|
|
7
8
|
* Returns a flat table result with matched entities and column values.
|
|
@@ -10,11 +11,16 @@ export function executeList(definition, provider, modelId = 'default') {
|
|
|
10
11
|
const startTime = performance.now();
|
|
11
12
|
// Step 1: Resolve source set (which entities match)
|
|
12
13
|
const matchedIds = resolveSourceSet(definition, provider, modelId);
|
|
13
|
-
// Step 2: Extract column values for matched entities
|
|
14
|
+
// Step 2: Extract column values for matched entities. `columnMeta` collects,
|
|
15
|
+
// per quantity/property column, the QuantityType / measure dataType of the
|
|
16
|
+
// first matching entry seen — a side artifact of the same lookup used to
|
|
17
|
+
// resolve `values[i]`, so display-unit conversion downstream (issue #1573)
|
|
18
|
+
// knows what unit-KIND a raw numeric cell is in without re-deriving it.
|
|
14
19
|
const rows = new Array(matchedIds.length);
|
|
20
|
+
const columnMeta = definition.columns.map(() => ({}));
|
|
15
21
|
for (let i = 0; i < matchedIds.length; i++) {
|
|
16
22
|
const entityId = matchedIds[i];
|
|
17
|
-
const values = extractColumnValues(definition.columns, entityId, provider);
|
|
23
|
+
const values = extractColumnValues(definition.columns, entityId, provider, columnMeta);
|
|
18
24
|
rows[i] = { entityId, modelId, values };
|
|
19
25
|
}
|
|
20
26
|
// Step 3: Sort if configured
|
|
@@ -27,8 +33,16 @@ export function executeList(definition, provider, modelId = 'default') {
|
|
|
27
33
|
}
|
|
28
34
|
// Step 4: Group + summarise if configured
|
|
29
35
|
const { groups, summary } = summariseListRows(definition, rows);
|
|
36
|
+
// Merge the derived unit metadata onto the columns returned to the caller.
|
|
37
|
+
// `definition.columns` (the persisted authoring schema) is left untouched —
|
|
38
|
+
// only the RESULT's columns carry the execution-time annotation.
|
|
39
|
+
const columns = columnMeta.some((m) => m.quantityType !== undefined || m.dataType !== undefined)
|
|
40
|
+
? definition.columns.map((c, i) => (columnMeta[i].quantityType !== undefined || columnMeta[i].dataType !== undefined)
|
|
41
|
+
? { ...c, ...columnMeta[i] }
|
|
42
|
+
: c)
|
|
43
|
+
: definition.columns;
|
|
30
44
|
return {
|
|
31
|
-
columns
|
|
45
|
+
columns,
|
|
32
46
|
rows,
|
|
33
47
|
totalCount: rows.length,
|
|
34
48
|
executionTime: performance.now() - startTime,
|
|
@@ -173,11 +187,32 @@ function getConditionValue(entityId, condition, provider) {
|
|
|
173
187
|
case 'quantity':
|
|
174
188
|
return getQuantityValue(entityId, condition.psetName ?? '', condition.propertyName, provider);
|
|
175
189
|
case 'spatial':
|
|
176
|
-
return
|
|
190
|
+
return getSpatialValue(entityId, condition.propertyName, provider);
|
|
191
|
+
case 'model':
|
|
192
|
+
return provider.getModelName?.() || null;
|
|
177
193
|
default:
|
|
178
194
|
return null;
|
|
179
195
|
}
|
|
180
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Resolve a `spatial` column/condition to a spatial-container name at the
|
|
199
|
+
* requested level. `propertyName` selects the level; an empty or unrecognised
|
|
200
|
+
* level falls back to `Storey`, so lists authored before the level existed
|
|
201
|
+
* keep resolving the storey name. `Project` is constant per model.
|
|
202
|
+
*/
|
|
203
|
+
function getSpatialValue(entityId, level, provider) {
|
|
204
|
+
switch (level) {
|
|
205
|
+
case 'Building':
|
|
206
|
+
return provider.getBuildingName?.(entityId) || null;
|
|
207
|
+
case 'Site':
|
|
208
|
+
return provider.getSiteName?.(entityId) || null;
|
|
209
|
+
case 'Project':
|
|
210
|
+
return provider.getProjectName?.() || null;
|
|
211
|
+
case 'Storey':
|
|
212
|
+
default:
|
|
213
|
+
return provider.getStoreyName?.(entityId) || null;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
181
216
|
/**
|
|
182
217
|
* Match a multi-valued condition (material / classification). Positive
|
|
183
218
|
* operators match if ANY candidate value satisfies them; `notEquals`
|
|
@@ -220,7 +255,7 @@ function classificationCandidates(refs) {
|
|
|
220
255
|
// ============================================================================
|
|
221
256
|
// Column Value Extraction
|
|
222
257
|
// ============================================================================
|
|
223
|
-
function extractColumnValues(columns, entityId, provider) {
|
|
258
|
+
function extractColumnValues(columns, entityId, provider, columnMeta) {
|
|
224
259
|
// For efficiency, batch extract properties and quantities once per entity
|
|
225
260
|
const needsProperties = columns.some(c => c.source === 'property');
|
|
226
261
|
const needsQuantities = columns.some(c => c.source === 'quantity');
|
|
@@ -239,12 +274,20 @@ function extractColumnValues(columns, entityId, provider) {
|
|
|
239
274
|
case 'attribute':
|
|
240
275
|
values[i] = getAttributeValue(entityId, col.propertyName, provider);
|
|
241
276
|
break;
|
|
242
|
-
case 'property':
|
|
243
|
-
|
|
277
|
+
case 'property': {
|
|
278
|
+
const prop = findPropertyEntry(psets ?? [], col.psetName ?? '', col.propertyName);
|
|
279
|
+
values[i] = prop ? resolvePropertyValue(prop.value) : null;
|
|
280
|
+
if (prop?.dataType && columnMeta[i].dataType === undefined)
|
|
281
|
+
columnMeta[i].dataType = prop.dataType;
|
|
244
282
|
break;
|
|
245
|
-
|
|
246
|
-
|
|
283
|
+
}
|
|
284
|
+
case 'quantity': {
|
|
285
|
+
const quant = findQuantityEntry(qsets ?? [], col.psetName ?? '', col.propertyName);
|
|
286
|
+
values[i] = quant ? formatQuantityValue(quant.value, quant.type) : null;
|
|
287
|
+
if (quant && columnMeta[i].quantityType === undefined)
|
|
288
|
+
columnMeta[i].quantityType = quant.type;
|
|
247
289
|
break;
|
|
290
|
+
}
|
|
248
291
|
case 'material': {
|
|
249
292
|
const names = provider.getMaterialNames?.(entityId) ?? [];
|
|
250
293
|
values[i] = names.length > 0 ? uniqueJoin(names) : null;
|
|
@@ -257,7 +300,10 @@ function extractColumnValues(columns, entityId, provider) {
|
|
|
257
300
|
break;
|
|
258
301
|
}
|
|
259
302
|
case 'spatial':
|
|
260
|
-
values[i] =
|
|
303
|
+
values[i] = getSpatialValue(entityId, col.propertyName, provider);
|
|
304
|
+
break;
|
|
305
|
+
case 'model':
|
|
306
|
+
values[i] = provider.getModelName?.() || null;
|
|
261
307
|
break;
|
|
262
308
|
default:
|
|
263
309
|
values[i] = null;
|
|
@@ -301,17 +347,28 @@ function getQuantityValue(entityId, qsetName, quantName, provider) {
|
|
|
301
347
|
const qsets = provider.getQuantitySets(entityId);
|
|
302
348
|
return findQuantityInSets(qsets, qsetName, quantName);
|
|
303
349
|
}
|
|
304
|
-
|
|
350
|
+
/** Find the raw matching property entry (name + value + dataType), so
|
|
351
|
+
* callers that need the measure `dataType` (issue #1573) don't have to
|
|
352
|
+
* re-walk the sets. */
|
|
353
|
+
function findPropertyEntry(psets, psetName, propName) {
|
|
354
|
+
// Set and property names support Bonsai-style `/regex/` patterns, so one
|
|
355
|
+
// column can pull a value from several psets at once (issue #1591); a plain
|
|
356
|
+
// name stays an exact match.
|
|
357
|
+
const matchSet = compileNameMatcher(psetName);
|
|
358
|
+
const matchProp = compileNameMatcher(propName);
|
|
305
359
|
for (const pset of psets) {
|
|
306
|
-
if (pset.name
|
|
360
|
+
if (matchSet(pset.name)) {
|
|
307
361
|
for (const prop of pset.properties) {
|
|
308
|
-
if (prop.name
|
|
309
|
-
return
|
|
310
|
-
}
|
|
362
|
+
if (matchProp(prop.name))
|
|
363
|
+
return prop;
|
|
311
364
|
}
|
|
312
365
|
}
|
|
313
366
|
}
|
|
314
|
-
return
|
|
367
|
+
return undefined;
|
|
368
|
+
}
|
|
369
|
+
function findPropertyInSets(psets, psetName, propName) {
|
|
370
|
+
const prop = findPropertyEntry(psets, psetName, propName);
|
|
371
|
+
return prop ? resolvePropertyValue(prop.value) : null;
|
|
315
372
|
}
|
|
316
373
|
/**
|
|
317
374
|
* Resolve a raw IFC property value to a clean display value.
|
|
@@ -337,19 +394,26 @@ function resolvePropertyValue(value) {
|
|
|
337
394
|
}
|
|
338
395
|
return display;
|
|
339
396
|
}
|
|
340
|
-
/**
|
|
341
|
-
|
|
342
|
-
|
|
397
|
+
/** Find the raw matching quantity entry (name + value + type), so callers
|
|
398
|
+
* that need the `QuantityType` (issue #1573) don't have to re-walk the
|
|
399
|
+
* sets. */
|
|
400
|
+
function findQuantityEntry(qsets, qsetName, quantName) {
|
|
401
|
+
// Qset and quantity names support `/regex/` patterns too (see findPropertyEntry).
|
|
402
|
+
const matchSet = compileNameMatcher(qsetName);
|
|
403
|
+
const matchQuant = compileNameMatcher(quantName);
|
|
343
404
|
for (const qset of qsets) {
|
|
344
|
-
if (qset.name
|
|
405
|
+
if (matchSet(qset.name)) {
|
|
345
406
|
for (const quant of qset.quantities) {
|
|
346
|
-
if (quant.name
|
|
347
|
-
return
|
|
348
|
-
}
|
|
407
|
+
if (matchQuant(quant.name))
|
|
408
|
+
return quant;
|
|
349
409
|
}
|
|
350
410
|
}
|
|
351
411
|
}
|
|
352
|
-
return
|
|
412
|
+
return undefined;
|
|
413
|
+
}
|
|
414
|
+
function findQuantityInSets(qsets, qsetName, quantName) {
|
|
415
|
+
const quant = findQuantityEntry(qsets, qsetName, quantName);
|
|
416
|
+
return quant ? formatQuantityValue(quant.value, quant.type) : null;
|
|
353
417
|
}
|
|
354
418
|
function formatQuantityValue(value, _type) {
|
|
355
419
|
// Return raw number to preserve numeric sorting.
|
package/dist/engine.js.map
CHANGED
|
@@ -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,7 @@
|
|
|
1
1
|
export type { ListDataProvider, ListDefinition, ListResult, ListRow, CellValue, ColumnDefinition, PropertyCondition, ConditionOperator, ListClassificationRef, ListGrouping, ListGroup, ListSummary, DiscoveredColumns, EntityAttribute, } from './types.js';
|
|
2
2
|
export { ENTITY_ATTRIBUTES } from './types.js';
|
|
3
3
|
export { executeList, listResultToCSV, summariseListRows } from './engine.js';
|
|
4
|
+
export { compileNameMatcher, isNamePattern } from './name-pattern.js';
|
|
4
5
|
export { discoverColumns } from './discovery.js';
|
|
5
6
|
export { LIST_PRESETS } from './presets.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,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,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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
export { ENTITY_ATTRIBUTES } from './types.js';
|
|
5
5
|
// Engine
|
|
6
6
|
export { executeList, listResultToCSV, summariseListRows } from './engine.js';
|
|
7
|
+
// Name pattern matching (Bonsai-style `/regex/` set/property names)
|
|
8
|
+
export { compileNameMatcher, isNamePattern } from './name-pattern.js';
|
|
7
9
|
// Column discovery
|
|
8
10
|
export { discoverColumns } from './discovery.js';
|
|
9
11
|
// Presets
|
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,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;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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property-set / property NAME matching for list columns and queries.
|
|
3
|
+
*
|
|
4
|
+
* A name wrapped in slashes (`/Qto_.*BaseQuantities/`, optionally with trailing
|
|
5
|
+
* flags such as `/qto_.+/i`) is treated as a regular expression matched against
|
|
6
|
+
* the candidate name; anything else is an exact, case-sensitive string match
|
|
7
|
+
* (the historical behaviour). This lets one column / query pull a value from
|
|
8
|
+
* several property or quantity sets at once — e.g. `NetVolume` from
|
|
9
|
+
* `Qto_WallBaseQuantities` AND `Qto_SlabBaseQuantities` — the way Bonsai's
|
|
10
|
+
* `/regex/` syntax works (issue #1591). IFC set / property names never contain
|
|
11
|
+
* slashes, so the `/.../` form is unambiguous.
|
|
12
|
+
*/
|
|
13
|
+
type NameMatcher = (name: string) => boolean;
|
|
14
|
+
/** True when `pattern` uses the `/regex/` form (a valid slash-delimited literal). */
|
|
15
|
+
export declare function isNamePattern(pattern: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Compile a name pattern into a predicate. `/body/flags` compiles to a RegExp;
|
|
18
|
+
* anything else (including a malformed literal, which is logged) becomes an
|
|
19
|
+
* exact, case-sensitive match.
|
|
20
|
+
*/
|
|
21
|
+
export declare function compileNameMatcher(pattern: string): NameMatcher;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=name-pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-pattern.d.ts","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AAU7C,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAU/D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
// Compiled matchers are cached by pattern string: `findPropertyEntry` /
|
|
5
|
+
// `findQuantityEntry` run per row, and the pattern is fixed per column, so
|
|
6
|
+
// without this a regex column would recompile its RegExp for every element.
|
|
7
|
+
// Distinct patterns are bounded by the user's column/query configs; the cap is
|
|
8
|
+
// a backstop against a pathological loop that mints unique patterns.
|
|
9
|
+
const CACHE_CAP = 256;
|
|
10
|
+
const matcherCache = new Map();
|
|
11
|
+
/** True when `pattern` uses the `/regex/` form (a valid slash-delimited literal). */
|
|
12
|
+
export function isNamePattern(pattern) {
|
|
13
|
+
return parseRegexLiteral(pattern) !== null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Compile a name pattern into a predicate. `/body/flags` compiles to a RegExp;
|
|
17
|
+
* anything else (including a malformed literal, which is logged) becomes an
|
|
18
|
+
* exact, case-sensitive match.
|
|
19
|
+
*/
|
|
20
|
+
export function compileNameMatcher(pattern) {
|
|
21
|
+
const cached = matcherCache.get(pattern);
|
|
22
|
+
if (cached)
|
|
23
|
+
return cached;
|
|
24
|
+
const re = parseRegexLiteral(pattern);
|
|
25
|
+
const matcher = re ? (name) => re.test(name) : (name) => name === pattern;
|
|
26
|
+
if (matcherCache.size >= CACHE_CAP)
|
|
27
|
+
matcherCache.clear();
|
|
28
|
+
matcherCache.set(pattern, matcher);
|
|
29
|
+
return matcher;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parse a `/body/flags` regex literal, or return null for a plain name. A
|
|
33
|
+
* malformed literal is NOT silently swallowed: it's logged and treated as a
|
|
34
|
+
* plain name (so it matches only itself), keeping behaviour predictable.
|
|
35
|
+
*/
|
|
36
|
+
function parseRegexLiteral(pattern) {
|
|
37
|
+
const m = /^\/(.+)\/([a-z]*)$/.exec(pattern);
|
|
38
|
+
if (!m)
|
|
39
|
+
return null;
|
|
40
|
+
try {
|
|
41
|
+
// Strip the stateful `g`/`y` flags: the compiled matcher is cached and
|
|
42
|
+
// shared across rows, and `.test()` on a global/sticky RegExp advances
|
|
43
|
+
// `lastIndex`, which would make matching alternate true/false per call.
|
|
44
|
+
return new RegExp(m[1], m[2].replace(/[gy]/g, ''));
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.warn(`[lists] invalid name pattern ${JSON.stringify(pattern)}: ${err.message}`);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=name-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-pattern.js","sourceRoot":"","sources":["../src/name-pattern.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiB/D,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,qEAAqE;AACrE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEpD,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;IAEvF,IAAI,YAAY,CAAC,IAAI,IAAI,SAAS;QAAE,YAAY,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -53,6 +53,20 @@ export interface ListDataProvider {
|
|
|
53
53
|
getClassifications?(expressId: number): ListClassificationRef[];
|
|
54
54
|
/** Building-storey name the element belongs to, or '' when unplaced. */
|
|
55
55
|
getStoreyName?(expressId: number): string;
|
|
56
|
+
/** IfcBuilding name containing the element, or '' when unplaced. Used by the
|
|
57
|
+
* `spatial` column at `Building` level. */
|
|
58
|
+
getBuildingName?(expressId: number): string;
|
|
59
|
+
/** IfcSite name containing the element, or '' when unplaced. Used by the
|
|
60
|
+
* `spatial` column at `Site` level. */
|
|
61
|
+
getSiteName?(expressId: number): string;
|
|
62
|
+
/** IfcProject.Name for this model — constant for every element the provider
|
|
63
|
+
* serves (one IfcProject per file). Used by the `spatial` column at
|
|
64
|
+
* `Project` level. '' when the model has no named project. */
|
|
65
|
+
getProjectName?(): string;
|
|
66
|
+
/** Source model / file display name — constant for every element the
|
|
67
|
+
* provider serves. Used by the `model` column to identify which federated
|
|
68
|
+
* file a row comes from. '' when unknown (e.g. single-model legacy path). */
|
|
69
|
+
getModelName?(): string;
|
|
56
70
|
/** IFC `PredefinedType` enum token (e.g. "FLOOR", "FLOORING"), or '' when
|
|
57
71
|
* the element has none. Used by the `PredefinedType` attribute column. */
|
|
58
72
|
getEntityPredefinedType?(expressId: number): string;
|
|
@@ -111,12 +125,16 @@ export interface PropertyCondition {
|
|
|
111
125
|
* - `property` / `quantity` — a pset / qto value (uses `psetName`)
|
|
112
126
|
* - `material` — any of the element's material names (multi-valued)
|
|
113
127
|
* - `classification` — any classification code or name (multi-valued)
|
|
114
|
-
* - `spatial` —
|
|
128
|
+
* - `spatial` — a spatial-container name; `propertyName` selects the level
|
|
129
|
+
* (`Storey` (default), `Building`, `Site`, or `Project`)
|
|
130
|
+
* - `model` — the source model / file name (federation identity)
|
|
115
131
|
*/
|
|
116
|
-
source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial';
|
|
132
|
+
source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial' | 'model';
|
|
117
133
|
/** Property set name (for property/quantity sources) */
|
|
118
134
|
psetName?: string;
|
|
119
|
-
/**
|
|
135
|
+
/** Attribute / property / quantity name, or the spatial level for `spatial`
|
|
136
|
+
* (`Storey` | `Building` | `Site` | `Project`). Ignored for
|
|
137
|
+
* material/classification/model. */
|
|
120
138
|
propertyName: string;
|
|
121
139
|
operator: ConditionOperator;
|
|
122
140
|
value: string | number | boolean;
|
|
@@ -126,15 +144,35 @@ export interface ColumnDefinition {
|
|
|
126
144
|
id: string;
|
|
127
145
|
/**
|
|
128
146
|
* Where the column value comes from. `material` / `classification` are
|
|
129
|
-
* multi-valued (joined with ", "); `spatial` is
|
|
147
|
+
* multi-valued (joined with ", "); `spatial` is a spatial-container name at
|
|
148
|
+
* the level named by `propertyName` (`Storey` (default) | `Building` | `Site`
|
|
149
|
+
* | `Project`); `model` is the source model / file name (federation identity).
|
|
130
150
|
*/
|
|
131
|
-
source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial';
|
|
151
|
+
source: 'attribute' | 'property' | 'quantity' | 'material' | 'classification' | 'spatial' | 'model';
|
|
132
152
|
/** For property: pset name. For quantity: qset name. */
|
|
133
153
|
psetName?: string;
|
|
134
|
-
/** Attribute
|
|
154
|
+
/** Attribute / property / quantity name, or the spatial level for `spatial`
|
|
155
|
+
* (`Storey` | `Building` | `Site` | `Project`). Ignored for
|
|
156
|
+
* material/classification/model. */
|
|
135
157
|
propertyName: string;
|
|
136
158
|
/** Display label override */
|
|
137
159
|
label?: string;
|
|
160
|
+
/**
|
|
161
|
+
* `QuantityType` this column resolved to (from `@ifc-lite/data`), when
|
|
162
|
+
* `source: 'quantity'`. Populated by `executeList` from the first matched
|
|
163
|
+
* entity's quantity (issue #1573), so display-unit conversion downstream
|
|
164
|
+
* (the viewer's list/schedule export) knows what unit-KIND a raw numeric
|
|
165
|
+
* cell is in. Not part of the persisted `ListDefinition` authoring schema —
|
|
166
|
+
* it's an execution-time annotation the engine derives fresh every run.
|
|
167
|
+
*/
|
|
168
|
+
quantityType?: number;
|
|
169
|
+
/**
|
|
170
|
+
* Raw IFC measure value type (e.g. "IFCVOLUMETRICFLOWRATEMEASURE"), when
|
|
171
|
+
* `source: 'property'` and the matched property carries one. Same
|
|
172
|
+
* execution-time-only role as `quantityType`, for measure properties
|
|
173
|
+
* (issue #1573).
|
|
174
|
+
*/
|
|
175
|
+
dataType?: string;
|
|
138
176
|
}
|
|
139
177
|
export interface ListResult {
|
|
140
178
|
columns: ColumnDefinition[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;IAE7C,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAClD,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAOlD;;;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;+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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAuR/D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,UAAU;IACV,OAAO;IACP,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.
|
|
3
|
+
"version": "1.18.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,7 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ifc-lite/data": "2.
|
|
16
|
+
"@ifc-lite/data": "2.4.0",
|
|
17
17
|
"@ifc-lite/encoding": "1.14.8"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|