@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.
- package/README.md +2 -0
- package/dist/engine/rule-engine-compare.js +3 -3
- package/dist/engine/rule-engine-compare.js.map +1 -1
- package/dist/engine/rule-engine-requirements.d.ts.map +1 -1
- package/dist/engine/rule-engine-requirements.js +13 -8
- 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 +7 -6
- package/dist/engine/rule-engine-sets.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 +22 -17
- package/dist/filter/filter-match.d.ts.map +1 -1
- package/dist/filter/filter-match.js +97 -130
- package/dist/filter/filter-match.js.map +1 -1
- package/dist/filter/filter-model-fact.js +2 -2
- package/dist/filter/filter-model-fact.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 +5 -2
- package/dist/filter/read-measure-subject.d.ts.map +1 -1
- package/dist/filter/read-measure-subject.js +31 -12
- package/dist/filter/read-measure-subject.js.map +1 -1
- package/dist/filter/read-subject.d.ts +9 -0
- package/dist/filter/read-subject.d.ts.map +1 -1
- package/dist/filter/read-subject.js +14 -1
- package/dist/filter/read-subject.js.map +1 -1
- package/dist/filter/subject-match.d.ts.map +1 -1
- package/dist/filter/subject-match.js +7 -0
- package/dist/filter/subject-match.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":"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,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAAE,uBAAuB,EACxC,uBAAuB,EAAE,eAAe,EACxC,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAC3B,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,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAkC7D,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;IAElC,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,GAAgB;QACvB,KAAK;QACL,OAAO;QACP,KAAK,EAAE;YACL,cAAc,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO;YACtD,MAAM,EAAE,OAAO,CAAC,WAAW;YAC3B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,aAAa;SAChE;QACD,KAAK,EAAE,KAAK,CAAC,QAAQ;QACrB,OAAO;QACP,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QAChE,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QAChE,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QAChE,qBAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC;QAC5E,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;QAClE,aAAa,EAAE,IAAI,GAAG,EAAE;KACzB,CAAC;IAEF,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;AAqCD,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;IAElC,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;IAQvE,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;YAC5C,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,GAAgB;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;YAClD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC1B,OAAO;YACP,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YAChE,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YAChE,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YAChE,qBAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC;YAC5E,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;YAClE,aAAa,EAAE,IAAI,GAAG,EAAE;SACzB,CAAC;QAEF,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;AA+BD,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,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,GAAa,EAAE;QAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;YACpG,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACvD,qEAAqE;YACrE,gEAAgE;YAChE,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,qEAAqE;YACrE,SAAS,GAAG,YAAY,CAAC,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,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,QAAiC,EACjC,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,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,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;IAC/D,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;IACZ,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,WAAW;IACX,gBAAgB;IAChB,qBAAqB;CACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"filter-evaluate.js","sourceRoot":"","sources":["../../src/filter/filter-evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-iteration-source.d.ts","sourceRoot":"","sources":["../../src/filter/filter-iteration-source.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKhE;;;yDAGyD;AACzD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAE3E;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,mBAAmB,GACjC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAuCtC;
|
|
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 {
|
|
@@ -41,10 +46,24 @@ export interface QtyRow {
|
|
|
41
46
|
value: number;
|
|
42
47
|
}
|
|
43
48
|
export type QtyRows = ReadonlyArray<QtyRow>;
|
|
44
|
-
|
|
49
|
+
/**
|
|
50
|
+
* The values a rule compares for one property: every member of an
|
|
51
|
+
* enumerated or list value and every cell of a table, so a positive op
|
|
52
|
+
* passes when ANY of them does (IDS / ifctester parity, #5475); otherwise the
|
|
53
|
+
* single display value. An empty list keeps one blank candidate, so the
|
|
54
|
+
* property still reads as present for `isSet`, as it did before.
|
|
55
|
+
*/
|
|
56
|
+
export declare function propertyCandidates(p: {
|
|
57
|
+
value: unknown;
|
|
58
|
+
values?: readonly string[];
|
|
59
|
+
structure?: string;
|
|
60
|
+
}): string[];
|
|
61
|
+
export declare function flattenPsets(psets: ReturnType<typeof extractPropertiesOnDemand>, includeLegacyListValues?: boolean): PsetRows;
|
|
45
62
|
export declare function flattenQtys(qtos: ReturnType<typeof extractQuantitiesOnDemand>): QtyRows;
|
|
46
63
|
export declare function stringifyValue(value: unknown): string;
|
|
47
64
|
export declare function matchPropertyRule(rule: PropertyRule, rows: PsetRows): boolean;
|
|
65
|
+
/** A negated value op's positive form: the negation holds when NO candidate satisfies it (#5475). */
|
|
66
|
+
export declare const NEGATED_VALUE_OP: Partial<Record<ValueOp, ValueOp>>;
|
|
48
67
|
/** One entity's generic named attributes, as `extractAllEntityAttributes`
|
|
49
68
|
* returns them — schema-driven, string/number/boolean values only. */
|
|
50
69
|
export type AttrRows = ReadonlyArray<{
|
|
@@ -61,20 +80,6 @@ export type AttrRows = ReadonlyArray<{
|
|
|
61
80
|
*/
|
|
62
81
|
export declare function matchAttributeRule(rule: AttributeRule, attrs: AttrRows): boolean;
|
|
63
82
|
export declare function matchQuantityRule(rule: QuantityRule, rows: QtyRows): boolean;
|
|
64
|
-
export declare function defaultStoreyName(store: IfcDataStore, expressId: number): string;
|
|
65
|
-
/** Does `expressId` (in `modelId`) sit in a storey ref'd by `rule.refs`?
|
|
66
|
-
* `IfcBuildingStorey.Name` isn't unique, so once a `StoreyRule` carries
|
|
67
|
-
* an exact (modelId, expressId) ref (mirrored from a HierarchyPanel
|
|
68
|
-
* click), matching bypasses Name entirely. Reaches through a containing
|
|
69
|
-
* space via {@link storeyIdOf}, same as the Name-matched path. */
|
|
70
|
-
export declare function storeyMatchesRefs(store: IfcDataStore, expressId: number, modelId: string, rule: StoreyRule): boolean;
|
|
71
|
-
/** Index-prefilter twin of {@link storeyMatchesRefs}/Name matching: the
|
|
72
|
-
* bucket of elements a `storey op:'in'` rule narrows to for `modelId`.
|
|
73
|
-
* Includes each matched storey's directly-contained elements AND every
|
|
74
|
-
* element `bySpace` lists for a space belonging to that storey, so this
|
|
75
|
-
* prefilter can never exclude a candidate the (also widened) per-entity
|
|
76
|
-
* check in `filter-evaluate.ts` would go on to match. */
|
|
77
|
-
export declare function unionByStorey(store: IfcDataStore, rule: StoreyRule, modelId: string | undefined): number[] | null;
|
|
78
83
|
/** Collect the *individual* material names an element exposes - each layer /
|
|
79
84
|
* constituent / profile material, or the single plain material - for the
|
|
80
85
|
* multi-valued `material` rule matcher and the material dropdown. Shares the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-match.d.ts","sourceRoot":"","sources":["../../src/filter/filter-match.ts"],"names":[],"mappings":"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,30 +27,66 @@ import { compileNameMatcher, isNamePattern } from '@ifc-lite/lists';
|
|
|
27
27
|
* docstring for the full contract. This function does not catch that; it
|
|
28
28
|
* propagates to `filter-evaluate.ts`'s caller, which must.
|
|
29
29
|
*/
|
|
30
|
-
export function nameMatches(rulePattern, rowName, kind) {
|
|
30
|
+
export function nameMatches(rulePattern, rowName, kind, caseMode) {
|
|
31
31
|
if (kind === 'regex')
|
|
32
32
|
return compileNameMatcher(`/${rulePattern}/`)(rowName);
|
|
33
33
|
if (kind === undefined && isNamePattern(rulePattern))
|
|
34
34
|
return compileNameMatcher(rulePattern)(rowName);
|
|
35
|
+
if (caseMode === 'exact')
|
|
36
|
+
return rowName === rulePattern;
|
|
35
37
|
return rowName.toLowerCase() === rulePattern.toLowerCase();
|
|
36
38
|
}
|
|
37
|
-
|
|
39
|
+
/** Structures whose `values` are the candidates a rule reads (#5475). */
|
|
40
|
+
const ANY_MATCH_STRUCTURES = new Set(['enumerated', 'list', 'table']);
|
|
41
|
+
/**
|
|
42
|
+
* The values a rule compares for one property: every member of an
|
|
43
|
+
* enumerated or list value and every cell of a table, so a positive op
|
|
44
|
+
* passes when ANY of them does (IDS / ifctester parity, #5475); otherwise the
|
|
45
|
+
* single display value. An empty list keeps one blank candidate, so the
|
|
46
|
+
* property still reads as present for `isSet`, as it did before.
|
|
47
|
+
*/
|
|
48
|
+
export function propertyCandidates(p) {
|
|
49
|
+
if (p.structure && ANY_MATCH_STRUCTURES.has(p.structure) && p.values && p.values.length > 0)
|
|
50
|
+
return [...p.values];
|
|
51
|
+
return [stringifyValue(p.value)];
|
|
52
|
+
}
|
|
53
|
+
function legacyListValue(value) {
|
|
54
|
+
if (value === null || value === undefined)
|
|
55
|
+
return null;
|
|
56
|
+
const display = parsePropertyValue(value).displayValue;
|
|
57
|
+
if (display === '\u2014')
|
|
58
|
+
return null;
|
|
59
|
+
if (typeof value === 'number')
|
|
60
|
+
return String(value);
|
|
61
|
+
if (Array.isArray(value) && value.length === 2 && typeof value[1] === 'number')
|
|
62
|
+
return String(value[1]);
|
|
63
|
+
return display;
|
|
64
|
+
}
|
|
65
|
+
export function flattenPsets(psets, includeLegacyListValues = false) {
|
|
38
66
|
const out = [];
|
|
39
67
|
for (const set of psets) {
|
|
40
68
|
for (const p of set.properties) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
69
|
+
const valueType = p.value === null || p.value === undefined ? 'null'
|
|
70
|
+
: typeof p.value === 'string' ? 'string'
|
|
71
|
+
: typeof p.value === 'number' ? 'number'
|
|
72
|
+
: typeof p.value === 'boolean' ? 'boolean' : undefined;
|
|
73
|
+
const firstValue = includeLegacyListValues ? legacyListValue(p.value) : undefined;
|
|
74
|
+
for (const value of propertyCandidates(p))
|
|
75
|
+
out.push({
|
|
76
|
+
setName: set.name,
|
|
77
|
+
propertyName: p.name,
|
|
78
|
+
// Stringify everything — `valueOpMatches` re-parses numeric ops
|
|
79
|
+
// from this representation. Booleans render as "True"/"False" —
|
|
80
|
+
// the SAME capitalised display string the property table and the
|
|
81
|
+
// list engine (`@ifc-lite/encoding`'s `parsePropertyValue`) show —
|
|
82
|
+
// so a value picked from a chip/dropdown suggestion always matches
|
|
83
|
+
// what the user sees rendered elsewhere. `valueOpMatches`'s eq/ne
|
|
84
|
+
// are case-insensitive, so this doesn't change matching outcomes
|
|
85
|
+
// for either the search chips or free-typed "true"/"false".
|
|
86
|
+
value,
|
|
87
|
+
valueType,
|
|
88
|
+
...(includeLegacyListValues ? { legacyListValue: firstValue } : {}),
|
|
89
|
+
});
|
|
54
90
|
}
|
|
55
91
|
}
|
|
56
92
|
return out;
|
|
@@ -78,16 +114,46 @@ export function stringifyValue(value) {
|
|
|
78
114
|
return String(value);
|
|
79
115
|
}
|
|
80
116
|
export function matchPropertyRule(rule, rows) {
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
117
|
+
// V1 Lists only stored value comparisons and isNonEmpty. Rules presence
|
|
118
|
+
// operators keep their ordinary row-presence semantics on this public flag.
|
|
119
|
+
if (rule.legacyListFirst && rule.op !== 'isSet' && rule.op !== 'isNotSet'
|
|
120
|
+
&& rule.op !== 'isNull' && rule.op !== 'isNotNull') {
|
|
121
|
+
const first = rows.find((r) => nameMatches(rule.setName, r.setName, rule.setNameKind, rule.nameCaseMode) &&
|
|
122
|
+
nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind, rule.nameCaseMode));
|
|
123
|
+
const value = first?.legacyListValue === undefined
|
|
124
|
+
? first?.valueType === 'null' ? null : first?.value ?? null
|
|
125
|
+
: first.legacyListValue;
|
|
126
|
+
if (rule.op === 'isNonEmpty')
|
|
127
|
+
return value !== null && value !== '';
|
|
128
|
+
if (value === null)
|
|
129
|
+
return false;
|
|
130
|
+
return valueOpMatches(rule.op, value, rule.value, rule.valueKind, rule.comparison);
|
|
86
131
|
}
|
|
87
|
-
|
|
88
|
-
nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind)
|
|
89
|
-
|
|
132
|
+
const matching = rows.filter((r) => nameMatches(rule.setName, r.setName, rule.setNameKind, rule.nameCaseMode) &&
|
|
133
|
+
nameMatches(rule.propertyName, r.propertyName, rule.propertyNameKind, rule.nameCaseMode));
|
|
134
|
+
// Presence, non-null and non-empty are distinct in imported filters.
|
|
135
|
+
if (rule.op === 'isSet')
|
|
136
|
+
return matching.length > 0;
|
|
137
|
+
if (rule.op === 'isNotSet')
|
|
138
|
+
return matching.length === 0;
|
|
139
|
+
if (rule.op === 'isNull')
|
|
140
|
+
return matching.length === 0 || matching.some((r) => r.valueType === 'null');
|
|
141
|
+
if (rule.op === 'isNotNull')
|
|
142
|
+
return matching.some((r) => r.valueType !== 'null');
|
|
143
|
+
if (rule.op === 'isNonEmpty')
|
|
144
|
+
return matching.some((r) => r.valueType !== 'null' && r.value.length > 0);
|
|
145
|
+
const comparable = rule.comparison ? matching.filter((r) => r.valueType !== 'null') : matching;
|
|
146
|
+
// A negated op holds when NO candidate has the value (a list [A, B] is
|
|
147
|
+
// not "!= A"), the ANY/NONE convention `material` and `parent` use and
|
|
148
|
+
// validation's `checkValueOp` applies (#5475). With a single candidate
|
|
149
|
+
// this is the same answer as before.
|
|
150
|
+
const positive = NEGATED_VALUE_OP[rule.op];
|
|
151
|
+
if (positive)
|
|
152
|
+
return comparable.length > 0 && !comparable.some((r) => valueOpMatches(positive, r.value, rule.value, rule.valueKind, rule.comparison));
|
|
153
|
+
return comparable.some((r) => valueOpMatches(rule.op, r.value, rule.value, rule.valueKind, rule.comparison));
|
|
90
154
|
}
|
|
155
|
+
/** A negated value op's positive form: the negation holds when NO candidate satisfies it (#5475). */
|
|
156
|
+
export const NEGATED_VALUE_OP = { ne: 'eq', notContains: 'contains', notMatches: 'matches' };
|
|
91
157
|
/**
|
|
92
158
|
* Match an `attribute` rule (Description, ObjectType, Tag, LongName, any
|
|
93
159
|
* other schema-named attribute) against one entity's extracted attributes.
|
|
@@ -104,120 +170,21 @@ export function matchAttributeRule(rule, attrs) {
|
|
|
104
170
|
const present = (stringified ?? '').length > 0;
|
|
105
171
|
return rule.op === 'isSet' ? present : !present;
|
|
106
172
|
}
|
|
173
|
+
if (rule.op === 'isNull')
|
|
174
|
+
return found === undefined;
|
|
175
|
+
if (rule.op === 'isNotNull')
|
|
176
|
+
return found !== undefined;
|
|
177
|
+
if (rule.op === 'isNonEmpty')
|
|
178
|
+
return (stringified ?? '').length > 0;
|
|
107
179
|
if (stringified === undefined)
|
|
108
180
|
return false;
|
|
109
|
-
return valueOpMatches(rule.op, stringified, rule.value, rule.valueKind);
|
|
181
|
+
return valueOpMatches(rule.op, stringified, rule.value, rule.valueKind, rule.comparison);
|
|
110
182
|
}
|
|
111
183
|
export function matchQuantityRule(rule, rows) {
|
|
112
184
|
return rows.some((r) => nameMatches(rule.setName, r.setName, rule.setNameKind) &&
|
|
113
185
|
nameMatches(rule.quantityName, r.quantityName, rule.quantityNameKind) &&
|
|
114
186
|
numericOpMatches(rule.op, r.value, rule.value));
|
|
115
187
|
}
|
|
116
|
-
// ── Storey lookup fallback ────────────────────────────────────────────────────
|
|
117
|
-
/**
|
|
118
|
-
* Storey id an element belongs to: its own direct containment
|
|
119
|
-
* (`elementToStorey`, set for an element the storey directly contains plus
|
|
120
|
-
* its `IfcRelAggregates`-aggregated parts) OR — one hop through a
|
|
121
|
-
* containing `IfcSpace`/`IfcSpatialZone` — the storey THAT space belongs
|
|
122
|
-
* to. A space is itself mapped to its storey in `elementToStorey`
|
|
123
|
-
* (`SpatialHierarchyBuilder` walks a storey's own spatial children), so
|
|
124
|
-
* this is a composition of two maps that already exist plus
|
|
125
|
-
* `getContainingSpace` (`@ifc-lite/data`'s `spatialLookups`), not a new
|
|
126
|
-
* traversal. The single home for "which storey" so the per-entity
|
|
127
|
-
* evaluator (`defaultStoreyName`/`storeyMatchesRefs`) and the bulk index
|
|
128
|
-
* prefilter (`unionByStorey`) cannot answer it two different ways.
|
|
129
|
-
*
|
|
130
|
-
* Reaches exactly one level down from the storey: an element inside a
|
|
131
|
-
* space nested inside another space (rather than directly under the
|
|
132
|
-
* storey) is not resolved — see `docs/guide/selector-syntax.md`.
|
|
133
|
-
*/
|
|
134
|
-
function storeyIdOf(hierarchy, expressId) {
|
|
135
|
-
const direct = hierarchy.elementToStorey.get(expressId);
|
|
136
|
-
if (direct !== undefined)
|
|
137
|
-
return direct;
|
|
138
|
-
// `getContainingSpace` is part of the `spatialLookups()` contract every
|
|
139
|
-
// real hierarchy carries, but several tests in this suite build a
|
|
140
|
-
// hand-rolled partial `spatialHierarchy` mock (`byStorey`/`elementToStorey`
|
|
141
|
-
// only) to exercise the ref/name-matching paths in isolation — guard
|
|
142
|
-
// rather than assume every field is present.
|
|
143
|
-
const spaceId = hierarchy.getContainingSpace?.(expressId);
|
|
144
|
-
if (spaceId == null)
|
|
145
|
-
return undefined;
|
|
146
|
-
return hierarchy.elementToStorey.get(spaceId);
|
|
147
|
-
}
|
|
148
|
-
/** Every element `bySpace` lists for a space belonging to `storeyId` — the
|
|
149
|
-
* bulk-prefilter twin of {@link storeyIdOf}'s one-hop space widening.
|
|
150
|
-
* `bySpace` is absent on the same partial test mocks {@link storeyIdOf}
|
|
151
|
-
* guards against. */
|
|
152
|
-
function spaceElementsOfStorey(hierarchy, storeyId) {
|
|
153
|
-
const out = [];
|
|
154
|
-
if (!hierarchy.bySpace)
|
|
155
|
-
return out;
|
|
156
|
-
for (const [spaceId, elements] of hierarchy.bySpace) {
|
|
157
|
-
if (hierarchy.elementToStorey.get(spaceId) !== storeyId)
|
|
158
|
-
continue;
|
|
159
|
-
for (const id of elements)
|
|
160
|
-
out.push(id);
|
|
161
|
-
}
|
|
162
|
-
return out;
|
|
163
|
-
}
|
|
164
|
-
export function defaultStoreyName(store, expressId) {
|
|
165
|
-
const hierarchy = store.spatialHierarchy;
|
|
166
|
-
if (!hierarchy)
|
|
167
|
-
return '';
|
|
168
|
-
const storeyId = storeyIdOf(hierarchy, expressId);
|
|
169
|
-
if (!storeyId)
|
|
170
|
-
return '';
|
|
171
|
-
return store.entities.getName(storeyId);
|
|
172
|
-
}
|
|
173
|
-
/** Does `expressId` (in `modelId`) sit in a storey ref'd by `rule.refs`?
|
|
174
|
-
* `IfcBuildingStorey.Name` isn't unique, so once a `StoreyRule` carries
|
|
175
|
-
* an exact (modelId, expressId) ref (mirrored from a HierarchyPanel
|
|
176
|
-
* click), matching bypasses Name entirely. Reaches through a containing
|
|
177
|
-
* space via {@link storeyIdOf}, same as the Name-matched path. */
|
|
178
|
-
export function storeyMatchesRefs(store, expressId, modelId, rule) {
|
|
179
|
-
const hierarchy = store.spatialHierarchy;
|
|
180
|
-
const storeyId = hierarchy ? storeyIdOf(hierarchy, expressId) : undefined;
|
|
181
|
-
return storeyId != null && !!rule.refs?.some((r) => r.modelId === modelId && r.expressId === storeyId);
|
|
182
|
-
}
|
|
183
|
-
/** Index-prefilter twin of {@link storeyMatchesRefs}/Name matching: the
|
|
184
|
-
* bucket of elements a `storey op:'in'` rule narrows to for `modelId`.
|
|
185
|
-
* Includes each matched storey's directly-contained elements AND every
|
|
186
|
-
* element `bySpace` lists for a space belonging to that storey, so this
|
|
187
|
-
* prefilter can never exclude a candidate the (also widened) per-entity
|
|
188
|
-
* check in `filter-evaluate.ts` would go on to match. */
|
|
189
|
-
export function unionByStorey(store, rule, modelId) {
|
|
190
|
-
const hierarchy = store.spatialHierarchy;
|
|
191
|
-
if (!hierarchy)
|
|
192
|
-
return null;
|
|
193
|
-
const out = [];
|
|
194
|
-
if (rule.refs) {
|
|
195
|
-
for (const ref of rule.refs) {
|
|
196
|
-
if (ref.modelId !== modelId)
|
|
197
|
-
continue;
|
|
198
|
-
const elements = hierarchy.byStorey.get(ref.expressId);
|
|
199
|
-
if (elements)
|
|
200
|
-
for (const id of elements)
|
|
201
|
-
out.push(id);
|
|
202
|
-
for (const id of spaceElementsOfStorey(hierarchy, ref.expressId))
|
|
203
|
-
out.push(id);
|
|
204
|
-
}
|
|
205
|
-
return out.length > 0 ? out : null;
|
|
206
|
-
}
|
|
207
|
-
const wanted = new Set(rule.values.map((n) => n.toLowerCase()));
|
|
208
|
-
for (const storeyId of hierarchy.byStorey.keys()) {
|
|
209
|
-
const name = store.entities.getName(storeyId);
|
|
210
|
-
if (!wanted.has(name.toLowerCase()))
|
|
211
|
-
continue;
|
|
212
|
-
const elements = hierarchy.byStorey.get(storeyId);
|
|
213
|
-
if (elements)
|
|
214
|
-
for (const id of elements)
|
|
215
|
-
out.push(id);
|
|
216
|
-
for (const id of spaceElementsOfStorey(hierarchy, storeyId))
|
|
217
|
-
out.push(id);
|
|
218
|
-
}
|
|
219
|
-
return out.length > 0 ? out : null;
|
|
220
|
-
}
|
|
221
188
|
// ── Material / classification / elevation resolution ─────────────────────────
|
|
222
189
|
/** Collect the *individual* material names an element exposes - each layer /
|
|
223
190
|
* constituent / profile material, or the single plain material - for the
|