guillotinaweb / ngx-schema-form

HTML form generation based on JSON Schema
MIT License
483 stars 173 forks source link

feat: Added chainable oneOf and allOf in visibleIf #446

Closed KBroichhausen closed 1 year ago

KBroichhausen commented 1 year ago

Added a chainable oneOf and allOf for the visibleIf property. Now, arbitrary boolean expressions can be written down. 2 tests were added and documentation is also modified.

All tests were successfully locally. So, I think that this is not a breaking change even I had to rewrite / rearrange a big part of __bindVisibility_oneOf_or_allOf method. I'm very unsure if the schema itself needs a modification.

For the record: I have a rather complex form, where just "or" or just "and" everything is not sufficient. I need expression like (a && b) || (a && c) etc. in the visibleIf. Therefore I implemented this patch.

ebrehault commented 1 year ago

Good job here :) Thanks @KBroichhausen !! Published in 2.8.2.

FYI, in case you make other PRs in the future, just change the version in projects/schema-form/package.json and add the corresponding entry in CHANGELOG.md, that way the CI will just tag and publish to npm automatically.