Skip to content

Commit 16d2f95

Browse files
igdmdimitrovivanvpetrovteodosiahOtixagedinakova
authored
feat(query-builder): support for nested queries and other improvements (#14647)
Co-authored-by: ivanvpetrov <[email protected]> Co-authored-by: Teodosia Hristodorova <[email protected]> Co-authored-by: Mike Cherkasov <[email protected]> Co-authored-by: Galina Edinakova <[email protected]> Co-authored-by: Simeon Simeonoff <[email protected]> Co-authored-by: desig9stein <[email protected]> Co-authored-by: Rumyana Andriova <[email protected]> Co-authored-by: Damyan Petev <[email protected]>
1 parent e900bd0 commit 16d2f95

File tree

100 files changed

+10621
-5773
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+10621
-5773
lines changed

.vscode/settings.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"git.ignoreLimitWarning": true,
33
"javascript.preferences.quoteStyle": "single",
4-
"typescript.preferences.quoteStyle": "single"
4+
"typescript.preferences.quoteStyle": "single",
5+
"cSpell.words": [
6+
"ghostclass",
7+
"ungroup"
8+
]
59
}

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,42 @@ All notable changes for each version of this project will be documented in this
1111
- Introduced a new `expanded` input property, enabling dynamic control over the banner's state. The banner can now be programmatically set to expanded (visible) or collapsed (hidden) both initially and at runtime. Animations will trigger during runtime updates — the **open animation** plays when `expanded` is set to `true`, and the **close animation** plays when set to `false`. However, no animations will trigger when the property is set initially.
1212
- The banner's event lifecycle (`opening`, `opened`, `closing`, `closed`) only triggers through **user interactions** (e.g., clicking to open/close). Programmatic updates using the `expanded` property will not fire any events.
1313
- If the `expanded` property changes during an ongoing animation, the current animation will **stop** and the opposite animation will begin from the **point where the previous animation left off**. For instance, if the open animation (10 seconds) is interrupted at 6 seconds and `expanded` is set to `false`, the close animation (5 seconds) will start from its 3rd second.
14+
- `IgxQueryBuilder` has new design that comes with updated appearance and new functionality
15+
- `IgxQueryBuilderComponent`
16+
- Introduced the ability to create nested queries by specifying IN/NOT IN operators.
17+
- Introduced the ability to reposition condition chips by dragging or using `Arrow Up/Down`.
18+
- Added the `entities` property that accepts an array of `EntityType` objects describing an entity with its name and an array of fields. The `fields` input property has been deprecated and will be removed in a future version. Automatic migrations are available and will be applied on `ng update`.
19+
- Added `disableEntityChange` property that can be used to disable the entity select on root level after the initial selection. Defaults to `false`.
20+
- Added `disableReturnFieldsChange` property that can be used to disable the fields combo on root level. Defaults to `false`.
21+
- Added the `canCommit`, `commit` and `discard` public methods that allows the user to save/discard the current state of the expression tree.
22+
- Added option to template the search value input:
23+
```
24+
<ng-template igxQueryBuilderSearchValue
25+
let-searchValue
26+
let-selectedField = "selectedField"
27+
let-selectedCondition = "selectedCondition"
28+
let-defaultSearchValueTemplate = "defaultSearchValueTemplate">
29+
@if (selectedField?.field === 'Id' && selectedCondition === 'equals'){
30+
<input type="text" required [(ngModel)]="searchValue.value"/>
31+
} @else {
32+
<ng-container #defaultTemplate *ngTemplateOutlet="defaultSearchValueTemplate"></ ng-container>
33+
}
34+
</ng-template>
35+
```
36+
- **Behavioral Changes**
37+
- Expression enters edit mode on single click, `Enter` or `Space`.
38+
- Selecting conditions inside the `IgxQueryBuilderComponent` is no longer supported. Grouping/ungrouping expressions is now achieved via the newly exposed Drag & Drop functionality.
39+
- Deleting multiple expressions through the context menu is no longer supported.
40+
- `IgxQueryBuilderHeaderComponent`
41+
- **Behavioral Change**
42+
- Legend is no longer shown.
43+
- If the `title` input property is not set, by default it would be empty string.
44+
- **Deprecation**
45+
- The `showLegend` and `resourceStrings` input properties have been deprecated and will be removed in a future version. Automatic migrations are available and will be applied on `ng update`.
46+
- `IFilteringExpression`
47+
- A new optional property called `conditionName` has been introduced. This would generally be equal to the existing `condition.name`.
48+
- `IFilteringOperation`
49+
- A new optional property called `isNestedQuery` has been introduced. It's used to indicate whether the condition leads to a nested query creation.
1450

1551
## 19.0.0
1652
### General

0 commit comments

Comments
 (0)