igniteui-angular 18.0.4 → 18.0.5
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/esm2022/lib/buttonGroup/buttonGroup.component.mjs +3 -6
- package/esm2022/lib/data-operations/filtering-expressions-tree.mjs +3 -3
- package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +5 -1
- package/esm2022/lib/directives/for-of/for_of.directive.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down-item.base.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down.base.mjs +2 -2
- package/esm2022/lib/drop-down/drop-down.common.mjs +1 -1
- package/esm2022/lib/drop-down/drop-down.component.mjs +26 -11
- package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +17 -4
- package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +14 -9
- package/esm2022/lib/grids/headers/grid-header-group.component.mjs +6 -3
- package/esm2022/lib/grids/headers/grid-header.component.mjs +8 -2
- package/esm2022/lib/grids/pivot-grid/pivot-grid.interface.mjs +1 -1
- package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +27 -3
- package/esm2022/lib/services/excel/excel-strings.mjs +2 -2
- package/fesm2022/igniteui-angular.mjs +103 -38
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/core/styles/components/grid/_excel-filtering-component.scss +5 -0
- package/lib/core/styles/components/grid/_excel-filtering-theme.scss +5 -0
- package/lib/core/styles/components/grid-toolbar/_grid-toolbar-component.scss +0 -4
- package/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss +0 -15
- package/lib/drop-down/drop-down-item.base.d.ts +1 -1
- package/lib/drop-down/drop-down.base.d.ts +1 -1
- package/lib/drop-down/drop-down.common.d.ts +1 -1
- package/lib/drop-down/drop-down.component.d.ts +13 -8
- package/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.d.ts +5 -0
- package/lib/grids/headers/grid-header.component.d.ts +1 -0
- package/lib/grids/pivot-grid/pivot-grid.interface.d.ts +1 -1
- package/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.d.ts +12 -1
- package/package.json +1 -1
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -1435,8 +1435,8 @@ class FilteringExpressionsTree {
|
|
|
1435
1435
|
if ((expr instanceof FilteringExpressionsTree)) {
|
|
1436
1436
|
return this.isFilteringExpressionsTreeForColumn(expr, fieldName);
|
|
1437
1437
|
}
|
|
1438
|
-
else {
|
|
1439
|
-
return
|
|
1438
|
+
else if (expr.fieldName === fieldName) {
|
|
1439
|
+
return true;
|
|
1440
1440
|
}
|
|
1441
1441
|
}
|
|
1442
1442
|
return false;
|
|
@@ -3413,7 +3413,7 @@ class ExcelStrings {
|
|
|
3413
3413
|
}
|
|
3414
3414
|
static getStyles() {
|
|
3415
3415
|
return ExcelStrings.XML_STRING +
|
|
3416
|
-
'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"><numFmts count="5"><numFmt numFmtId="164" formatCode=""$"#,##0.00"/><numFmt numFmtId="165" formatCode="[$£-809]#,##0.00"/><numFmt numFmtId="166" formatCode="[$¥-804]#,##0.00"/><numFmt numFmtId="167" formatCode="#,##0.00\ [$€-1]"/><numFmt numFmtId="168" formatCode="[$¥-411]#,##0.00"/></numFmts><fonts count="2" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font><font><sz val="11"/><color
|
|
3416
|
+
'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"><numFmts count="5"><numFmt numFmtId="164" formatCode=""$"#,##0.00"/><numFmt numFmtId="165" formatCode="[$£-809]#,##0.00"/><numFmt numFmtId="166" formatCode="[$¥-804]#,##0.00"/><numFmt numFmtId="167" formatCode="#,##0.00\ [$€-1]"/><numFmt numFmtId="168" formatCode="[$¥-411]#,##0.00"/></numFmts><fonts count="2" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font><font><b/><sz val="11"/><color theme="0"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts><fills count="3"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill><fill><patternFill patternType="solid"><fgColor theme="4"/><bgColor indexed="64"/></patternFill></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="13"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"><alignment horizontal="center" vertical="center"/></xf><xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="21" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="22" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="10" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles><dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>';
|
|
3417
3417
|
}
|
|
3418
3418
|
static getWorkbook(worksheetName) {
|
|
3419
3419
|
return ExcelStrings.XML_STRING + `<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x15" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><fileVersion appName="xl" lastEdited="6" lowestEdited="6" rupBuild="14420"/><workbookPr filterPrivacy="1" defaultThemeVersion="164011"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="22260" windowHeight="12645"/></bookViews><sheets><sheet name="${worksheetName}" sheetId="1" r:id="rId1"/></sheets><calcPr calcId="162913"/><extLst><ext uri="{140A7094-0E35-4892-8432-C4D2E57EDEB5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:workbookPr chartTrackingRefBase="1"/></ext></extLst></workbook>`;
|
|
@@ -7323,7 +7323,7 @@ class IgxDropDownBaseDirective {
|
|
|
7323
7323
|
* @param newSelection the item selected
|
|
7324
7324
|
* @param event the event that triggered the call
|
|
7325
7325
|
*/
|
|
7326
|
-
selectItem(newSelection, event) {
|
|
7326
|
+
selectItem(newSelection, event, emit = true) {
|
|
7327
7327
|
this.selectionChanging.emit({
|
|
7328
7328
|
newSelection,
|
|
7329
7329
|
oldSelection: null,
|
|
@@ -11104,6 +11104,10 @@ class IgxDragDirective {
|
|
|
11104
11104
|
}
|
|
11105
11105
|
/** Method setting transformation to the base draggable element. */
|
|
11106
11106
|
setTransformXY(x, y) {
|
|
11107
|
+
if (x === 0 && y === 0) {
|
|
11108
|
+
this.element.nativeElement.style.transform = '';
|
|
11109
|
+
return;
|
|
11110
|
+
}
|
|
11107
11111
|
this.element.nativeElement.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0px)';
|
|
11108
11112
|
}
|
|
11109
11113
|
/**
|
|
@@ -13321,13 +13325,13 @@ class IgxForOfDirective extends IgxForOfToken {
|
|
|
13321
13325
|
const currDiff = newVal - oldVal;
|
|
13322
13326
|
diffs.push(currDiff);
|
|
13323
13327
|
totalDiff += currDiff;
|
|
13324
|
-
this.sizesCache[index + 1]
|
|
13328
|
+
this.sizesCache[index + 1] = (this.sizesCache[index] || 0) + newVal;
|
|
13325
13329
|
}
|
|
13326
13330
|
}
|
|
13327
13331
|
// update cache
|
|
13328
13332
|
if (Math.abs(totalDiff) > 0) {
|
|
13329
13333
|
for (let j = this.state.startIndex + this.state.chunkSize + 1; j < this.sizesCache.length; j++) {
|
|
13330
|
-
this.sizesCache[j]
|
|
13334
|
+
this.sizesCache[j] = (this.sizesCache[j] || 0) + totalDiff;
|
|
13331
13335
|
}
|
|
13332
13336
|
// update scrBar heights/widths
|
|
13333
13337
|
const reducer = (acc, val) => acc + val;
|
|
@@ -22392,12 +22396,12 @@ class IgxDropDownItemBaseDirective {
|
|
|
22392
22396
|
if (this._selected) {
|
|
22393
22397
|
const dropDownSelectedItem = this.dropDown.selectedItem;
|
|
22394
22398
|
if (!dropDownSelectedItem) {
|
|
22395
|
-
this.dropDown.selectItem(this);
|
|
22399
|
+
this.dropDown.selectItem(this, undefined, false);
|
|
22396
22400
|
}
|
|
22397
22401
|
else if (this.hasIndex
|
|
22398
22402
|
? this._index !== dropDownSelectedItem.index || this.value !== dropDownSelectedItem.value :
|
|
22399
22403
|
this !== dropDownSelectedItem) {
|
|
22400
|
-
this.dropDown.selectItem(this);
|
|
22404
|
+
this.dropDown.selectItem(this, undefined, false);
|
|
22401
22405
|
}
|
|
22402
22406
|
}
|
|
22403
22407
|
}
|
|
@@ -22741,9 +22745,20 @@ class IgxDropDownComponent extends IgxDropDownBaseDirective {
|
|
|
22741
22745
|
* ```
|
|
22742
22746
|
*/
|
|
22743
22747
|
open(overlaySettings) {
|
|
22744
|
-
this.
|
|
22748
|
+
const settings = overlaySettings || this.getDefaultOverlaySettings();
|
|
22749
|
+
this.toggleDirective.open(settings);
|
|
22745
22750
|
this.updateScrollPosition();
|
|
22746
22751
|
}
|
|
22752
|
+
/**
|
|
22753
|
+
* @hidden @internal
|
|
22754
|
+
*/
|
|
22755
|
+
getDefaultOverlaySettings() {
|
|
22756
|
+
return {
|
|
22757
|
+
closeOnOutsideClick: true,
|
|
22758
|
+
modal: false,
|
|
22759
|
+
positionStrategy: new ConnectedPositioningStrategy()
|
|
22760
|
+
};
|
|
22761
|
+
}
|
|
22747
22762
|
/**
|
|
22748
22763
|
* Closes the dropdown
|
|
22749
22764
|
*
|
|
@@ -22983,14 +22998,15 @@ class IgxDropDownComponent extends IgxDropDownBaseDirective {
|
|
|
22983
22998
|
}
|
|
22984
22999
|
}
|
|
22985
23000
|
/**
|
|
22986
|
-
|
|
22987
|
-
|
|
22988
|
-
|
|
22989
|
-
|
|
22990
|
-
|
|
22991
|
-
|
|
22992
|
-
|
|
22993
|
-
|
|
23001
|
+
* Handles the `selectionChanging` emit and the drop down toggle when selection changes
|
|
23002
|
+
*
|
|
23003
|
+
* @hidden
|
|
23004
|
+
* @internal
|
|
23005
|
+
* @param newSelection
|
|
23006
|
+
* @param event
|
|
23007
|
+
* @param emit
|
|
23008
|
+
*/
|
|
23009
|
+
selectItem(newSelection, event, emit = true) {
|
|
22994
23010
|
const oldSelection = this.selectedItem;
|
|
22995
23011
|
if (!newSelection) {
|
|
22996
23012
|
newSelection = this.focusedItem;
|
|
@@ -23008,7 +23024,9 @@ class IgxDropDownComponent extends IgxDropDownBaseDirective {
|
|
|
23008
23024
|
};
|
|
23009
23025
|
}
|
|
23010
23026
|
const args = { oldSelection, newSelection, cancel: false, owner: this };
|
|
23011
|
-
|
|
23027
|
+
if (emit) {
|
|
23028
|
+
this.selectionChanging.emit(args);
|
|
23029
|
+
}
|
|
23012
23030
|
if (!args.cancel) {
|
|
23013
23031
|
if (this.isSelectionValid(args.newSelection)) {
|
|
23014
23032
|
this.selection.set(this.id, new Set([args.newSelection]));
|
|
@@ -27802,8 +27820,7 @@ class IgxButtonGroupComponent {
|
|
|
27802
27820
|
if (updatedButtons.length > 0) {
|
|
27803
27821
|
updatedButtons.forEach((button) => {
|
|
27804
27822
|
const index = this.buttons.map((b) => b.nativeElement).indexOf(button);
|
|
27805
|
-
|
|
27806
|
-
this.updateButtonSelectionState(index, args);
|
|
27823
|
+
this.updateButtonSelectionState(index);
|
|
27807
27824
|
});
|
|
27808
27825
|
}
|
|
27809
27826
|
// Watch for changes again
|
|
@@ -27821,14 +27838,12 @@ class IgxButtonGroupComponent {
|
|
|
27821
27838
|
}, updated);
|
|
27822
27839
|
return updated;
|
|
27823
27840
|
}
|
|
27824
|
-
updateButtonSelectionState(index
|
|
27841
|
+
updateButtonSelectionState(index) {
|
|
27825
27842
|
if (this.buttons[index].selected) {
|
|
27826
27843
|
this.updateSelected(index);
|
|
27827
|
-
this.selected.emit(args);
|
|
27828
27844
|
}
|
|
27829
27845
|
else {
|
|
27830
27846
|
this.updateDeselected(index);
|
|
27831
|
-
this.deselected.emit(args);
|
|
27832
27847
|
}
|
|
27833
27848
|
}
|
|
27834
27849
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -48239,14 +48254,19 @@ class IgxExcelStyleCustomDialogComponent {
|
|
|
48239
48254
|
this.expressionDateComponents.forEach(x => x.cdr.markForCheck());
|
|
48240
48255
|
}
|
|
48241
48256
|
createInitialExpressionUIElement() {
|
|
48242
|
-
|
|
48243
|
-
|
|
48244
|
-
|
|
48245
|
-
|
|
48246
|
-
|
|
48247
|
-
|
|
48248
|
-
|
|
48249
|
-
|
|
48257
|
+
let firstExprUI = new ExpressionUI();
|
|
48258
|
+
if (this.expressionsList.length == 1 && this.expressionsList[0].expression.condition.name === this.selectedOperator) {
|
|
48259
|
+
firstExprUI = this.expressionsList.pop();
|
|
48260
|
+
}
|
|
48261
|
+
else {
|
|
48262
|
+
this.expressionsList = [];
|
|
48263
|
+
firstExprUI.expression = {
|
|
48264
|
+
condition: this.createCondition(this.selectedOperator),
|
|
48265
|
+
fieldName: this.column.field,
|
|
48266
|
+
ignoreCase: this.column.filteringIgnoreCase,
|
|
48267
|
+
searchVal: null
|
|
48268
|
+
};
|
|
48269
|
+
}
|
|
48250
48270
|
firstExprUI.afterOperator = FilteringLogic.And;
|
|
48251
48271
|
this.expressionsList.push(firstExprUI);
|
|
48252
48272
|
const secondExprUI = new ExpressionUI();
|
|
@@ -48304,6 +48324,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
48304
48324
|
* A component used for presenting Excel style conditional filter UI.
|
|
48305
48325
|
*/
|
|
48306
48326
|
class IgxExcelStyleConditionalFilterComponent {
|
|
48327
|
+
get filterNumber() {
|
|
48328
|
+
return this.esf.expressionsList.length;
|
|
48329
|
+
}
|
|
48307
48330
|
constructor(esf, platform) {
|
|
48308
48331
|
this.esf = esf;
|
|
48309
48332
|
this.platform = platform;
|
|
@@ -48373,6 +48396,16 @@ class IgxExcelStyleConditionalFilterComponent {
|
|
|
48373
48396
|
getCondition(value) {
|
|
48374
48397
|
return this.esf.column.filters.condition(value);
|
|
48375
48398
|
}
|
|
48399
|
+
/**
|
|
48400
|
+
* @hidden @internal
|
|
48401
|
+
*/
|
|
48402
|
+
getSelectedCondition(condition) {
|
|
48403
|
+
const expressions = this.esf.expressionsList;
|
|
48404
|
+
if (expressions.length < 1) {
|
|
48405
|
+
return false;
|
|
48406
|
+
}
|
|
48407
|
+
return expressions.length === 1 ? expressions[0].expression.condition.name === condition : condition === 'custom';
|
|
48408
|
+
}
|
|
48376
48409
|
/**
|
|
48377
48410
|
* @hidden @internal
|
|
48378
48411
|
*/
|
|
@@ -48439,11 +48472,11 @@ class IgxExcelStyleConditionalFilterComponent {
|
|
|
48439
48472
|
return this.esf.column.filters.conditionList();
|
|
48440
48473
|
}
|
|
48441
48474
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxExcelStyleConditionalFilterComponent, deps: [{ token: BaseFilteringComponent }, { token: PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48442
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: IgxExcelStyleConditionalFilterComponent, isStandalone: true, selector: "igx-excel-style-conditional-filter", viewQueries: [{ propertyName: "customDialog", first: true, predicate: ["customDialog"], descendants: true, read: IgxExcelStyleCustomDialogComponent }, { propertyName: "subMenu", first: true, predicate: ["subMenu"], descendants: true, read: IgxDropDownComponent }], ngImport: i0, template: "<ng-container *ngIf=\"esf.column\">\n <div tabindex=\"0\"\n class=\"igx-excel-filter__actions-filter\"\n (keydown)=\"onTextFilterKeyDown($event)\"\n (click)=\"onTextFilterClick($event)\"\n [igxDropDownItemNavigation]=\"subMenu\"\n role=\"menuitem\"\n aria-haspopup=\"true\"\n [attr.aria-controls]=\"this.subMenu.listId\"\n [attr.aria-activedescendant]=\"!this.subMenu.collapsed ? this.subMenu.focusedItem?.id : null\">\n <span>{{ subMenuText }}</span>\n <igx-icon>keyboard_arrow_right</igx-icon>\n </div>\n\n <igx-drop-down\n #subMenu\n [maxHeight]=\"'397px'\"\n (selectionChanging)=\"onSubMenuSelection($event)\"\n (closed)=\"onSubMenuClosed()\">\n <div>\n <igx-drop-down-item\n *ngFor=\"let condition of conditions\"\n [value]=\"condition\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ translateCondition(condition) }}</span>\n </div>\n </igx-drop-down-item>\n <igx-drop-down-item *ngIf=\"showCustomFilterItem()\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon>filter_list</igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ esf.grid.resourceStrings.igx_grid_excel_custom_filter }}</span>\n </div>\n </igx-drop-down-item>\n </div>\n </igx-drop-down>\n\n <igx-excel-style-custom-dialog\n #customDialog\n [column]=\"esf.column\"\n [filteringService]=\"esf.grid.filteringService\"\n [overlayComponentId]=\"esf.overlayComponentId\">\n </igx-excel-style-custom-dialog>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }, { kind: "component", type: IgxExcelStyleCustomDialogComponent, selector: "igx-excel-style-custom-dialog", inputs: ["expressionsList", "column", "selectedOperator", "filteringService", "overlayComponentId"] }] }); }
|
|
48475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: IgxExcelStyleConditionalFilterComponent, isStandalone: true, selector: "igx-excel-style-conditional-filter", viewQueries: [{ propertyName: "customDialog", first: true, predicate: ["customDialog"], descendants: true, read: IgxExcelStyleCustomDialogComponent }, { propertyName: "subMenu", first: true, predicate: ["subMenu"], descendants: true, read: IgxDropDownComponent }], ngImport: i0, template: "<ng-container *ngIf=\"esf.column\">\n <div tabindex=\"0\"\n class=\"igx-excel-filter__actions-filter\"\n [ngClass]=\"filterNumber > 0 ? 'igx-excel-filter__actions-filter--active' : ''\"\n (keydown)=\"onTextFilterKeyDown($event)\"\n (click)=\"onTextFilterClick($event)\"\n [igxDropDownItemNavigation]=\"subMenu\"\n role=\"menuitem\"\n aria-haspopup=\"true\"\n [attr.aria-controls]=\"this.subMenu.listId\"\n [attr.aria-activedescendant]=\"!this.subMenu.collapsed ? this.subMenu.focusedItem?.id : null\">\n <span class=\"igx-excel-filter__filter-number\">{{ subMenuText }} <ng-container *ngIf=\"filterNumber > 0\">({{filterNumber}})</ng-container></span>\n <igx-icon>keyboard_arrow_right</igx-icon>\n </div>\n\n <igx-drop-down\n #subMenu\n [maxHeight]=\"'397px'\"\n (selectionChanging)=\"onSubMenuSelection($event)\"\n (closed)=\"onSubMenuClosed()\">\n <div>\n <igx-drop-down-item\n *ngFor=\"let condition of conditions\"\n [selected]=\"getSelectedCondition(condition)\"\n [value]=\"condition\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ translateCondition(condition) }}</span>\n </div>\n </igx-drop-down-item>\n <igx-drop-down-item *ngIf=\"showCustomFilterItem()\"\n [selected]=\"getSelectedCondition('custom')\" >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon>filter_list</igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ esf.grid.resourceStrings.igx_grid_excel_custom_filter }}</span>\n </div>\n </igx-drop-down-item>\n </div>\n </igx-drop-down>\n\n <igx-excel-style-custom-dialog\n #customDialog\n [column]=\"esf.column\"\n [filteringService]=\"esf.grid.filteringService\"\n [overlayComponentId]=\"esf.overlayComponentId\">\n </igx-excel-style-custom-dialog>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }, { kind: "component", type: IgxExcelStyleCustomDialogComponent, selector: "igx-excel-style-custom-dialog", inputs: ["expressionsList", "column", "selectedOperator", "filteringService", "overlayComponentId"] }] }); }
|
|
48443
48476
|
}
|
|
48444
48477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxExcelStyleConditionalFilterComponent, decorators: [{
|
|
48445
48478
|
type: Component,
|
|
48446
|
-
args: [{ selector: 'igx-excel-style-conditional-filter', standalone: true, imports: [NgIf, IgxDropDownItemNavigationDirective, IgxIconComponent, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxExcelStyleCustomDialogComponent], template: "<ng-container *ngIf=\"esf.column\">\n <div tabindex=\"0\"\n class=\"igx-excel-filter__actions-filter\"\n (keydown)=\"onTextFilterKeyDown($event)\"\n (click)=\"onTextFilterClick($event)\"\n [igxDropDownItemNavigation]=\"subMenu\"\n role=\"menuitem\"\n aria-haspopup=\"true\"\n [attr.aria-controls]=\"this.subMenu.listId\"\n [attr.aria-activedescendant]=\"!this.subMenu.collapsed ? this.subMenu.focusedItem?.id : null\">\n <span>{{ subMenuText }}</span>\n <igx-icon>keyboard_arrow_right</igx-icon>\n </div>\n\n <igx-drop-down\n #subMenu\n [maxHeight]=\"'397px'\"\n (selectionChanging)=\"onSubMenuSelection($event)\"\n (closed)=\"onSubMenuClosed()\">\n <div>\n <igx-drop-down-item\n *ngFor=\"let condition of conditions\"\n [value]=\"condition\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ translateCondition(condition) }}</span>\n </div>\n </igx-drop-down-item>\n <igx-drop-down-item *ngIf=\"showCustomFilterItem()\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon>filter_list</igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ esf.grid.resourceStrings.igx_grid_excel_custom_filter }}</span>\n </div>\n </igx-drop-down-item>\n </div>\n </igx-drop-down>\n\n <igx-excel-style-custom-dialog\n #customDialog\n [column]=\"esf.column\"\n [filteringService]=\"esf.grid.filteringService\"\n [overlayComponentId]=\"esf.overlayComponentId\">\n </igx-excel-style-custom-dialog>\n</ng-container>\n" }]
|
|
48479
|
+
args: [{ selector: 'igx-excel-style-conditional-filter', standalone: true, imports: [NgIf, NgClass, IgxDropDownItemNavigationDirective, IgxIconComponent, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxExcelStyleCustomDialogComponent], template: "<ng-container *ngIf=\"esf.column\">\n <div tabindex=\"0\"\n class=\"igx-excel-filter__actions-filter\"\n [ngClass]=\"filterNumber > 0 ? 'igx-excel-filter__actions-filter--active' : ''\"\n (keydown)=\"onTextFilterKeyDown($event)\"\n (click)=\"onTextFilterClick($event)\"\n [igxDropDownItemNavigation]=\"subMenu\"\n role=\"menuitem\"\n aria-haspopup=\"true\"\n [attr.aria-controls]=\"this.subMenu.listId\"\n [attr.aria-activedescendant]=\"!this.subMenu.collapsed ? this.subMenu.focusedItem?.id : null\">\n <span class=\"igx-excel-filter__filter-number\">{{ subMenuText }} <ng-container *ngIf=\"filterNumber > 0\">({{filterNumber}})</ng-container></span>\n <igx-icon>keyboard_arrow_right</igx-icon>\n </div>\n\n <igx-drop-down\n #subMenu\n [maxHeight]=\"'397px'\"\n (selectionChanging)=\"onSubMenuSelection($event)\"\n (closed)=\"onSubMenuClosed()\">\n <div>\n <igx-drop-down-item\n *ngFor=\"let condition of conditions\"\n [selected]=\"getSelectedCondition(condition)\"\n [value]=\"condition\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ translateCondition(condition) }}</span>\n </div>\n </igx-drop-down-item>\n <igx-drop-down-item *ngIf=\"showCustomFilterItem()\"\n [selected]=\"getSelectedCondition('custom')\" >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon>filter_list</igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{ esf.grid.resourceStrings.igx_grid_excel_custom_filter }}</span>\n </div>\n </igx-drop-down-item>\n </div>\n </igx-drop-down>\n\n <igx-excel-style-custom-dialog\n #customDialog\n [column]=\"esf.column\"\n [filteringService]=\"esf.grid.filteringService\"\n [overlayComponentId]=\"esf.overlayComponentId\">\n </igx-excel-style-custom-dialog>\n</ng-container>\n" }]
|
|
48447
48480
|
}], ctorParameters: () => [{ type: BaseFilteringComponent }, { type: PlatformUtil }], propDecorators: { customDialog: [{
|
|
48448
48481
|
type: ViewChild,
|
|
48449
48482
|
args: ['customDialog', { read: IgxExcelStyleCustomDialogComponent }]
|
|
@@ -54257,7 +54290,7 @@ class IgxGridHeaderComponent {
|
|
|
54257
54290
|
return this.sortDirection !== SortingDirection.None;
|
|
54258
54291
|
}
|
|
54259
54292
|
get filterIconClassName() {
|
|
54260
|
-
return this.column.filteringExpressionsTree ? 'igx-excel-filter__icon--filtered' : 'igx-excel-filter__icon';
|
|
54293
|
+
return this.column.filteringExpressionsTree || this.isAdvancedFilterApplied() ? 'igx-excel-filter__icon--filtered' : 'igx-excel-filter__icon';
|
|
54261
54294
|
}
|
|
54262
54295
|
get selectable() {
|
|
54263
54296
|
return this.grid.columnSelection !== GridSelectionMode.none &&
|
|
@@ -54359,6 +54392,12 @@ class IgxGridHeaderComponent {
|
|
|
54359
54392
|
const expr = this.grid.sortingExpressions.find((x) => x.fieldName === this.column.field);
|
|
54360
54393
|
this.sortDirection = expr ? expr.dir : SortingDirection.None;
|
|
54361
54394
|
}
|
|
54395
|
+
isAdvancedFilterApplied() {
|
|
54396
|
+
if (!this.grid.advancedFilteringExpressionsTree) {
|
|
54397
|
+
return false;
|
|
54398
|
+
}
|
|
54399
|
+
return !!this.grid.advancedFilteringExpressionsTree.find(this.column.field);
|
|
54400
|
+
}
|
|
54362
54401
|
triggerSort() {
|
|
54363
54402
|
const groupingExpr = this.grid.groupingExpressions ?
|
|
54364
54403
|
this.grid.groupingExpressions.find((expr) => expr.fieldName === this.column.field) :
|
|
@@ -55536,8 +55575,11 @@ class IgxGridHeaderGroupComponent {
|
|
|
55536
55575
|
* @hidden
|
|
55537
55576
|
*/
|
|
55538
55577
|
onMouseDown(event) {
|
|
55539
|
-
|
|
55540
|
-
|
|
55578
|
+
if (!this.grid.allowFiltering ||
|
|
55579
|
+
(event.composedPath().findIndex(el => el.tagName?.toLowerCase() === 'igx-grid-filtering-cell') < 1)) {
|
|
55580
|
+
// Hack for preventing text selection in IE and Edge while dragging the resize element
|
|
55581
|
+
event.preventDefault();
|
|
55582
|
+
}
|
|
55541
55583
|
}
|
|
55542
55584
|
/**
|
|
55543
55585
|
* @hidden
|
|
@@ -75654,13 +75696,36 @@ class IgxGridToolbarAdvancedFilteringComponent {
|
|
|
75654
75696
|
}
|
|
75655
75697
|
constructor(toolbar) {
|
|
75656
75698
|
this.toolbar = toolbar;
|
|
75699
|
+
this.grid?.advancedFilteringExpressionsTreeChange.subscribe(filteringTree => {
|
|
75700
|
+
this.numberOfColumns = this.extractUniqueFieldNamesFromFilterTree(filteringTree).length;
|
|
75701
|
+
});
|
|
75702
|
+
}
|
|
75703
|
+
/**
|
|
75704
|
+
* @hidden
|
|
75705
|
+
*/
|
|
75706
|
+
ngAfterViewInit() {
|
|
75707
|
+
this.numberOfColumns = this.grid?.advancedFilteringExpressionsTree ? this.extractUniqueFieldNamesFromFilterTree(this.grid?.advancedFilteringExpressionsTree).length : 0;
|
|
75708
|
+
}
|
|
75709
|
+
extractUniqueFieldNamesFromFilterTree(filteringTree) {
|
|
75710
|
+
const columnNames = [];
|
|
75711
|
+
if (!filteringTree)
|
|
75712
|
+
return columnNames;
|
|
75713
|
+
filteringTree.filteringOperands.forEach((expr) => {
|
|
75714
|
+
if (expr instanceof FilteringExpressionsTree) {
|
|
75715
|
+
columnNames.push(...this.extractUniqueFieldNamesFromFilterTree(expr));
|
|
75716
|
+
}
|
|
75717
|
+
else {
|
|
75718
|
+
columnNames.push(expr.fieldName);
|
|
75719
|
+
}
|
|
75720
|
+
});
|
|
75721
|
+
return [...new Set(columnNames)];
|
|
75657
75722
|
}
|
|
75658
75723
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, deps: [{ token: IgxToolbarToken }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75659
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: IgxGridToolbarAdvancedFilteringComponent, isStandalone: true, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n
|
|
75724
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: IgxGridToolbarAdvancedFilteringComponent, isStandalone: true, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n class=\"igx-grid-toolbar__adv-filter\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n <span class=\"igx-adv-filter--column-number\" *ngIf=\"grid?.advancedFilteringExpressionsTree\"> ({{ numberOfColumns }}) </span>\n</button>\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
75660
75725
|
}
|
|
75661
75726
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, decorators: [{
|
|
75662
75727
|
type: Component,
|
|
75663
|
-
args: [{ selector: 'igx-grid-toolbar-advanced-filtering', standalone: true, imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n
|
|
75728
|
+
args: [{ selector: 'igx-grid-toolbar-advanced-filtering', standalone: true, imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n class=\"igx-grid-toolbar__adv-filter\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n <span class=\"igx-adv-filter--column-number\" *ngIf=\"grid?.advancedFilteringExpressionsTree\"> ({{ numberOfColumns }}) </span>\n</button>\n" }]
|
|
75664
75729
|
}], ctorParameters: () => [{ type: IgxToolbarToken, decorators: [{
|
|
75665
75730
|
type: Inject,
|
|
75666
75731
|
args: [IgxToolbarToken]
|