@ifc-lite/rules 0.3.2 → 0.5.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.
Files changed (86) hide show
  1. package/README.md +2 -0
  2. package/dist/engine/rule-engine-compare.js +3 -3
  3. package/dist/engine/rule-engine-compare.js.map +1 -1
  4. package/dist/engine/rule-engine-requirements.d.ts.map +1 -1
  5. package/dist/engine/rule-engine-requirements.js +13 -8
  6. package/dist/engine/rule-engine-requirements.js.map +1 -1
  7. package/dist/engine/rule-engine-sets.d.ts.map +1 -1
  8. package/dist/engine/rule-engine-sets.js +7 -6
  9. package/dist/engine/rule-engine-sets.js.map +1 -1
  10. package/dist/filter/filter-evaluate-groups.d.ts.map +1 -1
  11. package/dist/filter/filter-evaluate-groups.js +4 -0
  12. package/dist/filter/filter-evaluate-groups.js.map +1 -1
  13. package/dist/filter/filter-evaluate.d.ts +5 -0
  14. package/dist/filter/filter-evaluate.d.ts.map +1 -1
  15. package/dist/filter/filter-evaluate.js +38 -56
  16. package/dist/filter/filter-evaluate.js.map +1 -1
  17. package/dist/filter/filter-iteration-source.d.ts.map +1 -1
  18. package/dist/filter/filter-iteration-source.js +3 -1
  19. package/dist/filter/filter-iteration-source.js.map +1 -1
  20. package/dist/filter/filter-list-condition.d.ts +57 -0
  21. package/dist/filter/filter-list-condition.d.ts.map +1 -0
  22. package/dist/filter/filter-list-condition.js +68 -0
  23. package/dist/filter/filter-list-condition.js.map +1 -0
  24. package/dist/filter/filter-match.d.ts +22 -17
  25. package/dist/filter/filter-match.d.ts.map +1 -1
  26. package/dist/filter/filter-match.js +97 -130
  27. package/dist/filter/filter-match.js.map +1 -1
  28. package/dist/filter/filter-model-fact.js +2 -2
  29. package/dist/filter/filter-model-fact.js.map +1 -1
  30. package/dist/filter/filter-operator-types.d.ts +46 -0
  31. package/dist/filter/filter-operator-types.d.ts.map +1 -0
  32. package/dist/filter/filter-operator-types.js +5 -0
  33. package/dist/filter/filter-operator-types.js.map +1 -0
  34. package/dist/filter/filter-ops.d.ts +2 -2
  35. package/dist/filter/filter-ops.d.ts.map +1 -1
  36. package/dist/filter/filter-ops.js +25 -5
  37. package/dist/filter/filter-ops.js.map +1 -1
  38. package/dist/filter/filter-rule-guards.d.ts.map +1 -1
  39. package/dist/filter/filter-rule-guards.js +31 -3
  40. package/dist/filter/filter-rule-guards.js.map +1 -1
  41. package/dist/filter/filter-rules.d.ts +15 -39
  42. package/dist/filter/filter-rules.d.ts.map +1 -1
  43. package/dist/filter/filter-rules.js +2 -1
  44. package/dist/filter/filter-rules.js.map +1 -1
  45. package/dist/filter/filter-storey.d.ts +18 -0
  46. package/dist/filter/filter-storey.d.ts.map +1 -0
  47. package/dist/filter/filter-storey.js +109 -0
  48. package/dist/filter/filter-storey.js.map +1 -0
  49. package/dist/filter/legacy-operator-adapters.d.ts +47 -0
  50. package/dist/filter/legacy-operator-adapters.d.ts.map +1 -0
  51. package/dist/filter/legacy-operator-adapters.js +74 -0
  52. package/dist/filter/legacy-operator-adapters.js.map +1 -0
  53. package/dist/filter/read-measure-subject.d.ts +5 -2
  54. package/dist/filter/read-measure-subject.d.ts.map +1 -1
  55. package/dist/filter/read-measure-subject.js +31 -12
  56. package/dist/filter/read-measure-subject.js.map +1 -1
  57. package/dist/filter/read-subject.d.ts +9 -0
  58. package/dist/filter/read-subject.d.ts.map +1 -1
  59. package/dist/filter/read-subject.js +14 -1
  60. package/dist/filter/read-subject.js.map +1 -1
  61. package/dist/filter/subject-match.d.ts.map +1 -1
  62. package/dist/filter/subject-match.js +7 -0
  63. package/dist/filter/subject-match.js.map +1 -1
  64. package/dist/filter/subject-read-options.d.ts +17 -1
  65. package/dist/filter/subject-read-options.d.ts.map +1 -1
  66. package/dist/filter/subject-read-options.js +9 -1
  67. package/dist/filter/subject-read-options.js.map +1 -1
  68. package/dist/ids/rule-to-ids-facets.d.ts.map +1 -1
  69. package/dist/ids/rule-to-ids-facets.js +5 -0
  70. package/dist/ids/rule-to-ids-facets.js.map +1 -1
  71. package/dist/index.d.ts +3 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +3 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/rule-set/between-chip.js +1 -1
  76. package/dist/rule-set/between-chip.js.map +1 -1
  77. package/dist/rule-set/requirement-text.d.ts.map +1 -1
  78. package/dist/rule-set/requirement-text.js +1 -0
  79. package/dist/rule-set/requirement-text.js.map +1 -1
  80. package/dist/rule-set/rule-set-io-requirement.d.ts.map +1 -1
  81. package/dist/rule-set/rule-set-io-requirement.js +2 -0
  82. package/dist/rule-set/rule-set-io-requirement.js.map +1 -1
  83. package/dist/rule-set/rule-set-io-subject.d.ts.map +1 -1
  84. package/dist/rule-set/rule-set-io-subject.js +5 -0
  85. package/dist/rule-set/rule-set-io-subject.js.map +1 -1
  86. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"filter-evaluate.js","sourceRoot":"","sources":["../../src/filter/filter-evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-evaluate.js","sourceRoot":"","sources":["../../src/filter/filter-evaluate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter-iteration-source.d.ts","sourceRoot":"","sources":["../../src/filter/filter-iteration-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKhE;;;yDAGyD;AACzD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAE3E;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,mBAAmB,GACjC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAuCtC;AAsED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAO3E"}
1
+ {"version":3,"file":"filter-iteration-source.d.ts","sourceRoot":"","sources":["../../src/filter/filter-iteration-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKhE;;;yDAGyD;AACzD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAE3E;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,mBAAmB,GACjC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAuCtC;AAwED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAO3E"}
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import { isQueryableObjectType } from '@ifc-lite/parser';
14
14
  import { iterateEffectiveEntityIds } from '@ifc-lite/mutations';
15
- import { unionByStorey } from './filter-match.js';
15
+ import { unionByStorey } from './filter-storey.js';
16
16
  // ── Iteration source: index prefilter (AND + op:in) ──────────────────────────
17
17
  /** Return the raw expressId column as the iteration source. The per-entity
18
18
  * loops already skip empty rows (`if (!expressId) continue`) so the
@@ -144,6 +144,8 @@ const RULE_COST = {
144
144
  group: 1,
145
145
  // Read once per model (units, georeferencing and header are memoised).
146
146
  modelFact: 1,
147
+ // Host-read Lists predicate (#6190): may parse psets or resolve zones.
148
+ listCondition: 10,
147
149
  };
148
150
  export function orderRulesByCost(rules) {
149
151
  // Stable sort — equal-cost rules retain their authored order so the
@@ -1 +1 @@
1
- {"version":3,"file":"filter-iteration-source.js","sourceRoot":"","sources":["../../src/filter/filter-iteration-source.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAqB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAA4B,MAAM,qBAAqB,CAAC;AAG1F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,gFAAgF;AAEhF;;;yDAGyD;AACzD,MAAM,UAAU,oBAAoB,CAAC,KAAmB;IACtD,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAClC,CAAC;AAED,QAAQ,CAAC,CAAC,kBAAkB,CAC1B,KAAmB,EACnB,IAAyB,EACzB,KAAyB;IAEzB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC/D,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3G,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,CAAC,KAAK,IAAI,cAAc,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAAE,SAAS;QACvE,MAAM,SAAS,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAmB,EACnB,KAA4B,EAC5B,UAAsB,EACtB,mBAAiD,EACjD,OAAgB,EAChB,YAAkC;IAElC,sDAAsD;IACtD,IAAI,mBAAmB,KAAK,SAAS;QAAE,OAAO,mBAAmB,CAAC;IAElE,IAAI,YAAY,EAAE,iBAAiB,EAAE,EAAE,CAAC;QACtC,wEAAwE;QACxE,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7G,IAAI,QAAQ,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,kCAAkC;IAClC,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE7D,qEAAqE;IACrE,kEAAkE;IAClE,qEAAqE;IACrE,8DAA8D;IAC9D,IAAI,IAAI,GAAoB,IAAI,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAAE,IAAI,GAAG,MAAM,CAAC;QAC9E,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAAE,IAAI,GAAG,MAAM,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,KAAmB,EAAE,KAAwB;IAChE,uIAAuI;IACvI,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,KAAK,MAAM,EAAE,IAAI,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,SAAS,GAAuC;IACpD,8DAA8D;IAC9D,KAAK,EAAW,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAQ,CAAC;IACjB,wCAAwC;IACxC,OAAO,EAAS,CAAC;IACjB,gCAAgC;IAChC,MAAM,EAAU,CAAC;IACjB,qEAAqE;IACrE,SAAS,EAAO,CAAC;IACjB,4BAA4B;IAC5B,IAAI,EAAY,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAQ,CAAC;IACjB,yEAAyE;IACzE,uEAAuE;IACvE,yDAAyD;IACzD,cAAc,EAAE,EAAE;IAClB,mDAAmD;IACnD,QAAQ,EAAQ,EAAE;IAClB,QAAQ,EAAQ,EAAE;IAClB,sEAAsE;IACtE,SAAS,EAAO,EAAE;IAClB,2EAA2E;IAC3E,QAAQ,EAAQ,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,IAAI,EAAY,CAAC;IACjB,gEAAgE;IAChE,+DAA+D;IAC/D,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,sDAAsD;IACtD,MAAM,EAAU,EAAE;IAClB,sEAAsE;IACtE,kEAAkE;IAClE,KAAK,EAAW,CAAC;IACjB,uEAAuE;IACvE,SAAS,EAAO,CAAC;CAClB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,oEAAoE;IACpE,wDAAwD;IACxD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"filter-iteration-source.js","sourceRoot":"","sources":["../../src/filter/filter-iteration-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * `listCondition` (#6190): a Lists value predicate carried inside a Rules
3
+ * `FilterGroup`, as an explicit adapter rather than a canonical kind.
4
+ *
5
+ * The fields are the saved Lists condition, verbatim: `source`, `psetName`
6
+ * (a pset/qto name, or the durable zone-SET id for `zone`), `propertyName`
7
+ * (an attribute/property/quantity name, the spatial level for `spatial`, the
8
+ * zone display mode for `zone`, the axis for `geometry`), `operator`, `value`
9
+ * and `inherit`. Their meaning is the Lists engine's and nothing else's:
10
+ * this package never reads the value itself. The host supplies a
11
+ * {@link ListConditionMatcher} on the evaluator model (`@ifc-lite/lists`'
12
+ * `listConditionMatcher(provider)`), so one implementation answers the
13
+ * predicate whether it runs as a list scope or inside an OR group.
14
+ *
15
+ * Why not canonical kinds: the canonical readers differ from the Lists ones
16
+ * on purpose. `material` also matches Categories and skips layer labels,
17
+ * `storey` hops through a containing space, `model` compares a durable
18
+ * source fingerprint rather than the file name, `attribute` rejects
19
+ * `GlobalId`, and property inheritance merges per property. Converting a
20
+ * saved Lists predicate to one of them would change which rows it keeps.
21
+ * Zones and world coordinates are viewer data the IFC store does not hold.
22
+ */
23
+ export declare const LIST_CONDITION_SOURCES: readonly ["attribute", "property", "quantity", "material", "classification", "spatial", "model", "zone", "geometry"];
24
+ export type ListConditionSource = (typeof LIST_CONDITION_SOURCES)[number];
25
+ export declare const LIST_CONDITION_OPERATORS: readonly ["equals", "notEquals", "contains", "gt", "lt", "gte", "lte", "exists"];
26
+ export type ListConditionOperator = (typeof LIST_CONDITION_OPERATORS)[number];
27
+ export interface ListConditionRule {
28
+ kind: 'listCondition';
29
+ source: ListConditionSource;
30
+ /** Pset / qto name; the durable zone-SET id for `zone`. */
31
+ psetName?: string;
32
+ /** Attribute, property or quantity name; spatial level; zone display mode; axis. */
33
+ propertyName: string;
34
+ operator: ListConditionOperator;
35
+ value: string | number | boolean;
36
+ /** property / quantity only (#5433). */
37
+ inherit?: 'type' | 'aggregation';
38
+ }
39
+ /** Answers one `listCondition` rule for one element of the model it is attached to. */
40
+ export type ListConditionMatcher = (expressId: number, rule: ListConditionRule) => boolean;
41
+ /** Structural guard: every field the Lists engine reads has the type it reads. */
42
+ export declare function isListConditionRule(value: unknown): value is ListConditionRule;
43
+ export declare function listConditionRule(condition: Omit<ListConditionRule, 'kind'>): ListConditionRule;
44
+ /** Refuse, before any element is read, a run whose rules hold a `listCondition`
45
+ * but whose model has no matcher. Checked up front rather than when the rule is
46
+ * reached: a cheaper failing rule earlier in an AND group would otherwise
47
+ * short-circuit past it, and the run would return no rows instead of saying why. */
48
+ export declare function assertListConditionsAnswerable(rules: readonly {
49
+ kind: string;
50
+ }[], models: readonly {
51
+ id: string;
52
+ listConditions?: ListConditionMatcher;
53
+ store?: unknown;
54
+ }[]): void;
55
+ /** A model without a matcher cannot answer the predicate; saying so beats matching nothing. */
56
+ export declare function matchListConditionRule(rule: ListConditionRule, expressId: number, matcher: ListConditionMatcher | undefined): boolean;
57
+ //# sourceMappingURL=filter-list-condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-list-condition.d.ts","sourceRoot":"","sources":["../../src/filter/filter-list-condition.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,sBAAsB,sHAEzB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,eAAO,MAAM,wBAAwB,kFAE3B,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CAClC;AAED,uFAAuF;AACvF,MAAM,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC;AAK3F,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAQ9E;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAE/F;AAED;;;oFAGoF;AACpF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAClC,MAAM,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GACxF,IAAI,CAON;AAED,+FAA+F;AAC/F,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAAG,SAAS,GACxC,OAAO,CAKT"}
@@ -0,0 +1,68 @@
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
+ /**
5
+ * `listCondition` (#6190): a Lists value predicate carried inside a Rules
6
+ * `FilterGroup`, as an explicit adapter rather than a canonical kind.
7
+ *
8
+ * The fields are the saved Lists condition, verbatim: `source`, `psetName`
9
+ * (a pset/qto name, or the durable zone-SET id for `zone`), `propertyName`
10
+ * (an attribute/property/quantity name, the spatial level for `spatial`, the
11
+ * zone display mode for `zone`, the axis for `geometry`), `operator`, `value`
12
+ * and `inherit`. Their meaning is the Lists engine's and nothing else's:
13
+ * this package never reads the value itself. The host supplies a
14
+ * {@link ListConditionMatcher} on the evaluator model (`@ifc-lite/lists`'
15
+ * `listConditionMatcher(provider)`), so one implementation answers the
16
+ * predicate whether it runs as a list scope or inside an OR group.
17
+ *
18
+ * Why not canonical kinds: the canonical readers differ from the Lists ones
19
+ * on purpose. `material` also matches Categories and skips layer labels,
20
+ * `storey` hops through a containing space, `model` compares a durable
21
+ * source fingerprint rather than the file name, `attribute` rejects
22
+ * `GlobalId`, and property inheritance merges per property. Converting a
23
+ * saved Lists predicate to one of them would change which rows it keeps.
24
+ * Zones and world coordinates are viewer data the IFC store does not hold.
25
+ */
26
+ export const LIST_CONDITION_SOURCES = [
27
+ 'attribute', 'property', 'quantity', 'material', 'classification', 'spatial', 'model', 'zone', 'geometry',
28
+ ];
29
+ export const LIST_CONDITION_OPERATORS = [
30
+ 'equals', 'notEquals', 'contains', 'gt', 'lt', 'gte', 'lte', 'exists',
31
+ ];
32
+ const SOURCES = new Set(LIST_CONDITION_SOURCES);
33
+ const OPERATORS = new Set(LIST_CONDITION_OPERATORS);
34
+ /** Structural guard: every field the Lists engine reads has the type it reads. */
35
+ export function isListConditionRule(value) {
36
+ if (typeof value !== 'object' || value === null)
37
+ return false;
38
+ const r = value;
39
+ return r.kind === 'listCondition' && SOURCES.has(r.source) && OPERATORS.has(r.operator)
40
+ && typeof r.propertyName === 'string'
41
+ && (r.psetName === undefined || typeof r.psetName === 'string')
42
+ && (typeof r.value === 'string' || typeof r.value === 'number' || typeof r.value === 'boolean')
43
+ && (r.inherit === undefined || r.inherit === 'type' || r.inherit === 'aggregation');
44
+ }
45
+ export function listConditionRule(condition) {
46
+ return { kind: 'listCondition', ...condition };
47
+ }
48
+ /** Refuse, before any element is read, a run whose rules hold a `listCondition`
49
+ * but whose model has no matcher. Checked up front rather than when the rule is
50
+ * reached: a cheaper failing rule earlier in an AND group would otherwise
51
+ * short-circuit past it, and the run would return no rows instead of saying why. */
52
+ export function assertListConditionsAnswerable(rules, models) {
53
+ const rule = rules.find((r) => r.kind === 'listCondition');
54
+ if (!rule)
55
+ return;
56
+ const model = models.find((m) => m.store !== null && !m.listConditions);
57
+ if (model) {
58
+ throw new Error(`A Lists ${rule.source} condition needs the Lists data provider for model "${model.id}"; run it through a list.`);
59
+ }
60
+ }
61
+ /** A model without a matcher cannot answer the predicate; saying so beats matching nothing. */
62
+ export function matchListConditionRule(rule, expressId, matcher) {
63
+ if (!matcher) {
64
+ throw new Error(`A Lists ${rule.source} condition needs the Lists data provider; run it through a list.`);
65
+ }
66
+ return matcher(expressId, rule);
67
+ }
68
+ //# sourceMappingURL=filter-list-condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-list-condition.js","sourceRoot":"","sources":["../../src/filter/filter-list-condition.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;CACjG,CAAC;AAGX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;CAC7D,CAAC;AAmBX,MAAM,OAAO,GAAyB,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACtE,MAAM,SAAS,GAAyB,IAAI,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAE1E,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;WAClF,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;WAClC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;WAC5D,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;WAC5F,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAA0C;IAC1E,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,CAAC;AACjD,CAAC;AAED;;;oFAGoF;AACpF,MAAM,UAAU,8BAA8B,CAC5C,KAAkC,EAClC,MAAyF;IAEzF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACnF,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,uDAAuD,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;IACpI,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,sBAAsB,CACpC,IAAuB,EACvB,SAAiB,EACjB,OAAyC;IAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,kEAAkE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * `filter-evaluate.test.ts` via the evaluator's `__internal` re-export.
8
8
  */
9
9
  import { extractPropertiesOnDemand, extractQuantitiesOnDemand, type IfcDataStore, type MaterialInfo, type ClassificationInfo } from '@ifc-lite/parser';
10
- import { type PropertyRule, type QuantityRule, type ClassificationRule, type AttributeRule, type StoreyRule, type ParentRule, type TextKind } from './filter-rules.js';
10
+ import { type PropertyRule, type QuantityRule, type ClassificationRule, type AttributeRule, type ParentRule, type TextKind, type ValueOp } from './filter-rules.js';
11
11
  /**
12
12
  * Compare a rule's property-set / property name against a row's.
13
13
  *
@@ -28,11 +28,16 @@ import { type PropertyRule, type QuantityRule, type ClassificationRule, type Att
28
28
  * docstring for the full contract. This function does not catch that; it
29
29
  * propagates to `filter-evaluate.ts`'s caller, which must.
30
30
  */
31
- export declare function nameMatches(rulePattern: string, rowName: string, kind?: TextKind): boolean;
31
+ export declare function nameMatches(rulePattern: string, rowName: string, kind?: TextKind, caseMode?: 'exact'): boolean;
32
32
  export interface PsetRow {
33
33
  setName: string;
34
34
  propertyName: string;
35
35
  value: string;
36
+ /** Retain primitive type so a converted Bulk condition cannot match a different typed value. */
37
+ valueType?: 'string' | 'number' | 'boolean' | 'null';
38
+ /** The scalar display value read by saved v1 Lists before multi-value
39
+ * expansion. `null` is different from an explicitly empty value. */
40
+ legacyListValue?: string | null;
36
41
  }
37
42
  export type PsetRows = ReadonlyArray<PsetRow>;
38
43
  export interface QtyRow {
@@ -41,10 +46,24 @@ export interface QtyRow {
41
46
  value: number;
42
47
  }
43
48
  export type QtyRows = ReadonlyArray<QtyRow>;
44
- export declare function flattenPsets(psets: ReturnType<typeof extractPropertiesOnDemand>): PsetRows;
49
+ /**
50
+ * The values a rule compares for one property: every member of an
51
+ * enumerated or list value and every cell of a table, so a positive op
52
+ * passes when ANY of them does (IDS / ifctester parity, #5475); otherwise the
53
+ * single display value. An empty list keeps one blank candidate, so the
54
+ * property still reads as present for `isSet`, as it did before.
55
+ */
56
+ export declare function propertyCandidates(p: {
57
+ value: unknown;
58
+ values?: readonly string[];
59
+ structure?: string;
60
+ }): string[];
61
+ export declare function flattenPsets(psets: ReturnType<typeof extractPropertiesOnDemand>, includeLegacyListValues?: boolean): PsetRows;
45
62
  export declare function flattenQtys(qtos: ReturnType<typeof extractQuantitiesOnDemand>): QtyRows;
46
63
  export declare function stringifyValue(value: unknown): string;
47
64
  export declare function matchPropertyRule(rule: PropertyRule, rows: PsetRows): boolean;
65
+ /** A negated value op's positive form: the negation holds when NO candidate satisfies it (#5475). */
66
+ export declare const NEGATED_VALUE_OP: Partial<Record<ValueOp, ValueOp>>;
48
67
  /** One entity's generic named attributes, as `extractAllEntityAttributes`
49
68
  * returns them — schema-driven, string/number/boolean values only. */
50
69
  export type AttrRows = ReadonlyArray<{
@@ -61,20 +80,6 @@ export type AttrRows = ReadonlyArray<{
61
80
  */
62
81
  export declare function matchAttributeRule(rule: AttributeRule, attrs: AttrRows): boolean;
63
82
  export declare function matchQuantityRule(rule: QuantityRule, rows: QtyRows): boolean;
64
- export declare function defaultStoreyName(store: IfcDataStore, expressId: number): string;
65
- /** Does `expressId` (in `modelId`) sit in a storey ref'd by `rule.refs`?
66
- * `IfcBuildingStorey.Name` isn't unique, so once a `StoreyRule` carries
67
- * an exact (modelId, expressId) ref (mirrored from a HierarchyPanel
68
- * click), matching bypasses Name entirely. Reaches through a containing
69
- * space via {@link storeyIdOf}, same as the Name-matched path. */
70
- export declare function storeyMatchesRefs(store: IfcDataStore, expressId: number, modelId: string, rule: StoreyRule): boolean;
71
- /** Index-prefilter twin of {@link storeyMatchesRefs}/Name matching: the
72
- * bucket of elements a `storey op:'in'` rule narrows to for `modelId`.
73
- * Includes each matched storey's directly-contained elements AND every
74
- * element `bySpace` lists for a space belonging to that storey, so this
75
- * prefilter can never exclude a candidate the (also widened) per-entity
76
- * check in `filter-evaluate.ts` would go on to match. */
77
- export declare function unionByStorey(store: IfcDataStore, rule: StoreyRule, modelId: string | undefined): number[] | null;
78
83
  /** Collect the *individual* material names an element exposes - each layer /
79
84
  * constituent / profile material, or the single plain material - for the
80
85
  * multi-valued `material` rule matcher and the material dropdown. Shares the
@@ -1 +1 @@
1
- {"version":3,"file":"filter-match.d.ts","sourceRoot":"","sources":["../../src/filter/filter-match.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-match.d.ts","sourceRoot":"","sources":["../../src/filter/filter-match.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { collectSpatialAncestors } from '@ifc-lite/data';
6
6
  import { valueOpMatches, numericOpMatches, matchStringAnyNone } from './filter-ops.js';
7
7
  import { lensMaterialNames } from './lens-material-names.js';
8
8
  import { parsePropertyValue } from '@ifc-lite/encoding';
9
- import { compileNameMatcher, isNamePattern } from '@ifc-lite/lists';
9
+ import { compileNameMatcher, isNamePattern } from '@ifc-lite/regex-guard';
10
10
  /**
11
11
  * Compare a rule's property-set / property name against a row's.
12
12
  *
@@ -27,30 +27,66 @@ import { compileNameMatcher, isNamePattern } from '@ifc-lite/lists';
27
27
  * docstring for the full contract. This function does not catch that; it
28
28
  * propagates to `filter-evaluate.ts`'s caller, which must.
29
29
  */
30
- export function nameMatches(rulePattern, rowName, kind) {
30
+ export function nameMatches(rulePattern, rowName, kind, caseMode) {
31
31
  if (kind === 'regex')
32
32
  return compileNameMatcher(`/${rulePattern}/`)(rowName);
33
33
  if (kind === undefined && isNamePattern(rulePattern))
34
34
  return compileNameMatcher(rulePattern)(rowName);
35
+ if (caseMode === 'exact')
36
+ return rowName === rulePattern;
35
37
  return rowName.toLowerCase() === rulePattern.toLowerCase();
36
38
  }
37
- export function flattenPsets(psets) {
39
+ /** Structures whose `values` are the candidates a rule reads (#5475). */
40
+ const ANY_MATCH_STRUCTURES = new Set(['enumerated', 'list', 'table']);
41
+ /**
42
+ * The values a rule compares for one property: every member of an
43
+ * enumerated or list value and every cell of a table, so a positive op
44
+ * passes when ANY of them does (IDS / ifctester parity, #5475); otherwise the
45
+ * single display value. An empty list keeps one blank candidate, so the
46
+ * property still reads as present for `isSet`, as it did before.
47
+ */
48
+ export function propertyCandidates(p) {
49
+ if (p.structure && ANY_MATCH_STRUCTURES.has(p.structure) && p.values && p.values.length > 0)
50
+ return [...p.values];
51
+ return [stringifyValue(p.value)];
52
+ }
53
+ function legacyListValue(value) {
54
+ if (value === null || value === undefined)
55
+ return null;
56
+ const display = parsePropertyValue(value).displayValue;
57
+ if (display === '\u2014')
58
+ return null;
59
+ if (typeof value === 'number')
60
+ return String(value);
61
+ if (Array.isArray(value) && value.length === 2 && typeof value[1] === 'number')
62
+ return String(value[1]);
63
+ return display;
64
+ }
65
+ export function flattenPsets(psets, includeLegacyListValues = false) {
38
66
  const out = [];
39
67
  for (const set of psets) {
40
68
  for (const p of set.properties) {
41
- out.push({
42
- setName: set.name,
43
- propertyName: p.name,
44
- // Stringify everything — `valueOpMatches` re-parses numeric ops
45
- // from this representation. Booleans render as "True"/"False" —
46
- // the SAME capitalised display string the property table and the
47
- // list engine (`@ifc-lite/encoding`'s `parsePropertyValue`) show —
48
- // so a value picked from a chip/dropdown suggestion always matches
49
- // what the user sees rendered elsewhere. `valueOpMatches`'s eq/ne
50
- // are case-insensitive, so this doesn't change matching outcomes
51
- // for either the search chips or free-typed "true"/"false".
52
- value: stringifyValue(p.value),
53
- });
69
+ const valueType = p.value === null || p.value === undefined ? 'null'
70
+ : typeof p.value === 'string' ? 'string'
71
+ : typeof p.value === 'number' ? 'number'
72
+ : typeof p.value === 'boolean' ? 'boolean' : undefined;
73
+ const firstValue = includeLegacyListValues ? legacyListValue(p.value) : undefined;
74
+ for (const value of propertyCandidates(p))
75
+ out.push({
76
+ setName: set.name,
77
+ propertyName: p.name,
78
+ // Stringify everything — `valueOpMatches` re-parses numeric ops
79
+ // from this representation. Booleans render as "True"/"False" —
80
+ // the SAME capitalised display string the property table and the
81
+ // list engine (`@ifc-lite/encoding`'s `parsePropertyValue`) show —
82
+ // so a value picked from a chip/dropdown suggestion always matches
83
+ // what the user sees rendered elsewhere. `valueOpMatches`'s eq/ne
84
+ // are case-insensitive, so this doesn't change matching outcomes
85
+ // for either the search chips or free-typed "true"/"false".
86
+ value,
87
+ valueType,
88
+ ...(includeLegacyListValues ? { legacyListValue: firstValue } : {}),
89
+ });
54
90
  }
55
91
  }
56
92
  return out;
@@ -78,16 +114,46 @@ export function stringifyValue(value) {
78
114
  return String(value);
79
115
  }
80
116
  export function matchPropertyRule(rule, rows) {
81
- // isSet / isNotSet are presence checks against (setName, propertyName).
82
- if (rule.op === 'isSet' || rule.op === 'isNotSet') {
83
- const present = rows.some((r) => nameMatches(rule.setName, r.setName, rule.setNameKind) &&
84
- nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind));
85
- return rule.op === 'isSet' ? present : !present;
117
+ // V1 Lists only stored value comparisons and isNonEmpty. Rules presence
118
+ // operators keep their ordinary row-presence semantics on this public flag.
119
+ if (rule.legacyListFirst && rule.op !== 'isSet' && rule.op !== 'isNotSet'
120
+ && rule.op !== 'isNull' && rule.op !== 'isNotNull') {
121
+ const first = rows.find((r) => nameMatches(rule.setName, r.setName, rule.setNameKind, rule.nameCaseMode) &&
122
+ nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind, rule.nameCaseMode));
123
+ const value = first?.legacyListValue === undefined
124
+ ? first?.valueType === 'null' ? null : first?.value ?? null
125
+ : first.legacyListValue;
126
+ if (rule.op === 'isNonEmpty')
127
+ return value !== null && value !== '';
128
+ if (value === null)
129
+ return false;
130
+ return valueOpMatches(rule.op, value, rule.value, rule.valueKind, rule.comparison);
86
131
  }
87
- return rows.some((r) => nameMatches(rule.setName, r.setName, rule.setNameKind) &&
88
- nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind) &&
89
- valueOpMatches(rule.op, r.value, rule.value, rule.valueKind));
132
+ const matching = rows.filter((r) => nameMatches(rule.setName, r.setName, rule.setNameKind, rule.nameCaseMode) &&
133
+ nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind, rule.nameCaseMode));
134
+ // Presence, non-null and non-empty are distinct in imported filters.
135
+ if (rule.op === 'isSet')
136
+ return matching.length > 0;
137
+ if (rule.op === 'isNotSet')
138
+ return matching.length === 0;
139
+ if (rule.op === 'isNull')
140
+ return matching.length === 0 || matching.some((r) => r.valueType === 'null');
141
+ if (rule.op === 'isNotNull')
142
+ return matching.some((r) => r.valueType !== 'null');
143
+ if (rule.op === 'isNonEmpty')
144
+ return matching.some((r) => r.valueType !== 'null' && r.value.length > 0);
145
+ const comparable = rule.comparison ? matching.filter((r) => r.valueType !== 'null') : matching;
146
+ // A negated op holds when NO candidate has the value (a list [A, B] is
147
+ // not "!= A"), the ANY/NONE convention `material` and `parent` use and
148
+ // validation's `checkValueOp` applies (#5475). With a single candidate
149
+ // this is the same answer as before.
150
+ const positive = NEGATED_VALUE_OP[rule.op];
151
+ if (positive)
152
+ return comparable.length > 0 && !comparable.some((r) => valueOpMatches(positive, r.value, rule.value, rule.valueKind, rule.comparison));
153
+ return comparable.some((r) => valueOpMatches(rule.op, r.value, rule.value, rule.valueKind, rule.comparison));
90
154
  }
155
+ /** A negated value op's positive form: the negation holds when NO candidate satisfies it (#5475). */
156
+ export const NEGATED_VALUE_OP = { ne: 'eq', notContains: 'contains', notMatches: 'matches' };
91
157
  /**
92
158
  * Match an `attribute` rule (Description, ObjectType, Tag, LongName, any
93
159
  * other schema-named attribute) against one entity's extracted attributes.
@@ -104,120 +170,21 @@ export function matchAttributeRule(rule, attrs) {
104
170
  const present = (stringified ?? '').length > 0;
105
171
  return rule.op === 'isSet' ? present : !present;
106
172
  }
173
+ if (rule.op === 'isNull')
174
+ return found === undefined;
175
+ if (rule.op === 'isNotNull')
176
+ return found !== undefined;
177
+ if (rule.op === 'isNonEmpty')
178
+ return (stringified ?? '').length > 0;
107
179
  if (stringified === undefined)
108
180
  return false;
109
- return valueOpMatches(rule.op, stringified, rule.value, rule.valueKind);
181
+ return valueOpMatches(rule.op, stringified, rule.value, rule.valueKind, rule.comparison);
110
182
  }
111
183
  export function matchQuantityRule(rule, rows) {
112
184
  return rows.some((r) => nameMatches(rule.setName, r.setName, rule.setNameKind) &&
113
185
  nameMatches(rule.quantityName, r.quantityName, rule.quantityNameKind) &&
114
186
  numericOpMatches(rule.op, r.value, rule.value));
115
187
  }
116
- // ── Storey lookup fallback ────────────────────────────────────────────────────
117
- /**
118
- * Storey id an element belongs to: its own direct containment
119
- * (`elementToStorey`, set for an element the storey directly contains plus
120
- * its `IfcRelAggregates`-aggregated parts) OR — one hop through a
121
- * containing `IfcSpace`/`IfcSpatialZone` — the storey THAT space belongs
122
- * to. A space is itself mapped to its storey in `elementToStorey`
123
- * (`SpatialHierarchyBuilder` walks a storey's own spatial children), so
124
- * this is a composition of two maps that already exist plus
125
- * `getContainingSpace` (`@ifc-lite/data`'s `spatialLookups`), not a new
126
- * traversal. The single home for "which storey" so the per-entity
127
- * evaluator (`defaultStoreyName`/`storeyMatchesRefs`) and the bulk index
128
- * prefilter (`unionByStorey`) cannot answer it two different ways.
129
- *
130
- * Reaches exactly one level down from the storey: an element inside a
131
- * space nested inside another space (rather than directly under the
132
- * storey) is not resolved — see `docs/guide/selector-syntax.md`.
133
- */
134
- function storeyIdOf(hierarchy, expressId) {
135
- const direct = hierarchy.elementToStorey.get(expressId);
136
- if (direct !== undefined)
137
- return direct;
138
- // `getContainingSpace` is part of the `spatialLookups()` contract every
139
- // real hierarchy carries, but several tests in this suite build a
140
- // hand-rolled partial `spatialHierarchy` mock (`byStorey`/`elementToStorey`
141
- // only) to exercise the ref/name-matching paths in isolation — guard
142
- // rather than assume every field is present.
143
- const spaceId = hierarchy.getContainingSpace?.(expressId);
144
- if (spaceId == null)
145
- return undefined;
146
- return hierarchy.elementToStorey.get(spaceId);
147
- }
148
- /** Every element `bySpace` lists for a space belonging to `storeyId` — the
149
- * bulk-prefilter twin of {@link storeyIdOf}'s one-hop space widening.
150
- * `bySpace` is absent on the same partial test mocks {@link storeyIdOf}
151
- * guards against. */
152
- function spaceElementsOfStorey(hierarchy, storeyId) {
153
- const out = [];
154
- if (!hierarchy.bySpace)
155
- return out;
156
- for (const [spaceId, elements] of hierarchy.bySpace) {
157
- if (hierarchy.elementToStorey.get(spaceId) !== storeyId)
158
- continue;
159
- for (const id of elements)
160
- out.push(id);
161
- }
162
- return out;
163
- }
164
- export function defaultStoreyName(store, expressId) {
165
- const hierarchy = store.spatialHierarchy;
166
- if (!hierarchy)
167
- return '';
168
- const storeyId = storeyIdOf(hierarchy, expressId);
169
- if (!storeyId)
170
- return '';
171
- return store.entities.getName(storeyId);
172
- }
173
- /** Does `expressId` (in `modelId`) sit in a storey ref'd by `rule.refs`?
174
- * `IfcBuildingStorey.Name` isn't unique, so once a `StoreyRule` carries
175
- * an exact (modelId, expressId) ref (mirrored from a HierarchyPanel
176
- * click), matching bypasses Name entirely. Reaches through a containing
177
- * space via {@link storeyIdOf}, same as the Name-matched path. */
178
- export function storeyMatchesRefs(store, expressId, modelId, rule) {
179
- const hierarchy = store.spatialHierarchy;
180
- const storeyId = hierarchy ? storeyIdOf(hierarchy, expressId) : undefined;
181
- return storeyId != null && !!rule.refs?.some((r) => r.modelId === modelId && r.expressId === storeyId);
182
- }
183
- /** Index-prefilter twin of {@link storeyMatchesRefs}/Name matching: the
184
- * bucket of elements a `storey op:'in'` rule narrows to for `modelId`.
185
- * Includes each matched storey's directly-contained elements AND every
186
- * element `bySpace` lists for a space belonging to that storey, so this
187
- * prefilter can never exclude a candidate the (also widened) per-entity
188
- * check in `filter-evaluate.ts` would go on to match. */
189
- export function unionByStorey(store, rule, modelId) {
190
- const hierarchy = store.spatialHierarchy;
191
- if (!hierarchy)
192
- return null;
193
- const out = [];
194
- if (rule.refs) {
195
- for (const ref of rule.refs) {
196
- if (ref.modelId !== modelId)
197
- continue;
198
- const elements = hierarchy.byStorey.get(ref.expressId);
199
- if (elements)
200
- for (const id of elements)
201
- out.push(id);
202
- for (const id of spaceElementsOfStorey(hierarchy, ref.expressId))
203
- out.push(id);
204
- }
205
- return out.length > 0 ? out : null;
206
- }
207
- const wanted = new Set(rule.values.map((n) => n.toLowerCase()));
208
- for (const storeyId of hierarchy.byStorey.keys()) {
209
- const name = store.entities.getName(storeyId);
210
- if (!wanted.has(name.toLowerCase()))
211
- continue;
212
- const elements = hierarchy.byStorey.get(storeyId);
213
- if (elements)
214
- for (const id of elements)
215
- out.push(id);
216
- for (const id of spaceElementsOfStorey(hierarchy, storeyId))
217
- out.push(id);
218
- }
219
- return out.length > 0 ? out : null;
220
- }
221
188
  // ── Material / classification / elevation resolution ─────────────────────────
222
189
  /** Collect the *individual* material names an element exposes - each layer /
223
190
  * constituent / profile material, or the single plain material - for the