Skip to content
This repository was archived by the owner on May 19, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions en/components/circular-progress.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,16 +175,16 @@ Add some styles:

### Gradient Progress

One way to customize the progress bar is to use a color gradient instead of a solid color.
This can be done in one of two ways - by using the [`IgxProgressBarGradientDirective`]({environment:angularApiUrl}/classes/igxcircularprogressbarcomponent.html#gradienttemplate) directive or by implementing a custom theme, albeit custom themes support up to two color stops.
One way to customize the progress bar is by using a color gradient instead of a solid color.
This can be done in one of two ways - by using the [`IgxProgressBarGradientDirective`]({environment:angularApiUrl}/classes/igxcircularprogressbarcomponent.html#gradienttemplate) directive or by implementing a custom theme, which supports up to two color stops.

If you want to create a gradient with just two color stops, you can do so by using a custom theme. Create a list of colors and pass it to the `$progress-circle-color` theme parameter:
To create a gradient with just two color stops using a custom theme, you need to create a list of colors and pass it to the `$fill-color-default` theme parameter:

```scss
$colors: #695cf9, #ef017c;

$custom-theme: progress-circular-theme(
$progress-circle-color: $colors,
$fill-color-default: $colors,
);
```

Expand Down Expand Up @@ -239,12 +239,12 @@ To get started with styling the circular progress bar, we need to import the `in
// @import '~igniteui-angular/lib/core/styles/themes/index';
```

Following the simplest approach, we create a new theme that extends the [`progress-circular-theme`]({environment:sassApiUrl}/index.html#function-progress-circular-theme) and accepts the `$base-circle-color` and the `$progress-circle-color` parameters.
Following the simplest approach, we create a new theme that extends the [`progress-circular-theme`]({environment:sassApiUrl}/index.html#function-progress-circular-theme) and accepts the `$base-circle-color` and the `$fill-color-default` parameters.

```scss
$custom-theme: progress-circular-theme(
$base-circle-color: lightgray,
$progress-circle-color: rgb(32, 192, 17),
$fill-color-default: rgb(32, 192, 17),
);
```

Expand Down
59 changes: 57 additions & 2 deletions en/components/grids_templates/advanced-filtering.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,9 @@ To enable the advanced filtering, the [`allowAdvancedFiltering`]({environment:an
```
}

The advanced filtering generates a [`FilteringExpressionsTree`]({environment:angularApiUrl}/classes/filteringexpressionstree.html) which is stored in the [`advancedFilteringExpressionsTree`]({environment:angularApiUrl}/classes/@@igTypeDoc.html#advancedFilteringExpressionsTree) input property. You could use the [`advancedFilteringExpressionsTree`]({environment:angularApiUrl}/classes/@@igTypeDoc.html#advancedFilteringExpressionsTree) property to set an initial state of the advanced filtering.
The advanced filtering generates a [`FilteringExpressionsTree`]({environment:angularApiUrl}/classes/filteringexpressionstree.html) which is stored in the [`advancedFilteringExpressionsTree`]({environment:angularApiUrl}/classes/@@igTypeDoc.html#advancedFilteringExpressionsTree) input property. You could use this property to set an initial state of the advanced filtering.

@@if (igxName !== 'IgxHierarchicalGrid') {
```typescript
ngAfterViewInit(): void {
const tree = new FilteringExpressionsTree(FilteringLogic.And);
Expand Down Expand Up @@ -109,6 +110,60 @@ ngAfterViewInit(): void {
this.@@igObjectRef.advancedFilteringExpressionsTree = tree;
}
```
}

@@if (igxName === 'IgxHierarchicalGrid') {
```TypeScript
ngAfterViewInit(): void {
const tree = new FilteringExpressionsTree(FilteringLogic.Or);
tree.filteringOperands.push({
fieldName: 'Artist',
condition: IgxStringFilteringOperand.instance().condition('startsWith'),
conditionName: IgxStringFilteringOperand.instance().condition('startsWith').name,
searchVal: 'A'
});
const subTree = new FilteringExpressionsTree(FilteringLogic.And);
subTree.filteringOperands.push({
fieldName: 'GrammyAwards',
condition: IgxNumberFilteringOperand.instance().condition('greaterThanOrEqualTo'),
conditionName: IgxNumberFilteringOperand.instance().condition('greaterThanOrEqualTo').name,
searchVal: 1
});
subTree.filteringOperands.push({
fieldName: 'Debut',
condition: IgxNumberFilteringOperand.instance().condition('lessThan'),
conditionName: IgxNumberFilteringOperand.instance().condition('lessThan').name,
searchVal: 2000
});
tree.filteringOperands.push(subTree);
this.@@igObjectRef.advancedFilteringExpressionsTree = tree;
}
```

The advanced filtering in the `IgxHierarchicalGrid` can be used to filter root grid data based on child grids data using the *IN / NOT-IN* operators. This way, subqueries can be created to define more complex filtering logic. More information about this functionality can be found in [`Query Builder's Using Sub-Queries section`](../query-builder-model.md#using-sub-queries). Here's a sample [`FilteringExpressionsTree`]({environment:angularApiUrl}/classes/filteringexpressionstree.html) with a subquery:

```TypeScript
ngAfterViewInit(): void {
const albumsTree = new FilteringExpressionsTree(FilteringLogic.And, undefined, 'Albums', ['Artist']);
albumsTree.filteringOperands.push({
fieldName: 'LaunchDate',
condition: IgxDateFilteringOperand.instance().condition('after'),
conditionName: IgxDateFilteringOperand.instance().condition('after').name,
searchVal: new Date(2017, 1, 1)
});
const tree = new FilteringExpressionsTree(FilteringLogic.And);
tree.filteringOperands.push({
fieldName: 'Artist',
condition: IgxStringFilteringOperand.instance().condition('inQuery'),
conditionName: IgxStringFilteringOperand.instance().condition('inQuery').name,
searchTree: albumsTree
});
this.@@igObjectRef.advancedFilteringExpressionsTree = tree;
}
```

If remote data is used, the [`schema`]({environment:angularApiUrl}/classes/igxhierarchicalgridcomponent.html#schema) property of the `IgxHierarchicalGrid` should be set. Please refer to [`Load on Demand`](../hierarchicalgrid/load-on-demand.md) topic for detailed guidance.
}

In case you don't want to show the @@igComponent toolbar, you could use the [`openAdvancedFilteringDialog`]({environment:angularApiUrl}/classes/@@igTypeDoc.html#openAdvancedFilteringDialog) and [`closeAdvancedFilteringDialog`]({environment:angularApiUrl}/classes/@@igTypeDoc.html#closeAdvancedFilteringDialog) methods to open and close the advanced filtering dialog programmatically.

Expand Down Expand Up @@ -167,7 +222,7 @@ It's super easy to configure the advanced filtering to work outside of the @@igC
}
@@if (igxName === 'IgxHierarchicalGrid') {
```html
<igx-advanced-filtering-dialog [grid]="hierarchicalgrid1">
<igx-advanced-filtering-dialog [grid]="hierarchicalGrid">
</igx-advanced-filtering-dialog>
```
}
Expand Down
3 changes: 3 additions & 0 deletions en/components/grids_templates/state-persistence.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ _canonicalLink: grid/state-persistence
> The [`IgxGridState`]({environment:angularApiUrl}/classes/igxgridstatedirective.html) directive does not take care of templates. Go to [Restoring Column](state-persistence.md#restoring-columns) section to see how to restore column templates.
}

>[!NOTE]
> The `Row Selection` feature requires the [`primaryKey`]({environment:angularApiUrl}/classes/IgxGridComponent.html#primaryKey) property to be set, so it can be stored/restored correctly.

## Usage

[`getState`]({environment:angularApiUrl}/classes/igxgridstatedirective.html#getState) - This method returns the grid state in a serialized JSON string, so developers can just take it and save it on any data storage (database, cloud, browser localStorage, etc). The method accepts first optional parameter `serialize`, which determines whether [`getState`]({environment:angularApiUrl}/classes/igxgridstatedirective.html#getState) will return an [`IGridState`]({environment:angularApiUrl}/interfaces/igridstate.html) object or a serialized JSON string.
Expand Down
Loading