@ifc-lite/rules 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/engine/rule-engine-requirements.d.ts.map +1 -1
- package/dist/engine/rule-engine-requirements.js +3 -2
- package/dist/engine/rule-engine-requirements.js.map +1 -1
- package/dist/engine/rule-engine-sets.d.ts.map +1 -1
- package/dist/engine/rule-engine-sets.js +2 -1
- package/dist/engine/rule-engine-sets.js.map +1 -1
- package/dist/engine/rule-engine.d.ts.map +1 -1
- package/dist/engine/rule-engine.js +5 -3
- package/dist/engine/rule-engine.js.map +1 -1
- package/dist/filter/filter-evaluate-groups.d.ts.map +1 -1
- package/dist/filter/filter-evaluate-groups.js +4 -0
- package/dist/filter/filter-evaluate-groups.js.map +1 -1
- package/dist/filter/filter-evaluate.d.ts +5 -0
- package/dist/filter/filter-evaluate.d.ts.map +1 -1
- package/dist/filter/filter-evaluate.js +38 -56
- package/dist/filter/filter-evaluate.js.map +1 -1
- package/dist/filter/filter-iteration-source.d.ts.map +1 -1
- package/dist/filter/filter-iteration-source.js +3 -1
- package/dist/filter/filter-iteration-source.js.map +1 -1
- package/dist/filter/filter-list-condition.d.ts +57 -0
- package/dist/filter/filter-list-condition.d.ts.map +1 -0
- package/dist/filter/filter-list-condition.js +68 -0
- package/dist/filter/filter-list-condition.js.map +1 -0
- package/dist/filter/filter-match.d.ts +8 -17
- package/dist/filter/filter-match.d.ts.map +1 -1
- package/dist/filter/filter-match.js +61 -118
- package/dist/filter/filter-match.js.map +1 -1
- package/dist/filter/filter-operator-types.d.ts +46 -0
- package/dist/filter/filter-operator-types.d.ts.map +1 -0
- package/dist/filter/filter-operator-types.js +5 -0
- package/dist/filter/filter-operator-types.js.map +1 -0
- package/dist/filter/filter-ops.d.ts +2 -2
- package/dist/filter/filter-ops.d.ts.map +1 -1
- package/dist/filter/filter-ops.js +25 -5
- package/dist/filter/filter-ops.js.map +1 -1
- package/dist/filter/filter-rule-guards.d.ts.map +1 -1
- package/dist/filter/filter-rule-guards.js +31 -3
- package/dist/filter/filter-rule-guards.js.map +1 -1
- package/dist/filter/filter-rules.d.ts +15 -39
- package/dist/filter/filter-rules.d.ts.map +1 -1
- package/dist/filter/filter-rules.js +2 -1
- package/dist/filter/filter-rules.js.map +1 -1
- package/dist/filter/filter-storey.d.ts +18 -0
- package/dist/filter/filter-storey.d.ts.map +1 -0
- package/dist/filter/filter-storey.js +109 -0
- package/dist/filter/filter-storey.js.map +1 -0
- package/dist/filter/legacy-operator-adapters.d.ts +47 -0
- package/dist/filter/legacy-operator-adapters.d.ts.map +1 -0
- package/dist/filter/legacy-operator-adapters.js +74 -0
- package/dist/filter/legacy-operator-adapters.js.map +1 -0
- package/dist/filter/read-measure-subject.d.ts +3 -2
- package/dist/filter/read-measure-subject.d.ts.map +1 -1
- package/dist/filter/read-measure-subject.js +18 -5
- package/dist/filter/read-measure-subject.js.map +1 -1
- package/dist/filter/read-subject.d.ts.map +1 -1
- package/dist/filter/read-subject.js +2 -1
- package/dist/filter/read-subject.js.map +1 -1
- package/dist/filter/subject-read-options.d.ts +17 -1
- package/dist/filter/subject-read-options.d.ts.map +1 -1
- package/dist/filter/subject-read-options.js +9 -1
- package/dist/filter/subject-read-options.js.map +1 -1
- package/dist/ids/rule-to-ids-facets.d.ts.map +1 -1
- package/dist/ids/rule-to-ids-facets.js +5 -0
- package/dist/ids/rule-to-ids-facets.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/rule-set/between-chip.js +1 -1
- package/dist/rule-set/between-chip.js.map +1 -1
- package/dist/rule-set/requirement-text.d.ts.map +1 -1
- package/dist/rule-set/requirement-text.js +1 -0
- package/dist/rule-set/requirement-text.js.map +1 -1
- package/dist/rule-set/rule-set-io-requirement.d.ts.map +1 -1
- package/dist/rule-set/rule-set-io-requirement.js +2 -0
- package/dist/rule-set/rule-set-io-requirement.js.map +1 -1
- package/dist/rule-set/rule-set-io-subject.d.ts.map +1 -1
- package/dist/rule-set/rule-set-io-subject.js +5 -0
- package/dist/rule-set/rule-set-io-subject.js.map +1 -1
- 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":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAEL,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,GAG3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEhJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EACL,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAA8B,MAAM,8BAA8B,CAAC;AACpH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GAEd,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAAE,uBAAuB,EACxC,uBAAuB,EAAE,eAAe,EACxC,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAA6B,MAAM,4BAA4B,CAAC;AAC/H,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAoC7D,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,KAAmB,EACnB,KAA4B,EAC5B,UAAsB,EACtB,UAA2B,EAAE;IAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,8BAA8B,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAExG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC7C,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAC/B,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CACtF,CAAC;IACF,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;QACtC,cAAc,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO;QACtD,MAAM,EAAE,OAAO,CAAC,WAAW;QAC3B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,aAAa;KAChE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7D,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;QAC/B,mEAAmE;QACnE,+DAA+D;QAC/D,kEAAkE;QAClE,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAuCD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAqC,EACrC,KAA4B,EAC5B,UAAsB,EACtB,UAAoC,EAAE;IAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAElC,gEAAgE;IAChE,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,aAAa,CAAC;IASvE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,SAAS;QACvB,MAAM,KAAK,GAAe,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAC7G,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,UAAU,KAAK,KAAK,IAAI,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,SAAS;QAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,UAAU,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAChH,MAAM,GAAG,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,CAAC,CAAC,EAAE;YACb,KAAK;YACL,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc;YAC9E,IAAI,EAAE,GAAG,IAAI,MAAM;YACnB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;QAC/B,IAAI,MAAM,EAAE,OAAO;YAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7H,mEAAmE;QACnE,oEAAoE;QACpE,oDAAoD;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAyB,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBACrE,IAAI,MAAM,EAAE,OAAO;oBAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,CAAC,SAAS;wBAAE,SAAS;oBACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;oBAC3E,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACtB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC7D,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;wBAAE,MAAM;gBACjC,CAAC;gBACD,OAAO,IAAI,GAAG,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK;oBAAE,MAAM,gBAAgB,EAAE,CAAC;YACvE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAwB,EAAE,CAAC;gBACtD,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM;gBAC/B,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;gBAC3E,IAAI,MAAM,EAAE,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBACD,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC1B,QAAQ,GAAG,CAAC,CAAC;oBACb,IAAI,MAAM,EAAE,OAAO;wBAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,MAAM,gBAAgB,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,wCAAwC;YACxC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAgCD,SAAS,WAAW,CAClB,KAAmB,EAAE,OAAe,EAAE,KAAiB,EAAE,OAAwB,EACjF,KAA4B,EAAE,YAAkC,EAAE,cAAqC;IAEvG,MAAM,GAAG,GAAG,CAAC,IAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC7E,OAAO;QACL,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO;QACnE,eAAe,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,UAAU,CAAC;QACpG,qBAAqB,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,WAAW,CAAC;QAChF,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,cAAc;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,GAAgB,EAChB,SAAiB,EACjB,YAAmC,EACnC,UAAsB;IAEtB,IAAI,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC7E,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,kBAAkB;IAClB,IAAI,SAAS,GAAoB,IAAI,CAAC;IACtC,IAAI,eAAe,GAAoB,IAAI,CAAC;IAC5C,IAAI,WAAW,GAAwC,IAAI,CAAC;IAC5D,IAAI,QAAQ,GAAmB,IAAI,CAAC;IACpC,IAAI,QAAQ,GAAoB,IAAI,CAAC;IACrC,IAAI,UAAU,GAAyC,IAAI,CAAC;IAC5D,IAAI,SAAS,GAAoB,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,CAAC,eAAe,GAAG,KAAK,EAAY,EAAE;QACrD,WAAW,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC;YACzE,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAClE,IAAI,eAAe,EAAE,CAAC;YACpB,kEAAkE;YAClE,sEAAsE;YACtE,mDAAmD;YACnD,OAAO,eAAe,KAAK,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxF,CAAC;QACD,qEAAqE;QACrE,wEAAwE;QACxE,OAAO,SAAS,KAAK,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAY,EAAE;QAC5B,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAa,EAAE;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,sEAAsE;YACtE,kEAAkE;YAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;gBACrE,KAAK,MAAM,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAkC,EAAE;QACnD,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAa,EAAE;QAC9B,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,YAAY,CACzB,IAAI,EACJ,GAAG,EACH,SAAS,EACT,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACrC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EACpC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EACxC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAC3C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACtC,MAAM,CACP,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,UAAU,KAAK,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IACnD,CAAC;IACD,OAAO,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,qBAAqB,CAAC,GAAgB,EAAE,SAAiB;IAChE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1B,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,IAAI,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACpD,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,UAAU,IAAI,EAAE;YACvE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAA4B,CAAC;QACpF,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;AACtF,CAAC;AAED,SAAS,YAAY,CACnB,IAAgB,EAChB,GAAgB,EAChB,SAAiB,EACjB,QAA0D,EAC1D,OAA+B,EAC/B,WAAoC,EACpC,QAAsD,EACtD,QAAiC,EACjC,MAA6B;IAE7B,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,yDAAyD;YACzD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,CAAC;YACD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;mBACnD,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,sGAAsG;YACtG,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,CAAC;mBAC1E,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC;mBACzC,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;mBACjD,EAAE,CAAC;YACR,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,gGAAgG;YAChG,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,UAAU;YACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5B,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,UAAU;YACb,IAAI,mBAAmB,CAAC,IAAI,CAAC;gBAAE,OAAO,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1F,OAAO,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpF,KAAK,UAAU;YACb,IAAI,mBAAmB,CAAC,IAAI,CAAC;gBAAE,OAAO,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1F,OAAO,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChF,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5B,OAAO,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC/C,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YAChC,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACpC,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClE,KAAK,OAAO,CAAC,CAAC,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAChE,KAAK,WAAW,CAAC,CAAC,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7D,KAAK,eAAe,CAAC,CAAC,OAAO,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAgB,EAAE,SAAiB;IAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB;IACnG,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB;CAC/F,CAAC"}
|
|
@@ -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;
|
|
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-
|
|
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,
|
|
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
|
|
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 {
|
|
@@ -53,7 +58,7 @@ export declare function propertyCandidates(p: {
|
|
|
53
58
|
values?: readonly string[];
|
|
54
59
|
structure?: string;
|
|
55
60
|
}): string[];
|
|
56
|
-
export declare function flattenPsets(psets: ReturnType<typeof extractPropertiesOnDemand
|
|
61
|
+
export declare function flattenPsets(psets: ReturnType<typeof extractPropertiesOnDemand>, includeLegacyListValues?: boolean): PsetRows;
|
|
57
62
|
export declare function flattenQtys(qtos: ReturnType<typeof extractQuantitiesOnDemand>): QtyRows;
|
|
58
63
|
export declare function stringifyValue(value: unknown): string;
|
|
59
64
|
export declare function matchPropertyRule(rule: PropertyRule, rows: PsetRows): boolean;
|
|
@@ -75,20 +80,6 @@ export type AttrRows = ReadonlyArray<{
|
|
|
75
80
|
*/
|
|
76
81
|
export declare function matchAttributeRule(rule: AttributeRule, attrs: AttrRows): boolean;
|
|
77
82
|
export declare function matchQuantityRule(rule: QuantityRule, rows: QtyRows): boolean;
|
|
78
|
-
export declare function defaultStoreyName(store: IfcDataStore, expressId: number): string;
|
|
79
|
-
/** Does `expressId` (in `modelId`) sit in a storey ref'd by `rule.refs`?
|
|
80
|
-
* `IfcBuildingStorey.Name` isn't unique, so once a `StoreyRule` carries
|
|
81
|
-
* an exact (modelId, expressId) ref (mirrored from a HierarchyPanel
|
|
82
|
-
* click), matching bypasses Name entirely. Reaches through a containing
|
|
83
|
-
* space via {@link storeyIdOf}, same as the Name-matched path. */
|
|
84
|
-
export declare function storeyMatchesRefs(store: IfcDataStore, expressId: number, modelId: string, rule: StoreyRule): boolean;
|
|
85
|
-
/** Index-prefilter twin of {@link storeyMatchesRefs}/Name matching: the
|
|
86
|
-
* bucket of elements a `storey op:'in'` rule narrows to for `modelId`.
|
|
87
|
-
* Includes each matched storey's directly-contained elements AND every
|
|
88
|
-
* element `bySpace` lists for a space belonging to that storey, so this
|
|
89
|
-
* prefilter can never exclude a candidate the (also widened) per-entity
|
|
90
|
-
* check in `filter-evaluate.ts` would go on to match. */
|
|
91
|
-
export declare function unionByStorey(store: IfcDataStore, rule: StoreyRule, modelId: string | undefined): number[] | null;
|
|
92
83
|
/** Collect the *individual* material names an element exposes - each layer /
|
|
93
84
|
* constituent / profile material, or the single plain material - for the
|
|
94
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":"AAIA;;;;;;;GAOG;AAEH,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,
|
|
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/
|
|
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,11 +27,13 @@ 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
39
|
/** Structures whose `values` are the candidates a rule reads (#5475). */
|
|
@@ -48,10 +50,27 @@ export function propertyCandidates(p) {
|
|
|
48
50
|
return [...p.values];
|
|
49
51
|
return [stringifyValue(p.value)];
|
|
50
52
|
}
|
|
51
|
-
|
|
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) {
|
|
52
66
|
const out = [];
|
|
53
67
|
for (const set of psets) {
|
|
54
68
|
for (const p of set.properties) {
|
|
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;
|
|
55
74
|
for (const value of propertyCandidates(p))
|
|
56
75
|
out.push({
|
|
57
76
|
setName: set.name,
|
|
@@ -65,6 +84,8 @@ export function flattenPsets(psets) {
|
|
|
65
84
|
// are case-insensitive, so this doesn't change matching outcomes
|
|
66
85
|
// for either the search chips or free-typed "true"/"false".
|
|
67
86
|
value,
|
|
87
|
+
valueType,
|
|
88
|
+
...(includeLegacyListValues ? { legacyListValue: firstValue } : {}),
|
|
68
89
|
});
|
|
69
90
|
}
|
|
70
91
|
}
|
|
@@ -93,22 +114,43 @@ export function stringifyValue(value) {
|
|
|
93
114
|
return String(value);
|
|
94
115
|
}
|
|
95
116
|
export function matchPropertyRule(rule, rows) {
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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);
|
|
101
131
|
}
|
|
102
|
-
const matching = rows.filter((r) => nameMatches(rule.setName, r.setName, rule.setNameKind) &&
|
|
103
|
-
nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind));
|
|
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;
|
|
104
146
|
// A negated op holds when NO candidate has the value (a list [A, B] is
|
|
105
147
|
// not "!= A"), the ANY/NONE convention `material` and `parent` use and
|
|
106
148
|
// validation's `checkValueOp` applies (#5475). With a single candidate
|
|
107
149
|
// this is the same answer as before.
|
|
108
150
|
const positive = NEGATED_VALUE_OP[rule.op];
|
|
109
151
|
if (positive)
|
|
110
|
-
return
|
|
111
|
-
return
|
|
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));
|
|
112
154
|
}
|
|
113
155
|
/** A negated value op's positive form: the negation holds when NO candidate satisfies it (#5475). */
|
|
114
156
|
export const NEGATED_VALUE_OP = { ne: 'eq', notContains: 'contains', notMatches: 'matches' };
|
|
@@ -128,120 +170,21 @@ export function matchAttributeRule(rule, attrs) {
|
|
|
128
170
|
const present = (stringified ?? '').length > 0;
|
|
129
171
|
return rule.op === 'isSet' ? present : !present;
|
|
130
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;
|
|
131
179
|
if (stringified === undefined)
|
|
132
180
|
return false;
|
|
133
|
-
return valueOpMatches(rule.op, stringified, rule.value, rule.valueKind);
|
|
181
|
+
return valueOpMatches(rule.op, stringified, rule.value, rule.valueKind, rule.comparison);
|
|
134
182
|
}
|
|
135
183
|
export function matchQuantityRule(rule, rows) {
|
|
136
184
|
return rows.some((r) => nameMatches(rule.setName, r.setName, rule.setNameKind) &&
|
|
137
185
|
nameMatches(rule.quantityName, r.quantityName, rule.quantityNameKind) &&
|
|
138
186
|
numericOpMatches(rule.op, r.value, rule.value));
|
|
139
187
|
}
|
|
140
|
-
// ── Storey lookup fallback ────────────────────────────────────────────────────
|
|
141
|
-
/**
|
|
142
|
-
* Storey id an element belongs to: its own direct containment
|
|
143
|
-
* (`elementToStorey`, set for an element the storey directly contains plus
|
|
144
|
-
* its `IfcRelAggregates`-aggregated parts) OR — one hop through a
|
|
145
|
-
* containing `IfcSpace`/`IfcSpatialZone` — the storey THAT space belongs
|
|
146
|
-
* to. A space is itself mapped to its storey in `elementToStorey`
|
|
147
|
-
* (`SpatialHierarchyBuilder` walks a storey's own spatial children), so
|
|
148
|
-
* this is a composition of two maps that already exist plus
|
|
149
|
-
* `getContainingSpace` (`@ifc-lite/data`'s `spatialLookups`), not a new
|
|
150
|
-
* traversal. The single home for "which storey" so the per-entity
|
|
151
|
-
* evaluator (`defaultStoreyName`/`storeyMatchesRefs`) and the bulk index
|
|
152
|
-
* prefilter (`unionByStorey`) cannot answer it two different ways.
|
|
153
|
-
*
|
|
154
|
-
* Reaches exactly one level down from the storey: an element inside a
|
|
155
|
-
* space nested inside another space (rather than directly under the
|
|
156
|
-
* storey) is not resolved — see `docs/guide/selector-syntax.md`.
|
|
157
|
-
*/
|
|
158
|
-
function storeyIdOf(hierarchy, expressId) {
|
|
159
|
-
const direct = hierarchy.elementToStorey.get(expressId);
|
|
160
|
-
if (direct !== undefined)
|
|
161
|
-
return direct;
|
|
162
|
-
// `getContainingSpace` is part of the `spatialLookups()` contract every
|
|
163
|
-
// real hierarchy carries, but several tests in this suite build a
|
|
164
|
-
// hand-rolled partial `spatialHierarchy` mock (`byStorey`/`elementToStorey`
|
|
165
|
-
// only) to exercise the ref/name-matching paths in isolation — guard
|
|
166
|
-
// rather than assume every field is present.
|
|
167
|
-
const spaceId = hierarchy.getContainingSpace?.(expressId);
|
|
168
|
-
if (spaceId == null)
|
|
169
|
-
return undefined;
|
|
170
|
-
return hierarchy.elementToStorey.get(spaceId);
|
|
171
|
-
}
|
|
172
|
-
/** Every element `bySpace` lists for a space belonging to `storeyId` — the
|
|
173
|
-
* bulk-prefilter twin of {@link storeyIdOf}'s one-hop space widening.
|
|
174
|
-
* `bySpace` is absent on the same partial test mocks {@link storeyIdOf}
|
|
175
|
-
* guards against. */
|
|
176
|
-
function spaceElementsOfStorey(hierarchy, storeyId) {
|
|
177
|
-
const out = [];
|
|
178
|
-
if (!hierarchy.bySpace)
|
|
179
|
-
return out;
|
|
180
|
-
for (const [spaceId, elements] of hierarchy.bySpace) {
|
|
181
|
-
if (hierarchy.elementToStorey.get(spaceId) !== storeyId)
|
|
182
|
-
continue;
|
|
183
|
-
for (const id of elements)
|
|
184
|
-
out.push(id);
|
|
185
|
-
}
|
|
186
|
-
return out;
|
|
187
|
-
}
|
|
188
|
-
export function defaultStoreyName(store, expressId) {
|
|
189
|
-
const hierarchy = store.spatialHierarchy;
|
|
190
|
-
if (!hierarchy)
|
|
191
|
-
return '';
|
|
192
|
-
const storeyId = storeyIdOf(hierarchy, expressId);
|
|
193
|
-
if (!storeyId)
|
|
194
|
-
return '';
|
|
195
|
-
return store.entities.getName(storeyId);
|
|
196
|
-
}
|
|
197
|
-
/** Does `expressId` (in `modelId`) sit in a storey ref'd by `rule.refs`?
|
|
198
|
-
* `IfcBuildingStorey.Name` isn't unique, so once a `StoreyRule` carries
|
|
199
|
-
* an exact (modelId, expressId) ref (mirrored from a HierarchyPanel
|
|
200
|
-
* click), matching bypasses Name entirely. Reaches through a containing
|
|
201
|
-
* space via {@link storeyIdOf}, same as the Name-matched path. */
|
|
202
|
-
export function storeyMatchesRefs(store, expressId, modelId, rule) {
|
|
203
|
-
const hierarchy = store.spatialHierarchy;
|
|
204
|
-
const storeyId = hierarchy ? storeyIdOf(hierarchy, expressId) : undefined;
|
|
205
|
-
return storeyId != null && !!rule.refs?.some((r) => r.modelId === modelId && r.expressId === storeyId);
|
|
206
|
-
}
|
|
207
|
-
/** Index-prefilter twin of {@link storeyMatchesRefs}/Name matching: the
|
|
208
|
-
* bucket of elements a `storey op:'in'` rule narrows to for `modelId`.
|
|
209
|
-
* Includes each matched storey's directly-contained elements AND every
|
|
210
|
-
* element `bySpace` lists for a space belonging to that storey, so this
|
|
211
|
-
* prefilter can never exclude a candidate the (also widened) per-entity
|
|
212
|
-
* check in `filter-evaluate.ts` would go on to match. */
|
|
213
|
-
export function unionByStorey(store, rule, modelId) {
|
|
214
|
-
const hierarchy = store.spatialHierarchy;
|
|
215
|
-
if (!hierarchy)
|
|
216
|
-
return null;
|
|
217
|
-
const out = [];
|
|
218
|
-
if (rule.refs) {
|
|
219
|
-
for (const ref of rule.refs) {
|
|
220
|
-
if (ref.modelId !== modelId)
|
|
221
|
-
continue;
|
|
222
|
-
const elements = hierarchy.byStorey.get(ref.expressId);
|
|
223
|
-
if (elements)
|
|
224
|
-
for (const id of elements)
|
|
225
|
-
out.push(id);
|
|
226
|
-
for (const id of spaceElementsOfStorey(hierarchy, ref.expressId))
|
|
227
|
-
out.push(id);
|
|
228
|
-
}
|
|
229
|
-
return out.length > 0 ? out : null;
|
|
230
|
-
}
|
|
231
|
-
const wanted = new Set(rule.values.map((n) => n.toLowerCase()));
|
|
232
|
-
for (const storeyId of hierarchy.byStorey.keys()) {
|
|
233
|
-
const name = store.entities.getName(storeyId);
|
|
234
|
-
if (!wanted.has(name.toLowerCase()))
|
|
235
|
-
continue;
|
|
236
|
-
const elements = hierarchy.byStorey.get(storeyId);
|
|
237
|
-
if (elements)
|
|
238
|
-
for (const id of elements)
|
|
239
|
-
out.push(id);
|
|
240
|
-
for (const id of spaceElementsOfStorey(hierarchy, storeyId))
|
|
241
|
-
out.push(id);
|
|
242
|
-
}
|
|
243
|
-
return out.length > 0 ? out : null;
|
|
244
|
-
}
|
|
245
188
|
// ── Material / classification / elevation resolution ─────────────────────────
|
|
246
189
|
/** Collect the *individual* material names an element exposes - each layer /
|
|
247
190
|
* constituent / profile material, or the single plain material - for the
|