Skip to content

Commit 556f538

Browse files
committed
feat(filtering): add dragging & legend #5496
1 parent 4b4c37c commit 556f538

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

Diff for: projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.html

+12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<article class="igx-excel-filter__secondary"
2+
igxDrag [renderGhost]="false" [dragTolerance]="0" (dragMove)="dragMove($event)"
23
(keydown)="onKeyDown($event)"
34
[ngClass]="{
45
'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy',
@@ -8,6 +9,17 @@
89
<h4 class="igx-typography__h6">
910
Adv. Filtering
1011
</h4>
12+
<div style="display: flex; margin-left: auto">
13+
<div style="display: flex; margin-right: 25px">
14+
<div style="width: 24px; height: 24px; background: lightblue; margin-right: 8px; border-radius: 4px;"></div>
15+
and
16+
</div>
17+
<div style="display: flex; margin-right: 25px">
18+
<div style="width: 24px; height: 24px; background: lightcoral; margin-right: 8px; border-radius: 4px;"></div>
19+
or
20+
</div>
21+
</div>
22+
<igx-icon igxDragHandle fontSet="material" style="cursor: move; user-select: none;">control_camera</igx-icon>
1123
</header>
1224

1325
<article #expressionsContainer class="igx-excel-filter__secondary-main" style="padding: 10px;">

Diff for: projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts

+22-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { VerticalAlignment, HorizontalAlignment, Point } from '../../../services
55
import { ConnectedPositioningStrategy } from '../../../services/overlay/position/connected-positioning-strategy';
66
import { IgxFilteringService } from '../grid-filtering.service';
77
import { IgxOverlayService } from '../../../services/overlay/overlay';
8-
import { IgxToggleDirective, CloseScrollStrategy, IButtonGroupEventArgs } from 'igniteui-angular';
8+
import { IgxToggleDirective, CloseScrollStrategy, IButtonGroupEventArgs, IDragBaseEventArgs } from 'igniteui-angular';
99
import { IgxGridBaseComponent, IgxColumnComponent } from '../../grid';
1010
import { FilteringExpressionsTree, IFilteringExpressionsTree } from '../../../data-operations/filtering-expressions-tree';
1111
import { FilteringLogic, IFilteringExpression } from '../../../data-operations/filtering-expression.interface';
@@ -147,6 +147,27 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
147147
return this.filteringService.grid;
148148
}
149149

150+
public dragMove(dragArgs: IDragBaseEventArgs) {
151+
const gridRect = this.grid.nativeElement.getBoundingClientRect();
152+
const dialogRect = dragArgs.owner.element.nativeElement.getBoundingClientRect();
153+
154+
if (!(dialogRect.left >= gridRect.left && dialogRect.right <= gridRect.right &&
155+
dialogRect.top >= gridRect.top && dialogRect.bottom <= gridRect.bottom)) {
156+
// dragArgs.cancel = true; // waiting for implementation
157+
158+
const dragDialog = dragArgs.owner;
159+
let newDialogX = dialogRect.left;
160+
let newDialogY = dialogRect.top;
161+
162+
newDialogX = (dialogRect.left < gridRect.left) ? gridRect.left : newDialogX;
163+
newDialogX = (dialogRect.right > gridRect.right) ? gridRect.right - dialogRect.width : newDialogX;
164+
newDialogY = (dialogRect.top < gridRect.top) ? gridRect.top : newDialogY;
165+
newDialogY = (dialogRect.bottom > gridRect.bottom) ? gridRect.bottom - dialogRect.height : newDialogY;
166+
167+
dragDialog.setLocation({pageX: newDialogX, pageY: newDialogY});
168+
}
169+
}
170+
150171
public addCondition(parent: ExpressionGroupItem, afterExpression?: ExpressionItem) {
151172
this.cancelOperandAdd();
152173

0 commit comments

Comments
 (0)