@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
package/README.md CHANGED
@@ -33,6 +33,8 @@ if (parsed.ok) {
33
33
  ## Features
34
34
 
35
35
  - `FilterRule` / `FilterGroup` vocabulary (`ifcType`, `name`, `property`, `quantity`, `material`, `classification`, `storey`, `model`, `modelTag`, `parent`, `group`, `modelFact`, `elevation`, `type`, `predefinedType`, `attribute`, `globalId`) plus the `Rule` builder helpers.
36
+ - `listCondition`: a saved Lists value predicate (zone, spatial level, model file, quantity/material presence, Lists attributes, inherited properties) inside a `FilterGroup`. The Lists engine answers it through `EvaluatorModel.listConditions` (`listConditionMatcher(provider)` from `@ifc-lite/lists`); a model without one throws, and rule-set files refuse the kind.
37
+ - `legacyLensOperatorToFilterRule` and `legacyListOperatorToFilterRule` convert saved viewer comparisons to this vocabulary. Each returns `{ status: 'readable', value: rule }` or an explicit `{ status: 'unreadable', vocabulary, operator }`; the corresponding `filterRuleToLegacy*Operator` functions convert supported rules back for export. Pass the target property or attribute as the rule template.
36
38
  - `evaluateFilterRules` / `evaluateFilterRulesFederated` (sync + async chunked, cancellable, multi-model) — the same Path-B evaluator the viewer's Advanced Filter and Data Validation panel use, with index prefiltering and cheap-first rule ordering for large models.
37
39
  - `parseRuleSetFile` / `serializeRuleSet` — validate and round-trip a `<name>.rules.json` file (never throws; failures come back as `{ ok: false, error }`).
38
40
  - `ruleSetToIds` / `idsToRuleSet` — export the IDS-expressible rules of a rule set as IDS 1.0 XML, and import the simple specifications of an IDS as rules. Each rule or specification that has no exact equivalent is refused with its reasons (see the [IDS guide](https://ifclite.dev/docs/guide/ids/#converting-between-rule-sets-and-ids)).
@@ -2,7 +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 { numericOpMatches } from '../filter/filter-ops.js';
5
- import { readSubject } from '../filter/read-subject.js';
5
+ import { readSubjectWhole } from '../filter/read-subject.js';
6
6
  import { OP_LABEL } from './rule-engine-requirements.js';
7
7
  import { baseRow, describeSubject } from './rule-engine-sets.js';
8
8
  import { maybeYieldChunk, finalProgress } from './rule-engine-chunk.js';
@@ -21,8 +21,8 @@ export async function checkCompare(requirementId, requirement, applicable, store
21
21
  continue;
22
22
  }
23
23
  const ctx = { store, expressId: el.expressId };
24
- const left = readSubject(requirement.left, ctx);
25
- const right = readSubject(requirement.right, ctx);
24
+ const left = readSubjectWhole(requirement.left, ctx);
25
+ const right = readSubjectWhole(requirement.right, ctx);
26
26
  let passed = false;
27
27
  let reason;
28
28
  let actual;
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine-compare.js","sourceRoot":"","sources":["../../src/engine/rule-engine-compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine-compare.js","sourceRoot":"","sources":["../../src/engine/rule-engine-compare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine-requirements.d.ts","sourceRoot":"","sources":["../../src/engine/rule-engine-requirements.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAa,YAAY,EAAwC,MAAM,eAAe,CAAC;AAoBnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAWtD;wBACwB;AACxB,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAkRF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,eAAe,EACnB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,cAAc,GACnB,YAAY,CAyBd"}
1
+ {"version":3,"file":"rule-engine-requirements.d.ts","sourceRoot":"","sources":["../../src/engine/rule-engine-requirements.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAa,YAAY,EAAwC,MAAM,eAAe,CAAC;AAoBnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAWtD;wBACwB;AACxB,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAsRF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,eAAe,EACnB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,cAAc,GACnB,YAAY,CAyBd"}
@@ -4,6 +4,7 @@
4
4
  import { combineRuleResults, } from '../filter/filter-rules.js';
5
5
  import { readSubject } from '../filter/read-subject.js';
6
6
  import { toSiValues } from '../filter/subject-match.js';
7
+ import { memberPathLabel } from '../filter/subject-read-options.js';
7
8
  import { matchStringAnyNone, numericOpMatches, setOpMatches, stringOpMatches, valueOpMatches, } from '../filter/filter-ops.js';
8
9
  /** Shared with `rule-engine-sets.ts` (compare/aggregate render the same
9
10
  * `op` vocabulary). */
@@ -24,7 +25,7 @@ function actualOf(subject) {
24
25
  }
25
26
  function subjectLabel(rule) {
26
27
  switch (rule.kind) {
27
- case 'property': return `${rule.setName}.${rule.propertyName}`;
28
+ case 'property': return `${rule.setName}.${rule.propertyName}${memberPathLabel(rule.memberPath)}`;
28
29
  case 'quantity': return `${rule.setName}.${rule.quantityName}`;
29
30
  case 'attribute': return rule.name;
30
31
  case 'name': return 'Name';
@@ -171,12 +172,16 @@ function checkValueOp(rule, subject, opts, facetType, actual, expected, checkedD
171
172
  return { passed, reason: passed ? undefined : 'mismatch', actual, expected, facetType, checkedDescription };
172
173
  }
173
174
  if (op === 'eq' || op === 'ne') {
174
- const rv = Number(rule.value);
175
- const nums = strVals.map((v) => Number(v));
176
- const allFinite = Number.isFinite(rv) && nums.length > 0 && nums.every(Number.isFinite);
177
- const matchAny = allFinite
178
- ? nums.some((cv) => numericOpMatches('eq', cv, rv, opts))
179
- : strVals.some((v) => stringOpMatches('eq', v, rule.value, undefined, opts));
175
+ // Numeric vs text is decided per member (#5475): a table mixes text and
176
+ // number cells, and one text cell must not turn every number cell into
177
+ // a string compare. A blank member is never the number 0.
178
+ const rv = rule.value.trim() === '' ? Number.NaN : Number(rule.value);
179
+ const matchAny = strVals.some((v) => {
180
+ const cv = v.trim() === '' ? Number.NaN : Number(v);
181
+ return Number.isFinite(rv) && Number.isFinite(cv)
182
+ ? numericOpMatches('eq', cv, rv, opts)
183
+ : stringOpMatches('eq', v, rule.value, undefined, opts);
184
+ });
180
185
  const passed = op === 'eq' ? matchAny : !matchAny;
181
186
  return { passed, reason: passed ? undefined : 'mismatch', actual, expected, facetType, checkedDescription };
182
187
  }
@@ -189,7 +194,7 @@ function checkValueOp(rule, subject, opts, facetType, actual, expected, checkedD
189
194
  function subjectKey(rule) {
190
195
  switch (rule.kind) {
191
196
  case 'quantity': return `quantity:${rule.setName}:${rule.quantityName}`;
192
- case 'property': return `property:${rule.setName}:${rule.propertyName}`;
197
+ case 'property': return `property:${rule.setName}:${rule.propertyName}:${JSON.stringify(rule.memberPath ?? [])}`;
193
198
  case 'attribute': return `attribute:${rule.name}`;
194
199
  default: return null;
195
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine-requirements.js","sourceRoot":"","sources":["../../src/engine/rule-engine-requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine-requirements.js","sourceRoot":"","sources":["../../src/engine/rule-engine-requirements.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAsB/D,OAAO,EACL,kBAAkB,GAgBnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,WAAW,EAA8C,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,cAAc,GAEf,MAAM,yBAAyB,CAAC;AAejC;wBACwB;AACxB,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;IACzD,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa;IAC5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa;CAC9C,CAAC;AAEF,SAAS,QAAQ,CAAC,OAAqB;IACrC,2EAA2E;IAC3E,uEAAuE;IACvE,sEAAsE;IACtE,uDAAuD;IACvD,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB;IACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClG,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/D,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;QACnC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAChG,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7E,KAAK,WAAW,CAAC,CAAC,OAAO,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,gBAAgB,CAAC,CAAC,OAAO,gBAAgB,CAAC;QAC/C,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;;;iFAMiF;AACjF,SAAS,WAAW,CAAC,IAAwB;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,WAAW,CAAC;QACrB,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,gBAAgB,CAAC,CAAC,OAAO,gBAAgB,CAAC;QAC/C,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB;YACnB,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;QAChC,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC;QACjC,OAAO,CAAC,CAAC,OAAO,WAAW,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9C,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChF,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB;YACnB,OAAO,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7E;YACE,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAE,IAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;AACH,CAAC;AAWD,SAAS,aAAa,CAAC,IAAgB;IACrC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC;QAAC,KAAK,UAAU,CAAC;QAAC,KAAK,WAAW,CAAC;QAAC,KAAK,MAAM,CAAC;QAAC,KAAK,MAAM,CAAC;QAC7E,KAAK,QAAQ,CAAC;QAAC,KAAK,UAAU,CAAC;QAAC,KAAK,gBAAgB,CAAC;QAAC,KAAK,SAAS,CAAC;QAAC,KAAK,gBAAgB,CAAC;QAC7F,KAAK,OAAO,CAAC;QAAC,KAAK,WAAW;YAC5B,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB,EAAE,GAAuB,EAAE,IAAoB;IACvF,8EAA8E;IAC9E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;QAC/F,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,EAAE,CAAC;IACpI,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,kBAAkB,GAAG,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;IAClD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAC9F,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;YACvH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAChF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAC9G,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC5F,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAC9G,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,8EAA8E;YAC9E,gEAAgE;YAChE,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACzF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAC9G,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,IAAkD,EAClD,OAAqB,EACrB,IAAoB,EACpB,SAAoB,EACpB,MAAc,EACd,QAAgB,EAChB,kBAA0B;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,EAA4C,CAAC;IAE7D,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/D,0EAA0E;QAC1E,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAClG,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAC9G,CAAC;IACD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC/B,wEAAwE;QACxE,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;gBACtC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAC9G,CAAC;IACD,gDAAgD;IAChD,MAAM,KAAK,GAAY,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACzD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;AAC9G,CAAC;AAOD,SAAS,UAAU,CAAC,IAAgB;IAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACxE,KAAK,UAAU,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACjH,KAAK,WAAW,CAAC,CAAC,OAAO,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA6B;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAE,SAAS;gBACrC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;oBACzE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAiB,CAAC,CAAC;oBACtG,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB,EAAE,GAAuB,EAAE,IAAoB;IACvF,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,MAAM,WAAW,OAAO,EAAE,CAAC;IAClD,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACxD,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ;QACR,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,kBAAkB,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE;KAC3C,CAAC;AACJ,CAAC;AAID,SAAS,aAAa,CAAC,KAAkB,EAAE,GAAuB,EAAE,IAAoB;IACtF,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,uFAAuF,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACnK,CAAC;IACD,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACzF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAChH,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,CAAC;IAC7L,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,KAAgB,EAChB,EAAmB,EACnB,KAAmB,EACnB,IAAoB;IAEpB,MAAM,GAAG,GAAuB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IACnE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,WAAW;WACrB,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC;IAC7B,MAAM,iBAAiB,GAAsB;QAC3C,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;QAC5G,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAChC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS;QAC1C,kBAAkB,EAAE,MAAM,CAAC,cAAc,CAAC,kBAAkB;QAC5D,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM;QAChE,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM;QACzC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ;KAC9C,CAAC;IACF,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,OAAO;QACtB,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS;QAChC,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,MAAM;QACN,kBAAkB,EAAE,CAAC,iBAAiB,CAAC;KACxC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine-sets.d.ts","sourceRoot":"","sources":["../../src/engine/rule-engine-sets.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAqB,iBAAiB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAInG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAkC,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjG,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUxD;AAeD,4CAA4C;AAC5C,wBAAgB,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAUrG;AAID;;;uDAGuD;AACvD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,iBAAiB,EAC9B,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,GACxD,OAAO,CAAC,eAAe,CAAC,CAmE1B;AAiGD,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,oBAAoB,EACjC,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,GACxD,OAAO,CAAC,eAAe,CAAC,CAqF1B;AAED;;8EAE8E;AAC9E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAEhE"}
1
+ {"version":3,"file":"rule-engine-sets.d.ts","sourceRoot":"","sources":["../../src/engine/rule-engine-sets.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAqB,iBAAiB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAInG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGpF,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAkC,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjG,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUxD;AAeD,4CAA4C;AAC5C,wBAAgB,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAUrG;AAID;;;uDAGuD;AACvD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,iBAAiB,EAC9B,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,GACxD,OAAO,CAAC,eAAe,CAAC,CAmE1B;AAiGD,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,oBAAoB,EACjC,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,GACxD,OAAO,CAAC,eAAe,CAAC,CAqF1B;AAED;;8EAE8E;AAC9E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAEhE"}
@@ -4,14 +4,15 @@
4
4
  import { collectSpatialAncestors } from '@ifc-lite/data';
5
5
  import { numericOpMatches } from '../filter/filter-ops.js';
6
6
  import { evaluateFilterGroupsFederated } from '../filter/filter-evaluate-groups.js';
7
- import { readSubject } from '../filter/read-subject.js';
7
+ import { readSubjectWhole } from '../filter/read-subject.js';
8
+ import { memberPathLabel } from '../filter/subject-read-options.js';
8
9
  import { OP_LABEL } from './rule-engine-requirements.js';
9
10
  import { maybeYieldChunk, finalProgress } from './rule-engine-chunk.js';
10
11
  const SET_RESULT_CAP = 1_000;
11
12
  /** Shared with `rule-engine-compare.ts` (same `Subject` label rendering). */
12
13
  export function describeSubject(subject) {
13
14
  switch (subject.kind) {
14
- case 'property': return `${subject.setName}.${subject.propertyName}`;
15
+ case 'property': return `${subject.setName}.${subject.propertyName}${memberPathLabel(subject.memberPath)}`;
15
16
  case 'quantity': return `${subject.setName}.${subject.quantityName}`;
16
17
  case 'attribute': return subject.name;
17
18
  case 'classification': return subject.system ? `Classification[${subject.system}]` : 'Classification';
@@ -55,7 +56,7 @@ export async function checkUnique(requirementId, requirement, applicable, stores
55
56
  const el = applicable[i];
56
57
  const store = storesById.get(el.modelId);
57
58
  if (store) {
58
- const subject = readSubject(requirement.subject, { store, expressId: el.expressId });
59
+ const subject = readSubjectWhole(requirement.subject, { store, expressId: el.expressId });
59
60
  if (!subject.present) {
60
61
  entityResults.push(baseRow(el, false, {
61
62
  requirement: { id: requirementId, label, optionality: 'required' },
@@ -143,7 +144,7 @@ function groupKeysOf(requirement, el, store, caseSensitive) {
143
144
  return [];
144
145
  return [{ key: `${el.modelId}:${parentId}`, label: store.entities.getName(parentId) }];
145
146
  }
146
- const subject = readSubject(requirement.groupBy.subject, { store, expressId: el.expressId });
147
+ const subject = readSubjectWhole(requirement.groupBy.subject, { store, expressId: el.expressId });
147
148
  if (!subject.present)
148
149
  return [];
149
150
  const out = [];
@@ -181,7 +182,7 @@ async function seedUniverse(requirement, models, storesById, caseSensitive, grou
181
182
  }
182
183
  if (!requirement.groupBy)
183
184
  continue;
184
- const subject = readSubject(requirement.groupBy.subject, { store, expressId: uel.expressId });
185
+ const subject = readSubjectWhole(requirement.groupBy.subject, { store, expressId: uel.expressId });
185
186
  for (const raw of subject.values) {
186
187
  const s = String(raw);
187
188
  if (s.trim().length === 0)
@@ -222,7 +223,7 @@ export async function checkAggregate(requirementId, requirement, applicable, sto
222
223
  }
223
224
  }
224
225
  else {
225
- const subject = readSubject(requirement.subject, { store, expressId: el.expressId });
226
+ const subject = readSubjectWhole(requirement.subject, { store, expressId: el.expressId });
226
227
  const nums = subject.present ? subject.values.map(Number).filter(Number.isFinite) : [];
227
228
  const reason = !subject.present ? 'absent' : nums.length === 0 ? 'notNumeric' : undefined;
228
229
  for (const gk of groupKeys) {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine-sets.js","sourceRoot":"","sources":["../../src/engine/rule-engine-sets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine-sets.js","sourceRoot":"","sources":["../../src/engine/rule-engine-sets.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAa/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAuB,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,aAAa,EAA2B,MAAM,wBAAwB,CAAC;AAEjG,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3G,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACrE,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC;QACtC,KAAK,gBAAgB,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACtG,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QACnF,KAAK,WAAW,CAAC,CAAC,OAAO,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,WAA4B,EAAE,aAAsB;IAClF,IAAI,WAAW,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,OAAO,CAAC,EAAmB,EAAE,MAAe,EAAE,MAAyB;IACrF,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,OAAO;QACtB,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS;QAChC,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,MAAM;QACN,kBAAkB,EAAE,CAAC,MAAM,CAAC;KAC7B,CAAC;AACJ,CAAC;AA0BD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAqB,EACrB,WAA8B,EAC9B,UAAsC,EACtC,UAA6C,EAC7C,IAAoB,EACpB,SAAiB,EACjB,MAA+B,EAC/B,UAAyD;IAEzD,MAAM,KAAK,GAAG,UAAU,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;IAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,KAAK,UAAU,CAAC;IAClD,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,0EAA0E;IAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiE,CAAC;IAEzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE;oBACpC,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;oBAClE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK;oBAC9D,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ;iBACpE,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM;oBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBACzD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBACrE,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,CAAC,MAAM;wBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjF,CAAC;IACD,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEhE,MAAM,SAAS,GAA2E,EAAE,CAAC;IAC7F,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE;gBACtC,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;gBAClE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK;gBAC9D,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ;aACzE,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC;IAC9D,MAAM,UAAU,GAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI;QAC3C,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;KACtF,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC;AAC5D,CAAC;AAeD,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAClH,CAAC;AAED;;;gDAGgD;AAChD,SAAS,cAAc,CAAC,KAAmB,EAAE,SAAiB;IAC5D,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,uBAAuB,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAClB,WAAiC,EACjC,EAAmB,EACnB,KAAmB,EACnB,aAAsB;IAEtB,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;yEAGyE;AACzE,KAAK,UAAU,YAAY,CACzB,WAAiC,EACjC,MAAqC,EACrC,UAA6C,EAC7C,aAAsB,EACtB,MAAgC;IAEhC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,WAAW,GAAG,MAAM,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrH,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACnG,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,WAAiC,EACjC,UAAsC,EACtC,UAA6C,EAC7C,MAAqC,EACrC,IAAoB,EACpB,SAAiB,EACjB,MAA+B,EAC/B,UAAyD;IAEzD,MAAM,KAAK,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IACtG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAEhF,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,CAAC,EAAmB,EAAE,MAAyB,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE;QACvG,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;QAClE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK;QACjE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,SAAS;KAC3G,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAe,EAAE;QAC9D,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,WAAW,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;oBAC/B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;wBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;wBACrC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;wBACnE,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvF,MAAM,MAAM,GAAkC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;oBACzH,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;wBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;wBACrC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;wBACnE,IAAI,MAAM,EAAE,CAAC;4BAAC,GAAG,CAAC,OAAO,EAAE,CAAC;4BAAC,SAAS;wBAAC,CAAC;wBACxC,GAAG,CAAC,KAAK,EAAE,CAAC;wBACZ,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;4BAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;4BAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG;gCAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;4BAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG;gCAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;wBAAC,CAAC;wBACnG,IAAI,OAAO,CAAC,IAAI;4BAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChD,CAAC;oBACD,qEAAqE;oBACrE,IAAI,MAAM;wBAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjF,CAAC;IACD,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;YAClD,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;gBACpC,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1D,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;QACrD,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,CAAC,YAAY,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjG,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACxD,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,EAAE;YAC5F,QAAQ,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE;YAC5D,MAAM;YACN,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7E,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAClD,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;IACL,CAAC;IACD,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACxF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM;YAAE,SAAS;QACzB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO;YAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC;IAC/D,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,EAAE,aAAa;QACnF,kBAAkB,EAAE,cAAc,CAAC,IAAI;KACxC,CAAC;AACJ,CAAC;AAED;;8EAE8E;AAC9E,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter-evaluate-groups.d.ts","sourceRoot":"","sources":["../../src/filter/filter-evaluate-groups.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAQ9B,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,OAAO,GAAE,eAAoB,GAC5B,eAAe,EAAE,CAkCnB;AAED,0FAA0F;AAC1F,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,eAAe,EAAE,CAAC,CAsD5B"}
1
+ {"version":3,"file":"filter-evaluate-groups.d.ts","sourceRoot":"","sources":["../../src/filter/filter-evaluate-groups.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAQ9B,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,OAAO,GAAE,eAAoB,GAC5B,eAAe,EAAE,CAoCnB;AAED,0FAA0F;AAC1F,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,eAAe,EAAE,CAAC,CAuD5B"}
@@ -1,6 +1,7 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
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
+ import { assertListConditionsAnswerable } from './filter-list-condition.js';
4
5
  import { evaluateFilterRules, evaluateFilterRulesFederated, } from './filter-evaluate.js';
5
6
  const DEFAULT_LIMIT = 5_000;
6
7
  function groupKey(el) {
@@ -10,6 +11,8 @@ function groupKey(el) {
10
11
  export function evaluateFilterGroups(modelId, store, groups, options = {}) {
11
12
  if (groups.length === 0)
12
13
  return [];
14
+ // Every group, before any group runs: a later group's rule must not fail after earlier ones returned rows.
15
+ assertListConditionsAnswerable(groups.flatMap((g) => g.rules), [{ id: modelId, store, listConditions: options.listConditions }]);
13
16
  if (groups.length === 1) {
14
17
  return evaluateFilterRules(modelId, store, groups[0].rules, groups[0].combinator, options);
15
18
  }
@@ -51,6 +54,7 @@ export function evaluateFilterGroups(modelId, store, groups, options = {}) {
51
54
  export async function evaluateFilterGroupsFederated(models, groups, options = {}) {
52
55
  if (groups.length === 0)
53
56
  return [];
57
+ assertListConditionsAnswerable(groups.flatMap((g) => g.rules), models);
54
58
  if (groups.length === 1) {
55
59
  return evaluateFilterRulesFederated(models, groups[0].rules, groups[0].combinator, options);
56
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter-evaluate-groups.js","sourceRoot":"","sources":["../../src/filter/filter-evaluate-groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-evaluate-groups.js","sourceRoot":"","sources":["../../src/filter/filter-evaluate-groups.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ import type { MutablePropertyView } from '@ifc-lite/mutations';
34
34
  import { type Combinator, type FilterRule } from './filter-rules.js';
35
35
  import { selectIterationSource, orderRulesByCost } from './filter-iteration-source.js';
36
36
  import { flattenPsets, flattenQtys, stringifyValue, matchPropertyRule, matchQuantityRule, matchAttributeRule, materialNamesOf, matchClassificationRule, elevationOf } from './filter-match.js';
37
+ import { type ListConditionMatcher } from './filter-list-condition.js';
37
38
  /** A single matched element. Mirrors the Rust `FilteredElement` shape. */
38
39
  export interface FilteredElement {
39
40
  modelId: string;
@@ -63,6 +64,8 @@ export interface EvaluateOptions {
63
64
  * UNRESOLVED and matches nothing — absent means "no tags exist", so every
64
65
  * rule naming a tag is unresolved, never silently broad. */
65
66
  definedModelTagIds?: ReadonlySet<string>;
67
+ /** Answers `listCondition` rules for this model (#6190); see `EvaluatorModel.listConditions`. */
68
+ listConditions?: ListConditionMatcher;
66
69
  }
67
70
  /**
68
71
  * Evaluate `rules` against one model synchronously. Suitable for tests
@@ -102,6 +105,8 @@ export interface EvaluatorModel {
102
105
  tagIds?: ReadonlySet<string>;
103
106
  store: IfcDataStore | null;
104
107
  mutationView?: MutablePropertyView;
108
+ /** Host reader for `listCondition` rules (#6190): `@ifc-lite/lists`' `listConditionMatcher(provider)`. */
109
+ listConditions?: ListConditionMatcher;
105
110
  }
106
111
  export declare function evaluateFilterRulesFederated(models: ReadonlyArray<EvaluatorModel>, rules: readonly FilterRule[], combinator: Combinator, options?: FederatedEvaluateOptions): Promise<FilteredElement[]>;
107
112
  export declare const __internal: {
@@ -1 +1 @@
1
- {"version":3,"file":"filter-evaluate.d.ts","sourceRoot":"","sources":["../../src/filter/filter-evaluate.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAa3B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAWvF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAGlB,eAAe,EACf,uBAAuB,EACvB,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAO3B,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC;;iEAE6D;IAC7D,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AAOD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,eAAoB,GAC5B,eAAe,EAAE,CAsCnB;AAID,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAC5F;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;+BAE2B;IAC3B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED;;;GAGG;AACH;;8EAE8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAChE;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,eAAe,EAAE,CAAC,CA8G5B;AAsOD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYtB,CAAC"}
1
+ {"version":3,"file":"filter-evaluate.d.ts","sourceRoot":"","sources":["../../src/filter/filter-evaluate.ts"],"names":[],"mappings":"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"}
@@ -42,10 +42,12 @@ import { selectIterationSource, orderRulesByCost } from './filter-iteration-sour
42
42
  import { buildFilterResult, effectiveFilterFields } from './effective-filter-fields.js';
43
43
  import { throwAbort, yieldToEventLoop } from './filter-evaluate-yield.js';
44
44
  import { modelPrunedUnderAnd, modelScopedRuleMatches, isModelScopedRule, NO_MODEL_TAGS, } from './filter-evaluate-model-tag.js';
45
- import { flattenPsets, flattenQtys, stringifyValue, matchPropertyRule, matchQuantityRule, matchAttributeRule, defaultStoreyName, storeyMatchesRefs, materialNamesOf, materialMatchCandidates, matchClassificationRule, matchParentRule, elevationOf, } from './filter-match.js';
45
+ import { flattenPsets, flattenQtys, stringifyValue, matchPropertyRule, matchQuantityRule, matchAttributeRule, materialNamesOf, materialMatchCandidates, matchClassificationRule, matchParentRule, elevationOf, } from './filter-match.js';
46
+ import { defaultStoreyName, storeyMatchesRefs } from './filter-storey.js';
46
47
  import { resolveEntityPredefinedType } from './entity-predefined-type.js';
47
48
  import { matchGroupRule } from './filter-group-rule.js';
48
49
  import { matchModelFactRule } from './filter-model-fact.js';
50
+ import { assertListConditionsAnswerable, matchListConditionRule } from './filter-list-condition.js';
49
51
  import { readsThroughSubject } from './subject-read-options.js';
50
52
  import { matchRuleThroughSubject } from './subject-match.js';
51
53
  const DEFAULT_LIMIT = 5_000;
@@ -60,27 +62,16 @@ const DEFAULT_CHUNK_SIZE = 20_000;
60
62
  export function evaluateFilterRules(modelId, store, rules, combinator, options = {}) {
61
63
  if (rules.length === 0)
62
64
  return [];
65
+ assertListConditionsAnswerable(rules, [{ id: modelId, store, listConditions: options.listConditions }]);
63
66
  const limit = options.limit ?? DEFAULT_LIMIT;
64
67
  const orderedRules = orderRulesByCost(rules);
65
68
  const iterIds = toNumericIterable(selectIterationSource(store, rules, combinator, options.candidateExpressIds, modelId));
66
69
  const out = [];
67
- const ctx = {
68
- store,
69
- modelId,
70
- scope: {
71
- filterIdentity: options.modelFilterIdentity ?? modelId,
72
- tagIds: options.modelTagIds,
73
- definedModelTagIds: options.definedModelTagIds ?? NO_MODEL_TAGS,
74
- },
75
- table: store.entities,
76
- options,
77
- hasPropertyRule: orderedRules.some((r) => r.kind === 'property'),
78
- hasQuantityRule: orderedRules.some((r) => r.kind === 'quantity'),
79
- hasMaterialRule: orderedRules.some((r) => r.kind === 'material'),
80
- hasClassificationRule: orderedRules.some((r) => r.kind === 'classification'),
81
- hasAttributeRule: orderedRules.some((r) => r.kind === 'attribute'),
82
- typePsetCache: new Map(),
83
- };
70
+ const ctx = evalContext(store, modelId, {
71
+ filterIdentity: options.modelFilterIdentity ?? modelId,
72
+ tagIds: options.modelTagIds,
73
+ definedModelTagIds: options.definedModelTagIds ?? NO_MODEL_TAGS,
74
+ }, options, orderedRules, undefined, options.listConditions);
84
75
  for (const expressId of iterIds) {
85
76
  if (out.length >= limit)
86
77
  break;
@@ -99,6 +90,7 @@ export function evaluateFilterRules(modelId, store, rules, combinator, options =
99
90
  export async function evaluateFilterRulesFederated(models, rules, combinator, options = {}) {
100
91
  if (rules.length === 0)
101
92
  return [];
93
+ assertListConditionsAnswerable(rules, models);
102
94
  const limit = options.limit ?? DEFAULT_LIMIT;
103
95
  const chunkSize = options.chunkSize ?? DEFAULT_CHUNK_SIZE;
104
96
  const signal = options.signal;
@@ -130,7 +122,7 @@ export async function evaluateFilterRulesFederated(models, rules, combinator, op
130
122
  plans.push({
131
123
  modelId: m.id,
132
124
  scope,
133
- store: m.store, mutationView: m.mutationView,
125
+ store: m.store, mutationView: m.mutationView, listConditions: m.listConditions,
134
126
  iter: arr ?? source,
135
127
  total: arr ? arr.length : -1,
136
128
  });
@@ -142,19 +134,7 @@ export async function evaluateFilterRulesFederated(models, rules, combinator, op
142
134
  break;
143
135
  if (signal?.aborted)
144
136
  throwAbort(signal);
145
- const ctx = {
146
- store: plan.store,
147
- modelId: plan.modelId,
148
- scope: plan.scope, mutationView: plan.mutationView,
149
- table: plan.store.entities,
150
- options,
151
- hasPropertyRule: orderedRules.some((r) => r.kind === 'property'),
152
- hasQuantityRule: orderedRules.some((r) => r.kind === 'quantity'),
153
- hasMaterialRule: orderedRules.some((r) => r.kind === 'material'),
154
- hasClassificationRule: orderedRules.some((r) => r.kind === 'classification'),
155
- hasAttributeRule: orderedRules.some((r) => r.kind === 'attribute'),
156
- typePsetCache: new Map(),
157
- };
137
+ const ctx = evalContext(plan.store, plan.modelId, plan.scope, options, orderedRules, plan.mutationView, plan.listConditions);
158
138
  // Walk the per-model iter in chunkSize-sized strides, yielding the
159
139
  // event loop between chunks. ArrayLike fast-path uses index access;
160
140
  // the fallback path drains an iterator into chunks.
@@ -208,6 +188,15 @@ export async function evaluateFilterRulesFederated(models, rules, combinator, op
208
188
  }
209
189
  return out;
210
190
  }
191
+ function evalContext(store, modelId, scope, options, rules, mutationView, listConditions) {
192
+ const has = (kind) => rules.some((r) => r.kind === kind);
193
+ return {
194
+ store, modelId, scope, mutationView, table: store.entities, options,
195
+ hasPropertyRule: has('property'), hasQuantityRule: has('quantity'), hasMaterialRule: has('material'),
196
+ hasClassificationRule: has('classification'), hasAttributeRule: has('attribute'),
197
+ typePsetCache: new Map(), listConditions,
198
+ };
199
+ }
211
200
  function evaluateOneEntity(ctx, expressId, orderedRules, combinator) {
212
201
  if (ctx.mutationView?.isDeleted(expressId))
213
202
  return null;
@@ -217,23 +206,24 @@ function evaluateOneEntity(ctx, expressId, orderedRules, combinator) {
217
206
  // rules check first; AND short-circuit on a cheap miss skips the
218
207
  // parse entirely.
219
208
  let psetCache = null;
209
+ let legacyPsetCache = null;
210
+ let sourcePsets = null;
220
211
  let qtyCache = null;
221
212
  let matCache = null;
222
213
  let classCache = null;
223
214
  let attrCache = null;
224
- const psetsFor = () => {
225
- if (!psetCache) {
226
- const ownSets = ownPropertySetsFor(ctx.store, expressId, ctx.mutationView); // #4946, mutation-aware
227
- const typeSets = getInheritedTypePsets(ctx, expressId);
228
- // IFC inheritance is per-PROPERTY, not per-set, and the occurrence's
229
- // own value wins on a name collision — same rule the IDS bridge
230
- // already applies (`mergeInheritedPropertySets`, packages/parser).
231
- // A type-only pset (nothing on the instance) is appended as-is, so
232
- // `isSet`/`isNotSet` now also see properties that exist ONLY on the
233
- // type — a deliberate presence-semantics change (was instance-only).
234
- psetCache = flattenPsets(mergeInheritedPropertySets(ownSets, typeSets));
215
+ const psetsFor = (legacyListFirst = false) => {
216
+ sourcePsets ??= [ownPropertySetsFor(ctx.store, expressId, ctx.mutationView),
217
+ getInheritedTypePsets(ctx, expressId)]; // #4946, mutation-aware
218
+ if (legacyListFirst) {
219
+ // V1 Lists search ALL occurrence sets before the TYPE fallback. A
220
+ // per-property merge could insert a type value into the first own set
221
+ // ahead of a matching value in the second own set.
222
+ return legacyPsetCache ??= flattenPsets([...sourcePsets[0], ...sourcePsets[1]], true);
235
223
  }
236
- return psetCache;
224
+ // Canonical Rules inheritance is per-property: own values win a name
225
+ // collision, while type-only properties remain visible in a shared set.
226
+ return psetCache ??= flattenPsets(mergeInheritedPropertySets(sourcePsets[0], sourcePsets[1]));
237
227
  };
238
228
  const qtysFor = () => {
239
229
  if (!qtyCache)
@@ -348,7 +338,7 @@ function evaluateRule(rule, ctx, expressId, psetsFor, qtysFor, matNamesFor, clas
348
338
  case 'property':
349
339
  if (readsThroughSubject(rule))
350
340
  return matchRuleThroughSubject(rule, ctx.store, expressId);
351
- return psetsFor ? matchPropertyRule(rule, psetsFor()) : false;
341
+ return psetsFor ? matchPropertyRule(rule, psetsFor(rule.legacyListFirst)) : false;
352
342
  case 'quantity':
353
343
  if (readsThroughSubject(rule))
354
344
  return matchRuleThroughSubject(rule, ctx.store, expressId);
@@ -378,6 +368,7 @@ function evaluateRule(rule, ctx, expressId, psetsFor, qtysFor, matNamesFor, clas
378
368
  case 'parent': return matchParentRule(rule, ctx.store, expressId);
379
369
  case 'group': return matchGroupRule(rule, ctx.store, expressId);
380
370
  case 'modelFact': return matchModelFactRule(rule, ctx.store);
371
+ case 'listCondition': return matchListConditionRule(rule, expressId, ctx.listConditions);
381
372
  }
382
373
  }
383
374
  /**
@@ -395,16 +386,7 @@ function relatingTypeNameOf(ctx, expressId) {
395
386
  }
396
387
  // ── Exposed for tests ────────────────────────────────────────────────────────
397
388
  export const __internal = {
398
- flattenPsets,
399
- flattenQtys,
400
- stringifyValue,
401
- matchPropertyRule,
402
- matchQuantityRule,
403
- matchAttributeRule,
404
- materialNamesOf,
405
- matchClassificationRule,
406
- elevationOf,
407
- orderRulesByCost,
408
- selectIterationSource,
389
+ flattenPsets, flattenQtys, stringifyValue, matchPropertyRule, matchQuantityRule, matchAttributeRule,
390
+ materialNamesOf, matchClassificationRule, elevationOf, orderRulesByCost, selectIterationSource,
409
391
  };
410
392
  //# sourceMappingURL=filter-evaluate.js.map