igniteui-angular 22.1.0-beta.5 → 22.1.0-beta.7

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.
Files changed (135) hide show
  1. package/fesm2022/igniteui-angular-accordion.mjs +4 -4
  2. package/fesm2022/igniteui-angular-accordion.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-action-strip.mjs +0 -1
  4. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-avatar.mjs.map +1 -1
  6. package/fesm2022/igniteui-angular-badge.mjs +0 -1
  7. package/fesm2022/igniteui-angular-badge.mjs.map +1 -1
  8. package/fesm2022/igniteui-angular-banner.mjs +2 -2
  9. package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
  10. package/fesm2022/igniteui-angular-button-group.mjs +2 -2
  11. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  12. package/fesm2022/igniteui-angular-calendar.mjs +4 -5
  13. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-card.mjs.map +1 -1
  15. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-combo.mjs +17 -6
  18. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-core.mjs +16 -337
  20. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-date-picker.mjs +12 -14
  22. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-dialog.mjs +1 -1
  24. package/fesm2022/igniteui-angular-dialog.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-directives.mjs +50 -47
  26. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-drop-down.mjs +3 -2
  28. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  29. package/fesm2022/igniteui-angular-expansion-panel.mjs +23 -12
  30. package/fesm2022/igniteui-angular-expansion-panel.mjs.map +1 -1
  31. package/fesm2022/igniteui-angular-grids-core.mjs +501 -207
  32. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-grids-grid.mjs +116 -95
  34. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +15 -19
  36. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  37. package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
  38. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +75 -153
  39. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  40. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +28 -35
  41. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  42. package/fesm2022/igniteui-angular-icon.mjs.map +1 -1
  43. package/fesm2022/igniteui-angular-input-group.mjs +1 -1
  44. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  45. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  46. package/fesm2022/igniteui-angular-navbar.mjs.map +1 -1
  47. package/fesm2022/igniteui-angular-navigation-drawer.mjs +2 -3
  48. package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
  49. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  50. package/fesm2022/igniteui-angular-progressbar.mjs +5 -2
  51. package/fesm2022/igniteui-angular-progressbar.mjs.map +1 -1
  52. package/fesm2022/igniteui-angular-query-builder.mjs +18 -19
  53. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  54. package/fesm2022/igniteui-angular-radio.mjs +1 -1
  55. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-select.mjs.map +1 -1
  57. package/fesm2022/igniteui-angular-simple-combo.mjs +10 -7
  58. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  59. package/fesm2022/igniteui-angular-slider.mjs +3 -3
  60. package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
  61. package/fesm2022/igniteui-angular-splitter.mjs +1 -1
  62. package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
  63. package/fesm2022/igniteui-angular-stepper.mjs +1 -1
  64. package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
  65. package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
  66. package/fesm2022/igniteui-angular-time-picker.mjs +3 -6
  67. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  68. package/fesm2022/igniteui-angular-tree.mjs +8 -10
  69. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  70. package/lib/grids/core/src/filtering/excel-style/themes/_derived.scss +3 -2
  71. package/migrations/migration-collection.json +0 -7
  72. package/package.json +1 -1
  73. package/styles/igniteui-angular-dark.css +1 -1
  74. package/styles/igniteui-angular.css +1 -1
  75. package/styles/igniteui-bootstrap-dark.css +1 -1
  76. package/styles/igniteui-bootstrap-light.css +1 -1
  77. package/styles/igniteui-dark-green.css +1 -1
  78. package/styles/igniteui-fluent-dark-excel.css +1 -1
  79. package/styles/igniteui-fluent-dark-word.css +1 -1
  80. package/styles/igniteui-fluent-dark.css +1 -1
  81. package/styles/igniteui-fluent-light-excel.css +1 -1
  82. package/styles/igniteui-fluent-light-word.css +1 -1
  83. package/styles/igniteui-fluent-light.css +1 -1
  84. package/styles/igniteui-indigo-dark.css +1 -1
  85. package/styles/igniteui-indigo-light.css +1 -1
  86. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  87. package/styles/maps/igniteui-angular.css.map +1 -1
  88. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  89. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  90. package/styles/maps/igniteui-dark-green.css.map +1 -1
  91. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  92. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  93. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  94. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  95. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  96. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  97. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  98. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  99. package/types/igniteui-angular-avatar.d.ts +1 -1
  100. package/types/igniteui-angular-banner.d.ts +3 -3
  101. package/types/igniteui-angular-calendar.d.ts +9 -9
  102. package/types/igniteui-angular-card.d.ts +1 -1
  103. package/types/igniteui-angular-carousel.d.ts +9 -9
  104. package/types/igniteui-angular-chat.d.ts +1 -1
  105. package/types/igniteui-angular-chips.d.ts +5 -5
  106. package/types/igniteui-angular-combo.d.ts +17 -13
  107. package/types/igniteui-angular-core.d.ts +200 -495
  108. package/types/igniteui-angular-date-picker.d.ts +3 -3
  109. package/types/igniteui-angular-dialog.d.ts +4 -4
  110. package/types/igniteui-angular-directives.d.ts +60 -59
  111. package/types/igniteui-angular-drop-down.d.ts +16 -16
  112. package/types/igniteui-angular-expansion-panel.d.ts +6 -6
  113. package/types/igniteui-angular-grids-core.d.ts +1053 -791
  114. package/types/igniteui-angular-grids-grid.d.ts +104 -267
  115. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +68 -547
  116. package/types/igniteui-angular-grids-lite.d.ts +7 -7
  117. package/types/igniteui-angular-grids-pivot-grid.d.ts +94 -129
  118. package/types/igniteui-angular-grids-tree-grid.d.ts +5 -51
  119. package/types/igniteui-angular-icon.d.ts +2 -2
  120. package/types/igniteui-angular-input-group.d.ts +4 -4
  121. package/types/igniteui-angular-list.d.ts +4 -4
  122. package/types/igniteui-angular-navigation-drawer.d.ts +3 -3
  123. package/types/igniteui-angular-progressbar.d.ts +1 -0
  124. package/types/igniteui-angular-query-builder.d.ts +9 -9
  125. package/types/igniteui-angular-radio.d.ts +1 -1
  126. package/types/igniteui-angular-select.d.ts +5 -5
  127. package/types/igniteui-angular-simple-combo.d.ts +2 -2
  128. package/types/igniteui-angular-slider.d.ts +4 -4
  129. package/types/igniteui-angular-splitter.d.ts +3 -3
  130. package/types/igniteui-angular-time-picker.d.ts +8 -8
  131. package/types/igniteui-angular-tree.d.ts +8 -8
  132. package/migrations/update-22_1_0_import-migration/index.d.ts +0 -2
  133. package/migrations/update-22_1_0_import-migration/index.js +0 -200
  134. package/migrations/update-22_1_0_import-migration/index.spec.d.ts +0 -1
  135. package/migrations/update-22_1_0_import-migration/index.spec.js +0 -132
@@ -9,8 +9,8 @@ import { IgxButtonDirective, IgxRippleDirective, IgxGridForOfDirective, IgxDragD
9
9
  import { __decorate } from 'tslib';
10
10
  import { Subject, fromEvent, interval, animationFrameScheduler } from 'rxjs';
11
11
  import { isEqual as isEqual$1 } from 'lodash-es';
12
- import { IgxNumberSummaryOperand, IgxDateSummaryOperand, IgxTimeSummaryOperand, IgxSorting, DataUtil, FilteringExpressionsTree, FilteringLogic, GridColumnDataType, PlatformUtil, isDate, isEqual, DateTimeUtil, copyDescriptors, trackByIdentity, mergeObjects, TransactionType, resolveNestedPath, columnFieldPath, DefaultSortingStrategy, isConstructor, ɵSize as _Size, ColumnPinningPosition, ExpressionsTreeUtil, IgxSummaryOperand, IgxStringFilteringOperand, IgxDateTimeFilteringOperand, IgxTimeFilteringOperand, IgxDateFilteringOperand, IgxNumberFilteringOperand, IgxBooleanFilteringOperand, flatten, onResourceChangeHandle, GridResourceStringsEN, getCurrentResourceStrings, QueryBuilderResourceStringsEN, isTree, AbsoluteScrollStrategy, ConnectedPositioningStrategy, IgxOverlayOutletDirective, IgxPercentFormatterPipe, I18N_FORMATTER, IgxPickerToggleComponent, IgxPickerClearComponent, IgxOverlayService, VerticalAlignment, AutoPositionStrategy, HorizontalAlignment, cloneHierarchicalArray, SortingDirection, showMessage, IgxActionStripActionsToken, GridSummaryCalculationMode, cloneArray, cloneValue, recreateTreeFromFields, FilterUtil, TreeGridFilteringStrategy, getHierarchy, isHierarchyMatch, FilteringStrategy, NAVIGATION_KEYS, Util, IgxNumberFormatterPipe, IgxCurrencyFormatterPipe, IgxDateFormatterPipe, reverseMapper } from 'igniteui-angular/core';
13
- import { first, takeUntil, map, debounceTime, filter, switchMap, throttle, throttleTime, takeWhile } from 'rxjs/operators';
12
+ import { IgxSorting, DataUtil, FilteringExpressionsTree, FilteringLogic, GridColumnDataType, PlatformUtil, isDate, isEqual, DateTimeUtil, copyDescriptors, trackByIdentity, mergeObjects, TransactionType, resolveNestedPath, columnFieldPath, DefaultSortingStrategy, isConstructor, ɵSize as _Size, ColumnPinningPosition, ExpressionsTreeUtil, IgxStringFilteringOperand, IgxDateTimeFilteringOperand, IgxTimeFilteringOperand, IgxDateFilteringOperand, IgxNumberFilteringOperand, IgxBooleanFilteringOperand, flatten, onResourceChangeHandle, GridResourceStringsEN, getCurrentResourceStrings, QueryBuilderResourceStringsEN, isTree, AbsoluteScrollStrategy, ConnectedPositioningStrategy, IgxOverlayOutletDirective, IgxPercentFormatterPipe, I18N_FORMATTER, IgxPickerToggleComponent, IgxPickerClearComponent, IgxOverlayService, VerticalAlignment, AutoPositionStrategy, HorizontalAlignment, cloneHierarchicalArray, SortingDirection, showMessage, IgxActionStripActionsToken, GridSummaryCalculationMode, cloneArray, cloneValue, recreateTreeFromFields, FilterUtil, TreeGridFilteringStrategy, getHierarchy, isHierarchyMatch, FilteringStrategy, NAVIGATION_KEYS, Util, IgxNumberFormatterPipe, IgxCurrencyFormatterPipe, IgxDateFormatterPipe, reverseMapper } from 'igniteui-angular/core';
13
+ import { first as first$1, takeUntil, map, debounceTime, filter, switchMap, throttle, throttleTime, takeWhile } from 'rxjs/operators';
14
14
  import { NgClass, NgTemplateOutlet, NgStyle, AsyncPipe } from '@angular/common';
15
15
  import { IgxQueryBuilderComponent, IgxQueryBuilderHeaderComponent } from 'igniteui-angular/query-builder';
16
16
  import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon';
@@ -533,7 +533,7 @@ class IgxColumnHidingDirective extends IgxColumnActionsBaseDirective {
533
533
  /**
534
534
  * @hidden @internal
535
535
  */
536
- this.actionEnabledColumnsFilter = (c) => !c.disableHiding;
536
+ this.actionEnabledColumnsFilter = c => !c.disableHiding;
537
537
  const columnActions = this.columnActions;
538
538
  columnActions.actionsDirective = this;
539
539
  }
@@ -810,7 +810,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
810
810
  * @hidden
811
811
  */
812
812
  function WatchChanges() {
813
- return ((_target, key, propDesc) => {
813
+ return (_target, key, propDesc) => {
814
814
  const privateKey = '_' + key.toString();
815
815
  propDesc = propDesc || {
816
816
  configurable: true,
@@ -837,10 +837,10 @@ function WatchChanges() {
837
837
  }
838
838
  };
839
839
  return propDesc;
840
- });
840
+ };
841
841
  }
842
842
  function WatchColumnChanges() {
843
- return ((_target, key, propDesc) => {
843
+ return (_target, key, propDesc) => {
844
844
  const privateKey = '_' + key.toString();
845
845
  propDesc = propDesc || {
846
846
  configurable: true,
@@ -862,7 +862,7 @@ function WatchColumnChanges() {
862
862
  }
863
863
  };
864
864
  return propDesc;
865
- });
865
+ };
866
866
  }
867
867
  function notifyChanges(repaint = false) {
868
868
  return (_, key, propDesc) => {
@@ -896,6 +896,305 @@ function notifyChanges(repaint = false) {
896
896
  };
897
897
  }
898
898
 
899
+ const clear = (el) => el === 0 || Boolean(el);
900
+ const first = (arr) => arr[0];
901
+ const last = (arr) => arr[arr.length - 1];
902
+ /* blazorCSSuppress */
903
+ class IgxSummaryOperand {
904
+ /**
905
+ * Counts all the records in the data source.
906
+ * If filtering is applied, counts only the filtered records.
907
+ * ```typescript
908
+ * IgxSummaryOperand.count(dataSource);
909
+ * ```
910
+ *
911
+ * @memberof IgxSummaryOperand
912
+ */
913
+ static count(data) {
914
+ return data.length;
915
+ }
916
+ /**
917
+ * Executes the static `count` method and returns summary result[]`.
918
+ * ```typescript
919
+ * interface IgxSummaryResult {
920
+ * key: string;
921
+ * label: string;
922
+ * summaryResult: any;
923
+ * }
924
+ * ```
925
+ * Can be overridden in the inherited classes to provide customization for the `summary`.
926
+ * ```typescript
927
+ * class CustomSummary extends IgxSummaryOperand {
928
+ * constructor() {
929
+ * super();
930
+ * }
931
+ * public operate(data: any[], allData: any[], fieldName: string, groupRecord: IGroupByRecord): IgxSummaryResult[] {
932
+ * const result = [];
933
+ * result.push({
934
+ * key: "test",
935
+ * label: "Test",
936
+ * summaryResult: IgxSummaryOperand.count(data)
937
+ * });
938
+ * return result;
939
+ * }
940
+ * }
941
+ * this.grid.getColumnByName('ColumnName').summaries = CustomSummary;
942
+ * ```
943
+ *
944
+ * @memberof IgxSummaryOperand
945
+ */
946
+ operate(data = [], _allData = [], _fieldName, _groupRecord) {
947
+ return [{
948
+ key: 'count',
949
+ label: 'Count',
950
+ defaultFormatting: false,
951
+ summaryResult: IgxSummaryOperand.count(data)
952
+ }];
953
+ }
954
+ }
955
+ /* blazorCSSuppress */
956
+ // @dynamic
957
+ class IgxNumberSummaryOperand extends IgxSummaryOperand {
958
+ /**
959
+ * Returns the minimum numeric value in the provided data records.
960
+ * If filtering is applied, returns the minimum value in the filtered data records.
961
+ * ```typescript
962
+ * IgxNumberSummaryOperand.min(data);
963
+ * ```
964
+ *
965
+ * @memberof IgxNumberSummaryOperand
966
+ */
967
+ static min(data) {
968
+ return data.length && data.filter(clear).length ? data.filter(clear).reduce((a, b) => Math.min(a, b)) : 0;
969
+ }
970
+ /**
971
+ * Returns the maximum numeric value in the provided data records.
972
+ * If filtering is applied, returns the maximum value in the filtered data records.
973
+ * ```typescript
974
+ * IgxNumberSummaryOperand.max(data);
975
+ * ```
976
+ *
977
+ * @memberof IgxNumberSummaryOperand
978
+ */
979
+ static max(data) {
980
+ return data.length && data.filter(clear).length ? data.filter(clear).reduce((a, b) => Math.max(a, b)) : 0;
981
+ }
982
+ /**
983
+ * Returns the sum of the numeric values in the provided data records.
984
+ * If filtering is applied, returns the sum of the numeric values in the data records.
985
+ * ```typescript
986
+ * IgxNumberSummaryOperand.sum(data);
987
+ * ```
988
+ *
989
+ * @memberof IgxNumberSummaryOperand
990
+ */
991
+ static sum(data) {
992
+ return data.length && data.filter(clear).length ? data.filter(clear).reduce((a, b) => +a + +b) : 0;
993
+ }
994
+ /**
995
+ * Returns the average numeric value in the data provided data records.
996
+ * If filtering is applied, returns the average numeric value in the filtered data records.
997
+ * ```typescript
998
+ * IgxSummaryOperand.average(data);
999
+ * ```
1000
+ *
1001
+ * @memberof IgxNumberSummaryOperand
1002
+ */
1003
+ static average(data) {
1004
+ return data.length && data.filter(clear).length ? this.sum(data) / this.count(data) : 0;
1005
+ }
1006
+ /**
1007
+ * Executes the static methods and returns summary result[]`.
1008
+ * ```typescript
1009
+ * interface IgxSummaryResult {
1010
+ * key: string;
1011
+ * label: string;
1012
+ * summaryResult: any;
1013
+ * }
1014
+ * ```
1015
+ * Can be overridden in the inherited classes to provide customization for the `summary`.
1016
+ * ```typescript
1017
+ * class CustomNumberSummary extends IgxNumberSummaryOperand {
1018
+ * constructor() {
1019
+ * super();
1020
+ * }
1021
+ * public operate(data: any[], allData: any[], fieldName: string, groupRecord: IGroupByRecord): IgxSummaryResult[] {
1022
+ * const result = super.operate(data, allData, fieldName, groupRecord);
1023
+ * result.push({
1024
+ * key: "avg",
1025
+ * label: "Avg",
1026
+ * summaryResult: IgxNumberSummaryOperand.average(data)
1027
+ * });
1028
+ * result.push({
1029
+ * key: 'mdn',
1030
+ * label: 'Median',
1031
+ * summaryResult: this.findMedian(data)
1032
+ * });
1033
+ * return result;
1034
+ * }
1035
+ * }
1036
+ * this.grid.getColumnByName('ColumnName').summaries = CustomNumberSummary;
1037
+ * ```
1038
+ *
1039
+ * @memberof IgxNumberSummaryOperand
1040
+ */
1041
+ operate(data = [], allData = [], fieldName, groupRecord) {
1042
+ const result = super.operate(data, allData, fieldName, groupRecord);
1043
+ result.push({
1044
+ key: 'min',
1045
+ label: 'Min',
1046
+ defaultFormatting: true,
1047
+ summaryResult: IgxNumberSummaryOperand.min(data)
1048
+ });
1049
+ result.push({
1050
+ key: 'max',
1051
+ label: 'Max',
1052
+ defaultFormatting: true,
1053
+ summaryResult: IgxNumberSummaryOperand.max(data)
1054
+ });
1055
+ result.push({
1056
+ key: 'sum',
1057
+ label: 'Sum',
1058
+ defaultFormatting: true,
1059
+ summaryResult: IgxNumberSummaryOperand.sum(data)
1060
+ });
1061
+ result.push({
1062
+ key: 'average',
1063
+ label: 'Avg',
1064
+ defaultFormatting: true,
1065
+ summaryResult: IgxNumberSummaryOperand.average(data)
1066
+ });
1067
+ return result;
1068
+ }
1069
+ }
1070
+ /* blazorCSSuppress */
1071
+ // @dynamic
1072
+ class IgxDateSummaryOperand extends IgxSummaryOperand {
1073
+ /**
1074
+ * Returns the latest date value in the data records.
1075
+ * If filtering is applied, returns the latest date value in the filtered data records.
1076
+ * ```typescript
1077
+ * IgxDateSummaryOperand.latest(data);
1078
+ * ```
1079
+ *
1080
+ * @memberof IgxDateSummaryOperand
1081
+ */
1082
+ static latest(data) {
1083
+ return data.length && data.filter(clear).length ?
1084
+ first(data.filter(clear).sort((a, b) => new Date(b).valueOf() - new Date(a).valueOf())) : undefined;
1085
+ }
1086
+ /**
1087
+ * Returns the earliest date value in the data records.
1088
+ * If filtering is applied, returns the latest date value in the filtered data records.
1089
+ * ```typescript
1090
+ * IgxDateSummaryOperand.earliest(data);
1091
+ * ```
1092
+ *
1093
+ * @memberof IgxDateSummaryOperand
1094
+ */
1095
+ static earliest(data) {
1096
+ return data.length && data.filter(clear).length ?
1097
+ last(data.filter(clear).sort((a, b) => new Date(b).valueOf() - new Date(a).valueOf())) : undefined;
1098
+ }
1099
+ /**
1100
+ * Executes the static methods and returns summary result[]`.
1101
+ * ```typescript
1102
+ * interface IgxSummaryResult {
1103
+ * key: string;
1104
+ * label: string;
1105
+ * summaryResult: any;
1106
+ * }
1107
+ * ```
1108
+ * Can be overridden in the inherited classes to provide customization for the `summary`.
1109
+ * ```typescript
1110
+ * class CustomDateSummary extends IgxDateSummaryOperand {
1111
+ * constructor() {
1112
+ * super();
1113
+ * }
1114
+ * public operate(data: any[], allData: any[], fieldName: string, groupRecord: IGroupByRecord): IgxSummaryResult[] {
1115
+ * const result = super.operate(data, allData, fieldName, groupRecord);
1116
+ * result.push({
1117
+ * key: "deadline",
1118
+ * label: "Deadline Date",
1119
+ * summaryResult: this.calculateDeadline(data);
1120
+ * });
1121
+ * return result;
1122
+ * }
1123
+ * }
1124
+ * this.grid.getColumnByName('ColumnName').summaries = CustomDateSummary;
1125
+ * ```
1126
+ *
1127
+ * @memberof IgxDateSummaryOperand
1128
+ */
1129
+ operate(data = [], allData = [], fieldName, groupRecord) {
1130
+ const result = super.operate(data, allData, fieldName, groupRecord);
1131
+ result.push({
1132
+ key: 'earliest',
1133
+ label: 'Earliest',
1134
+ defaultFormatting: true,
1135
+ summaryResult: IgxDateSummaryOperand.earliest(data)
1136
+ });
1137
+ result.push({
1138
+ key: 'latest',
1139
+ label: 'Latest',
1140
+ defaultFormatting: true,
1141
+ summaryResult: IgxDateSummaryOperand.latest(data)
1142
+ });
1143
+ return result;
1144
+ }
1145
+ }
1146
+ /* blazorCSSuppress */
1147
+ // @dynamic
1148
+ class IgxTimeSummaryOperand extends IgxSummaryOperand {
1149
+ /**
1150
+ * Returns the latest time value in the data records. Compare only the time part of the date.
1151
+ * If filtering is applied, returns the latest time value in the filtered data records.
1152
+ * ```typescript
1153
+ * IgxTimeSummaryOperand.latestTime(data);
1154
+ * ```
1155
+ *
1156
+ * @memberof IgxTimeSummaryOperand
1157
+ */
1158
+ static latestTime(data) {
1159
+ return data.length && data.filter(clear).length ?
1160
+ first(data.filter(clear).map(v => new Date(v)).sort((a, b) => new Date().setHours(b.getHours(), b.getMinutes(), b.getSeconds()) -
1161
+ new Date().setHours(a.getHours(), a.getMinutes(), a.getSeconds()))) : undefined;
1162
+ }
1163
+ /**
1164
+ * Returns the earliest time value in the data records. Compare only the time part of the date.
1165
+ * If filtering is applied, returns the earliest time value in the filtered data records.
1166
+ * ```typescript
1167
+ * IgxTimeSummaryOperand.earliestTime(data);
1168
+ * ```
1169
+ *
1170
+ * @memberof IgxTimeSummaryOperand
1171
+ */
1172
+ static earliestTime(data) {
1173
+ return data.length && data.filter(clear).length ?
1174
+ last(data.filter(clear).map(v => new Date(v)).sort((a, b) => new Date().setHours(b.getHours(), b.getMinutes(), b.getSeconds()) -
1175
+ new Date().setHours(a.getHours(), a.getMinutes(), a.getSeconds()))) : undefined;
1176
+ }
1177
+ /**
1178
+ * @memberof IgxTimeSummaryOperand
1179
+ */
1180
+ operate(data = [], allData = [], fieldName, groupRecord) {
1181
+ const result = super.operate(data, allData, fieldName, groupRecord);
1182
+ result.push({
1183
+ key: 'earliest',
1184
+ label: 'Earliest',
1185
+ defaultFormatting: true,
1186
+ summaryResult: IgxTimeSummaryOperand.earliestTime(data)
1187
+ });
1188
+ result.push({
1189
+ key: 'latest',
1190
+ label: 'Latest',
1191
+ defaultFormatting: true,
1192
+ summaryResult: IgxTimeSummaryOperand.latestTime(data)
1193
+ });
1194
+ return result;
1195
+ }
1196
+ }
1197
+
899
1198
  class IgxPivotAggregate {
900
1199
  /**
901
1200
  * Gets array with default aggregator function for base aggregation.
@@ -1368,7 +1667,7 @@ class PivotUtil {
1368
1667
  return vals;
1369
1668
  }
1370
1669
  static flatten(arr, lvl = 0) {
1371
- const newArr = (arr || []).reduce((acc, item) => {
1670
+ const newArr = arr.reduce((acc, item) => {
1372
1671
  if (item) {
1373
1672
  item.level = lvl;
1374
1673
  acc.push(item);
@@ -1422,7 +1721,7 @@ class PivotUtil {
1422
1721
  if (!aggregator) {
1423
1722
  throw `No valid aggregator found for ${pivotValue.member}. Please set either a valid aggregatorName or aggregator`;
1424
1723
  }
1425
- result[pivotValue.member] = aggregator(records.map((r) => r[pivotValue.member]), records);
1724
+ result[pivotValue.member] = aggregator(records.map(r => r[pivotValue.member]), records);
1426
1725
  }
1427
1726
  return result;
1428
1727
  }
@@ -1501,7 +1800,7 @@ class PivotUtil {
1501
1800
  }
1502
1801
  static collectRecords(children, pivotKeys) {
1503
1802
  let result = [];
1504
- children.forEach((value) => result = result.concat(value[pivotKeys.records]));
1803
+ children.forEach(value => result = result.concat(value[pivotKeys.records]));
1505
1804
  return result;
1506
1805
  }
1507
1806
  static applyHierarchyChildren(hierarchy, val, rec, pivotKeys) {
@@ -1538,7 +1837,7 @@ class PivotUtil {
1538
1837
  // not all nested children are valid
1539
1838
  const nestedValue = hierarchyChildValue.value;
1540
1839
  const dimension = hierarchyChildValue.dimension;
1541
- const validRecs = rec[recordsKey].filter((x) => this.extractValueFromDimension(dimension, x) === nestedValue);
1840
+ const validRecs = rec[recordsKey].filter(x => this.extractValueFromDimension(dimension, x) === nestedValue);
1542
1841
  copy[recordsKey] = validRecs;
1543
1842
  }
1544
1843
  hierarchyChildValue[recordsKey].push(copy);
@@ -1605,7 +1904,6 @@ class PivotUtil {
1605
1904
  else if (value.dataType === GridColumnDataType.Percent && !isCountAggregator) {
1606
1905
  return GridColumnDataType.Percent;
1607
1906
  }
1608
- return undefined;
1609
1907
  }
1610
1908
  }
1611
1909
 
@@ -1660,7 +1958,7 @@ class IgxGridSelectionService {
1660
1958
  this.pointerEventInGridBody = false;
1661
1959
  this.grid.document.body.removeEventListener('pointerup', this.pointerOriginHandler);
1662
1960
  const gridCellSelectors = ['igx-grid-cell', 'igx-hierarchical-grid-cell', 'igx-tree-grid-cell'];
1663
- const isInsideGridCell = gridCellSelectors.some(selector => event.target ? event.target.closest(selector) : false);
1961
+ const isInsideGridCell = gridCellSelectors.some(selector => event.target.closest(selector));
1664
1962
  if (!isInsideGridCell) {
1665
1963
  this.pointerUp(this._lastSelectedNode, this.grid.rangeSelected, true);
1666
1964
  }
@@ -1948,8 +2246,8 @@ class IgxGridSelectionService {
1948
2246
  getSelectedRowsData() {
1949
2247
  if (this.grid.type === 'pivot') {
1950
2248
  return this.grid.dataView.filter(r => {
1951
- const keys = r.dimensions.map((d) => PivotUtil.getRecordKey(r, d));
1952
- return keys.some((k) => this.isPivotRowSelected(k));
2249
+ const keys = r.dimensions.map(d => PivotUtil.getRecordKey(r, d));
2250
+ return keys.some(k => this.isPivotRowSelected(k));
1953
2251
  });
1954
2252
  }
1955
2253
  if (!this.grid.primaryKey) {
@@ -2169,7 +2467,7 @@ class IgxGridSelectionService {
2169
2467
  emitRowSelectionEvent(newSelection, added, removed, event, currSelection) {
2170
2468
  currSelection = currSelection ?? this.getSelectedRowsData();
2171
2469
  if (this.areEqualCollections(currSelection, newSelection)) {
2172
- return undefined;
2470
+ return;
2173
2471
  }
2174
2472
  const args = {
2175
2473
  owner: this.grid,
@@ -2184,14 +2482,13 @@ class IgxGridSelectionService {
2184
2482
  this.grid.rowSelectionChanging.emit(args);
2185
2483
  if (args.cancel) {
2186
2484
  this.clearHeaderCBState();
2187
- return undefined;
2485
+ return;
2188
2486
  }
2189
2487
  this.selectRowsWithNoEvent(args.newSelection.map(r => this.getRecordKey(r)), true);
2190
- return undefined;
2191
2488
  }
2192
2489
  getPivotRowsByIds(ids) {
2193
2490
  return this.grid.dataView.filter(r => {
2194
- const keys = r.dimensions.map((d) => PivotUtil.getRecordKey(r, d));
2491
+ const keys = r.dimensions.map(d => PivotUtil.getRecordKey(r, d));
2195
2492
  return new Set(ids.concat(keys)).size < ids.length + keys.length;
2196
2493
  });
2197
2494
  }
@@ -2206,7 +2503,7 @@ class IgxGridSelectionService {
2206
2503
  this.allRowsSelected = undefined;
2207
2504
  }
2208
2505
  getRowIDs(data) {
2209
- return this.grid.primaryKey && data.length ? data.map((rec) => rec[this.grid.primaryKey]) : data;
2506
+ return this.grid.primaryKey && data.length ? data.map(rec => rec[this.grid.primaryKey]) : data;
2210
2507
  }
2211
2508
  getRecordKey(record) {
2212
2509
  return this.grid.primaryKey ? record[this.grid.primaryKey] : record;
@@ -2228,7 +2525,7 @@ class IgxGridSelectionService {
2228
2525
  else {
2229
2526
  allData = this.grid.gridAPI.get_all_data(true);
2230
2527
  }
2231
- return allData.filter((rData) => !this.isRowDeleted(this.grid.gridAPI.get_row_id(rData)));
2528
+ return allData.filter(rData => !this.isRowDeleted(this.grid.gridAPI.get_row_id(rData)));
2232
2529
  }
2233
2530
  /** Returns array of the selected columns fields. */
2234
2531
  getSelectedColumns() {
@@ -2323,7 +2620,7 @@ class IgxGridSelectionService {
2323
2620
  emitColumnSelectionEvent(newSelection, added, removed, event) {
2324
2621
  const currSelection = this.getSelectedColumns();
2325
2622
  if (this.areEqualCollections(currSelection, newSelection)) {
2326
- return undefined;
2623
+ return;
2327
2624
  }
2328
2625
  const args = {
2329
2626
  oldSelection: currSelection, newSelection,
@@ -2331,10 +2628,9 @@ class IgxGridSelectionService {
2331
2628
  };
2332
2629
  this.grid.columnSelectionChanging.emit(args);
2333
2630
  if (args.cancel) {
2334
- return undefined;
2631
+ return;
2335
2632
  }
2336
2633
  this.selectColumnsWithNoEvent(args.newSelection, true);
2337
- return undefined;
2338
2634
  }
2339
2635
  /** Clear columnSelection */
2340
2636
  clearAllSelectedColumns() {
@@ -2547,7 +2843,7 @@ class IgxCellCrudState {
2547
2843
  return this.row = new IgxEditRow(cell.id.rowID, cell.rowIndex, cell.rowData, cell.grid);
2548
2844
  }
2549
2845
  sameRow(rowID) {
2550
- return !!(this.row && this.row.id === rowID);
2846
+ return this.row && this.row.id === rowID;
2551
2847
  }
2552
2848
  sameCell(cell) {
2553
2849
  return (this.cell.id.rowID === cell.id.rowID &&
@@ -2570,7 +2866,7 @@ class IgxCellCrudState {
2570
2866
  }
2571
2867
  updateCell(exit, event) {
2572
2868
  if (!this.cell) {
2573
- return undefined;
2869
+ return;
2574
2870
  }
2575
2871
  // this is needed when we are not using ngModel to update the editValue
2576
2872
  // so that the change event of the inlineEditorTemplate is hit before
@@ -2629,7 +2925,7 @@ class IgxCellCrudState {
2629
2925
  /** Exit cell edit mode */
2630
2926
  exitCellEdit(event) {
2631
2927
  if (!this.cell) {
2632
- return undefined;
2928
+ return;
2633
2929
  }
2634
2930
  const newValue = this.cell.castToNumber(this.cell.editValue);
2635
2931
  const args = this.cell?.createCellEditDoneEventArgs(newValue, event);
@@ -2666,7 +2962,7 @@ class IgxRowCrudState extends IgxCellCrudState {
2666
2962
  }
2667
2963
  get rowInEditMode() {
2668
2964
  const editRowState = this.row;
2669
- return editRowState !== null ? this.grid.rowList.find(e => e.key === editRowState.id) : undefined;
2965
+ return editRowState !== null ? this.grid.rowList.find(e => e.key === editRowState.id) : null;
2670
2966
  }
2671
2967
  get rowEditing() {
2672
2968
  return this.grid.rowEditable;
@@ -2790,7 +3086,7 @@ class IgxRowCrudState extends IgxCellCrudState {
2790
3086
  updateRowEditData(row, value) {
2791
3087
  const grid = this.grid;
2792
3088
  const rowInEditMode = grid.gridAPI.crudService.row;
2793
- row.newData = value ?? rowInEditMode?.transactionState;
3089
+ row.newData = value ?? rowInEditMode.transactionState;
2794
3090
  if (rowInEditMode && row.id === rowInEditMode.id) {
2795
3091
  // do not use spread operator here as it will copy everything over an empty object with no descriptors
2796
3092
  row.data = Object.assign(copyDescriptors(row.data), row.data, rowInEditMode.transactionState);
@@ -2842,7 +3138,7 @@ class IgxRowAddCrudState extends IgxRowCrudState {
2842
3138
  endRowTransaction(commit, event) {
2843
3139
  const isAddRow = this.row && this.row.isAddRow;
2844
3140
  if (isAddRow) {
2845
- this.grid.rowAdded.pipe(first()).subscribe((addRowArgs) => {
3141
+ this.grid.rowAdded.pipe(first$1()).subscribe((addRowArgs) => {
2846
3142
  const rowData = addRowArgs.data;
2847
3143
  const pinnedIndex = this.grid.pinnedRecords.findIndex(x => x[this.primaryKey] === rowData[this.primaryKey]);
2848
3144
  // A check whether the row is in the current view
@@ -2973,8 +3269,8 @@ class IgxGridCRUDService extends IgxRowAddCrudState {
2973
3269
  const dummyRow = this.grid.gridAPI.get_row_by_index(this.row.index + indexAdjust);
2974
3270
  dummyRow.triggerAddAnimation();
2975
3271
  dummyRow.cdr.detectChanges();
2976
- dummyRow.addAnimationEnd.pipe(first()).subscribe(() => {
2977
- const cell = dummyRow.cells.find((c) => c.editable);
3272
+ dummyRow.addAnimationEnd.pipe(first$1()).subscribe(() => {
3273
+ const cell = dummyRow.cells.find(c => c.editable);
2978
3274
  if (cell) {
2979
3275
  this.grid.gridAPI.update_cell(this.cell);
2980
3276
  this.enterEditMode(cell, event);
@@ -2996,13 +3292,13 @@ class IgxGridCRUDService extends IgxRowAddCrudState {
2996
3292
  // TODO: Implement the same representation of the method without evt emission.
2997
3293
  endEdit(commit = true, event) {
2998
3294
  if (!this.row && !this.cell) {
2999
- return undefined;
3295
+ return;
3000
3296
  }
3001
3297
  let args;
3002
3298
  if (commit) {
3003
3299
  args = this.updateCell(true, event);
3004
3300
  if (args && args.cancel) {
3005
- return true;
3301
+ return args.cancel;
3006
3302
  }
3007
3303
  }
3008
3304
  else {
@@ -3338,8 +3634,8 @@ class IgxRowDirective {
3338
3634
  if (this.hasMergedCells && this.metaData?.cellMergeMeta) {
3339
3635
  const targetRowIndex = this.grid.navigation.activeNode.row;
3340
3636
  if (targetRowIndex != this.index) {
3341
- const row = this.grid.rowList.find(x => x.index === targetRowIndex);
3342
- row?.onClick?.(event);
3637
+ const row = this.grid.rowList.toArray().find(x => x.index === targetRowIndex);
3638
+ row.onClick(event);
3343
3639
  return;
3344
3640
  }
3345
3641
  }
@@ -3441,7 +3737,7 @@ class IgxRowDirective {
3441
3737
  */
3442
3738
  update(value) {
3443
3739
  const crudService = this.grid.crudService;
3444
- if (crudService.cellInEditMode && crudService.cell?.id.key === this.key) {
3740
+ if (crudService.cellInEditMode && crudService.cell.id.key === this.key) {
3445
3741
  this.grid.transactions.endPending(false);
3446
3742
  }
3447
3743
  const row = new IgxEditRow(this.key, this.index, this.data, this.grid);
@@ -3560,7 +3856,7 @@ class IgxRowDirective {
3560
3856
  const isPinned = this.pinned && !this.disabled;
3561
3857
  const indexInData = this.grid.isRowPinningToTop && !isPinned ? this.index - this.grid.pinnedRecordsCount : this.index;
3562
3858
  const range = isPinned ? this.grid.pinnedDataView.slice(indexInData, indexInData + rowCount) : this.grid.verticalScrollContainer.igxForOf.slice(indexInData, indexInData + rowCount);
3563
- const inRange = range.filter((x) => this.selectionService.isRowSelected(this.extractRecordKey(x))).length > 0;
3859
+ const inRange = range.filter(x => this.selectionService.isRowSelected(this.extractRecordKey(x))).length > 0;
3564
3860
  return inRange;
3565
3861
  }
3566
3862
  return false;
@@ -4068,16 +4364,16 @@ class IgxGridCell {
4068
4364
  }
4069
4365
  isCellInEditMode() {
4070
4366
  if (this.grid.crudService.cellInEditMode) {
4071
- const cellInEditMode = this.grid.crudService.cell?.id;
4072
- const isCurrentCell = cellInEditMode?.rowID === this.id.rowID &&
4073
- cellInEditMode?.rowIndex === this.id.rowIndex &&
4074
- cellInEditMode?.columnID === this.id.columnID;
4367
+ const cellInEditMode = this.grid.crudService.cell.id;
4368
+ const isCurrentCell = cellInEditMode.rowID === this.id.rowID &&
4369
+ cellInEditMode.rowIndex === this.id.rowIndex &&
4370
+ cellInEditMode.columnID === this.id.columnID;
4075
4371
  return isCurrentCell;
4076
4372
  }
4077
4373
  return false;
4078
4374
  }
4079
4375
  endEdit() {
4080
- if (!this.isCellInEditMode() && this.grid.crudService.cell) {
4376
+ if (!this.isCellInEditMode()) {
4081
4377
  this.grid.gridAPI.update_cell(this.grid.crudService.cell);
4082
4378
  this.grid.crudService.endCellEdit();
4083
4379
  }
@@ -5363,7 +5659,7 @@ class IgxColumnComponent {
5363
5659
  * @memberof IgxColumnComponent
5364
5660
  */
5365
5661
  get columnLayoutChild() {
5366
- return this.parent != null && this.parent.columnLayout;
5662
+ return this.parent && this.parent.columnLayout;
5367
5663
  }
5368
5664
  /**
5369
5665
  * A list containing all the child columns under this column (if any).
@@ -5640,7 +5936,7 @@ class IgxColumnComponent {
5640
5936
  columnSizes[col.colStart - 1] = {
5641
5937
  ref: col,
5642
5938
  width: col.width === 'fit-content' ? col.autoSize :
5643
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth?.toString() || col.defaultWidth) : null,
5939
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
5644
5940
  colSpan: col.gridColumnSpan,
5645
5941
  colEnd: col.colStart + col.gridColumnSpan,
5646
5942
  widthSetByUser: col.widthSetByUser
@@ -5669,7 +5965,7 @@ class IgxColumnComponent {
5669
5965
  columnSizes[col.colStart - 1] = {
5670
5966
  ref: col,
5671
5967
  width: col.width === 'fit-content' ? col.autoSize :
5672
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth?.toString() || col.defaultWidth) : null,
5968
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
5673
5969
  colSpan: col.gridColumnSpan,
5674
5970
  colEnd: col.colStart + col.gridColumnSpan,
5675
5971
  widthSetByUser: col.widthSetByUser
@@ -5684,7 +5980,7 @@ class IgxColumnComponent {
5684
5980
  columnSizes[i] = {
5685
5981
  ref: col,
5686
5982
  width: col.width === 'fit-content' ? col.autoSize :
5687
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth?.toString() || col.defaultWidth) : null,
5983
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
5688
5984
  colSpan: col.gridColumnSpan,
5689
5985
  colEnd: col.colStart + col.gridColumnSpan,
5690
5986
  widthSetByUser: col.widthSetByUser
@@ -5815,7 +6111,7 @@ class IgxColumnComponent {
5815
6111
  const args = { column: this, insertAtIndex: index, isPinned: false, cancel: false };
5816
6112
  this.grid.columnPin.emit(args);
5817
6113
  if (args.cancel) {
5818
- return undefined;
6114
+ return;
5819
6115
  }
5820
6116
  this.grid.crudService.endEdit(false);
5821
6117
  this._pinned = true;
@@ -5840,7 +6136,7 @@ class IgxColumnComponent {
5840
6136
  let allPinned = [];
5841
6137
  // FIX: this is duplicated on every step in the hierarchy....
5842
6138
  // re-create hierarchy
5843
- rootPinnedCols.forEach((group) => {
6139
+ rootPinnedCols.forEach(group => {
5844
6140
  allPinned.push(group);
5845
6141
  allPinned = allPinned.concat(group.allChildren);
5846
6142
  });
@@ -5903,7 +6199,7 @@ class IgxColumnComponent {
5903
6199
  // estimate the exact index at which column will be inserted
5904
6200
  // takes into account initial unpinned index of the column
5905
6201
  if (!hasIndex) {
5906
- const indices = grid._unpinnedColumns.map((col) => col.index);
6202
+ const indices = grid._unpinnedColumns.map(col => col.index);
5907
6203
  indices.push(this.index);
5908
6204
  indices.sort((a, b) => a - b);
5909
6205
  index = indices.indexOf(this.index);
@@ -5911,7 +6207,7 @@ class IgxColumnComponent {
5911
6207
  const args = { column: this, insertAtIndex: index, isPinned: true, cancel: false };
5912
6208
  this.grid.columnPin.emit(args);
5913
6209
  if (args.cancel) {
5914
- return undefined;
6210
+ return;
5915
6211
  }
5916
6212
  this.grid.crudService.endEdit(false);
5917
6213
  this._pinned = false;
@@ -6219,7 +6515,7 @@ class IgxColumnComponent {
6219
6515
  const currentCalcWidth = parseFloat(possibleColumnWidth);
6220
6516
  this._calcWidth = this.getConstrainedSizePx(currentCalcWidth);
6221
6517
  }
6222
- this.calcPixelWidth = parseFloat(this._calcWidth.toString());
6518
+ this.calcPixelWidth = parseFloat(this._calcWidth);
6223
6519
  }
6224
6520
  /**
6225
6521
  * @hidden
@@ -6915,7 +7211,7 @@ class IgxColumnGroupComponent extends IgxColumnComponent {
6915
7211
  if (val.hidden) {
6916
7212
  return acc;
6917
7213
  }
6918
- return acc + parseFloat(val.calcWidth?.toString() || val.defaultWidth);
7214
+ return acc + parseFloat(val.calcWidth);
6919
7215
  }, 0)}`;
6920
7216
  return width + 'px';
6921
7217
  }
@@ -7369,11 +7665,11 @@ class IgxAdvancedFilteringDialogComponent {
7369
7665
  }
7370
7666
  }
7371
7667
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxAdvancedFilteringDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7372
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxAdvancedFilteringDialogComponent, isStandalone: true, selector: "igx-advanced-filtering-dialog", inputs: { grid: "grid" }, host: { properties: { "style.display": "this.display" } }, viewQueries: [{ propertyName: "queryBuilder", first: true, predicate: ["queryBuilder"], descendants: true, read: IgxQueryBuilderComponent }], ngImport: i0, template: "@if (grid) {\n <article class=\"igx-advanced-filter\" igxDrag [ghost]=\"false\" [dragTolerance]=\"0\"\n (dragStart)=\"dragStart($event)\" (dragMove)=\"onDragMove($event)\" (keydown)=\"onKeyDown($event)\"\n [ngClass]=\"{\n 'igx-advanced-filter': true,\n 'igx-advanced-filter--inline': inline\n }\">\n <igx-query-builder #queryBuilder\n [locale]=\"grid.locale\"\n [entities]=\"generateEntity()\"\n [resourceStrings]=\"queryBuilderResourceStrings\"\n [expressionTree]=\"this.grid.advancedFilteringExpressionsTree\">\n <igx-query-builder-header\n [title]=\"grid.resourceStrings.igx_grid_advanced_filter_title!\"\n igxDragHandle>\n </igx-query-builder-header>\n </igx-query-builder>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button igxButton=\"flat\" type=\"button\"\n (click)=\"onClearButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button igxButton=\"outlined\" type=\"button\" (click)=\"cancelChanges()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button igxButton=\"contained\" type=\"button\"\n (click)=\"onApplyButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n </article>\n}\n", dependencies: [{ kind: "directive", type: IgxDragDirective, selector: "[igxDrag]", inputs: ["igxDrag", "dragTolerance", "dragDirection", "dragChannel", "ghost", "ghostClass", "ghostClasses", "ghostStyle", "ghostTemplate", "ghostHost", "scrollContainer", "ghostOffsetX", "ghostOffsetY"], outputs: ["dragStart", "dragMove", "dragEnd", "dragClick", "ghostCreate", "ghostDestroy", "transitioned"], exportAs: ["drag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxQueryBuilderComponent, selector: "igx-query-builder", inputs: ["showEntityChangeDialog", "entities", "fields", "expressionTree", "locale", "resourceStrings", "disableEntityChange", "searchValueTemplate", "disableReturnFieldsChange"], outputs: ["expressionTreeChange"] }, { kind: "component", type: IgxQueryBuilderHeaderComponent, selector: "igx-query-builder-header", inputs: ["title", "showLegend", "resourceStrings"] }, { kind: "directive", type: IgxDragHandleDirective, selector: "[igxDragHandle]" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
7668
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxAdvancedFilteringDialogComponent, isStandalone: true, selector: "igx-advanced-filtering-dialog", inputs: { grid: "grid" }, host: { properties: { "style.display": "this.display" } }, viewQueries: [{ propertyName: "queryBuilder", first: true, predicate: ["queryBuilder"], descendants: true, read: IgxQueryBuilderComponent }], ngImport: i0, template: "@if (grid) {\n <article class=\"igx-advanced-filter\" igxDrag [ghost]=\"false\" [dragTolerance]=\"0\"\n (dragStart)=\"dragStart($event)\" (dragMove)=\"onDragMove($event)\" (keydown)=\"onKeyDown($event)\"\n [ngClass]=\"{\n 'igx-advanced-filter': true,\n 'igx-advanced-filter--inline': inline\n }\">\n <igx-query-builder #queryBuilder\n [locale]=\"grid.locale\"\n [entities]=\"generateEntity()\"\n [resourceStrings]=\"queryBuilderResourceStrings\"\n [expressionTree]=\"this.grid.advancedFilteringExpressionsTree\">\n <igx-query-builder-header\n [title]=\"grid.resourceStrings.igx_grid_advanced_filter_title\"\n igxDragHandle>\n </igx-query-builder-header>\n </igx-query-builder>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button igxButton=\"flat\" type=\"button\"\n (click)=\"onClearButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button igxButton=\"outlined\" type=\"button\" (click)=\"cancelChanges()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button igxButton=\"contained\" type=\"button\"\n (click)=\"onApplyButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n </article>\n}\n", dependencies: [{ kind: "directive", type: IgxDragDirective, selector: "[igxDrag]", inputs: ["igxDrag", "dragTolerance", "dragDirection", "dragChannel", "ghost", "ghostClass", "ghostClasses", "ghostStyle", "ghostTemplate", "ghostHost", "scrollContainer", "ghostOffsetX", "ghostOffsetY"], outputs: ["dragStart", "dragMove", "dragEnd", "dragClick", "ghostCreate", "ghostDestroy", "transitioned"], exportAs: ["drag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxQueryBuilderComponent, selector: "igx-query-builder", inputs: ["showEntityChangeDialog", "entities", "fields", "expressionTree", "locale", "resourceStrings", "disableEntityChange", "searchValueTemplate", "disableReturnFieldsChange"], outputs: ["expressionTreeChange"] }, { kind: "component", type: IgxQueryBuilderHeaderComponent, selector: "igx-query-builder-header", inputs: ["title", "showLegend", "resourceStrings"] }, { kind: "directive", type: IgxDragHandleDirective, selector: "[igxDragHandle]" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
7373
7669
  }
7374
7670
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxAdvancedFilteringDialogComponent, decorators: [{
7375
7671
  type: Component,
7376
- args: [{ selector: 'igx-advanced-filtering-dialog', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxDragDirective, NgClass, IgxQueryBuilderComponent, IgxQueryBuilderHeaderComponent, IgxDragHandleDirective, IgxButtonDirective], template: "@if (grid) {\n <article class=\"igx-advanced-filter\" igxDrag [ghost]=\"false\" [dragTolerance]=\"0\"\n (dragStart)=\"dragStart($event)\" (dragMove)=\"onDragMove($event)\" (keydown)=\"onKeyDown($event)\"\n [ngClass]=\"{\n 'igx-advanced-filter': true,\n 'igx-advanced-filter--inline': inline\n }\">\n <igx-query-builder #queryBuilder\n [locale]=\"grid.locale\"\n [entities]=\"generateEntity()\"\n [resourceStrings]=\"queryBuilderResourceStrings\"\n [expressionTree]=\"this.grid.advancedFilteringExpressionsTree\">\n <igx-query-builder-header\n [title]=\"grid.resourceStrings.igx_grid_advanced_filter_title!\"\n igxDragHandle>\n </igx-query-builder-header>\n </igx-query-builder>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button igxButton=\"flat\" type=\"button\"\n (click)=\"onClearButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button igxButton=\"outlined\" type=\"button\" (click)=\"cancelChanges()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button igxButton=\"contained\" type=\"button\"\n (click)=\"onApplyButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n </article>\n}\n" }]
7672
+ args: [{ selector: 'igx-advanced-filtering-dialog', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxDragDirective, NgClass, IgxQueryBuilderComponent, IgxQueryBuilderHeaderComponent, IgxDragHandleDirective, IgxButtonDirective], template: "@if (grid) {\n <article class=\"igx-advanced-filter\" igxDrag [ghost]=\"false\" [dragTolerance]=\"0\"\n (dragStart)=\"dragStart($event)\" (dragMove)=\"onDragMove($event)\" (keydown)=\"onKeyDown($event)\"\n [ngClass]=\"{\n 'igx-advanced-filter': true,\n 'igx-advanced-filter--inline': inline\n }\">\n <igx-query-builder #queryBuilder\n [locale]=\"grid.locale\"\n [entities]=\"generateEntity()\"\n [resourceStrings]=\"queryBuilderResourceStrings\"\n [expressionTree]=\"this.grid.advancedFilteringExpressionsTree\">\n <igx-query-builder-header\n [title]=\"grid.resourceStrings.igx_grid_advanced_filter_title\"\n igxDragHandle>\n </igx-query-builder-header>\n </igx-query-builder>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button igxButton=\"flat\" type=\"button\"\n (click)=\"onClearButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button igxButton=\"outlined\" type=\"button\" (click)=\"cancelChanges()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button igxButton=\"contained\" type=\"button\"\n (click)=\"onApplyButtonClick($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n </article>\n}\n" }]
7377
7673
  }], ctorParameters: () => [], propDecorators: { queryBuilder: [{
7378
7674
  type: ViewChild,
7379
7675
  args: ['queryBuilder', { read: IgxQueryBuilderComponent }]
@@ -7588,7 +7884,7 @@ class IgxExcelStyleDefaultExpressionComponent {
7588
7884
  }
7589
7885
  }
7590
7886
  isConditionSelected(conditionName) {
7591
- return (this.expressionUI.expression.condition && this.expressionUI.expression.condition.name === conditionName);
7887
+ return this.expressionUI.expression.condition && this.expressionUI.expression.condition.name === conditionName;
7592
7888
  }
7593
7889
  onConditionsChanged(eventArgs) {
7594
7890
  const value = eventArgs.newSelection.value;
@@ -7605,8 +7901,7 @@ class IgxExcelStyleDefaultExpressionComponent {
7605
7901
  return this.grid.resourceStrings[`igx_grid_filter_${name}`] || name;
7606
7902
  }
7607
7903
  updateSearchValueOnBlur(eventArgs) {
7608
- const target = eventArgs.target;
7609
- this.expressionUI.expression.searchVal = DataUtil.parseValue(this.column.dataType, target.value);
7904
+ this.expressionUI.expression.searchVal = DataUtil.parseValue(this.column.dataType, eventArgs.target.value);
7610
7905
  }
7611
7906
  onLogicOperatorButtonClicked(eventArgs, buttonIndex) {
7612
7907
  if (this.logicOperatorButtonGroup.selectedButtons.length === 0) {
@@ -7636,11 +7931,11 @@ class IgxExcelStyleDefaultExpressionComponent {
7636
7931
  event.preventDefault();
7637
7932
  }
7638
7933
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDefaultExpressionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7639
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleDefaultExpressionComponent, isStandalone: true, selector: "igx-excel-style-default-expression", inputs: { column: "column", expressionUI: "expressionUI", expressionsList: "expressionsList", grid: "grid" }, outputs: { expressionRemoved: "expressionRemoved", logicOperatorChanged: "logicOperatorChanged" }, viewQueries: [{ propertyName: "overlayOutlet", first: true, predicate: ["overlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dropdownConditions", first: true, predicate: ["dropdownConditions"], descendants: true, read: IgxSelectComponent, static: true }, { propertyName: "logicOperatorButtonGroup", first: true, predicate: ["logicOperatorButtonGroup"], descendants: true, read: IgxButtonGroupComponent }, { propertyName: "inputValuesDirective", first: true, predicate: ["inputValues"], descendants: true, read: IgxInputDirective, static: true }], ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n }\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"!!(expressionUI.expression.condition && expressionUI.expression.condition.isUnary)\"\n autocomplete=\"off\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n (blur)=\"updateSearchValueOnBlur($event)\"\n />\n @if (column.dataType === 'percent' && (expressionUI.expression.searchVal || expressionUI.expression.searchVal === 0)) {\n <igx-suffix>\n <span class=\"igx-grid__filtering-row-percent-hint\">{{ expressionUI.expression.searchVal | percent:column.pipeArgs.digitsInfo:grid.locale }}</span>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span igxButton\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span igxButton\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }, { kind: "pipe", type: IgxPercentFormatterPipe, name: "percent" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
7934
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleDefaultExpressionComponent, isStandalone: true, selector: "igx-excel-style-default-expression", inputs: { column: "column", expressionUI: "expressionUI", expressionsList: "expressionsList", grid: "grid" }, outputs: { expressionRemoved: "expressionRemoved", logicOperatorChanged: "logicOperatorChanged" }, viewQueries: [{ propertyName: "overlayOutlet", first: true, predicate: ["overlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dropdownConditions", first: true, predicate: ["dropdownConditions"], descendants: true, read: IgxSelectComponent, static: true }, { propertyName: "logicOperatorButtonGroup", first: true, predicate: ["logicOperatorButtonGroup"], descendants: true, read: IgxButtonGroupComponent }, { propertyName: "inputValuesDirective", first: true, predicate: ["inputValues"], descendants: true, read: IgxInputDirective, static: true }], ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n }\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n autocomplete=\"off\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n (blur)=\"updateSearchValueOnBlur($event)\"\n />\n @if (column.dataType === 'percent' && (expressionUI.expression.searchVal || expressionUI.expression.searchVal === 0)) {\n <igx-suffix>\n <span class=\"igx-grid__filtering-row-percent-hint\">{{ expressionUI.expression.searchVal | percent:column.pipeArgs.digitsInfo:grid.locale }}</span>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span igxButton\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span igxButton\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }, { kind: "pipe", type: IgxPercentFormatterPipe, name: "percent" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
7640
7935
  }
7641
7936
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDefaultExpressionComponent, decorators: [{
7642
7937
  type: Component,
7643
- args: [{ selector: 'igx-excel-style-default-expression', changeDetection: ChangeDetectionStrategy.Eager, imports: [FormsModule, IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxSuffixDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective, IgxPercentFormatterPipe], template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n }\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"!!(expressionUI.expression.condition && expressionUI.expression.condition.isUnary)\"\n autocomplete=\"off\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n (blur)=\"updateSearchValueOnBlur($event)\"\n />\n @if (column.dataType === 'percent' && (expressionUI.expression.searchVal || expressionUI.expression.searchVal === 0)) {\n <igx-suffix>\n <span class=\"igx-grid__filtering-row-percent-hint\">{{ expressionUI.expression.searchVal | percent:column.pipeArgs.digitsInfo:grid.locale }}</span>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span igxButton\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span igxButton\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
7938
+ args: [{ selector: 'igx-excel-style-default-expression', changeDetection: ChangeDetectionStrategy.Eager, imports: [FormsModule, IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxSuffixDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective, IgxPercentFormatterPipe], template: "<igx-select #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"default\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n }\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n autocomplete=\"off\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n (blur)=\"updateSearchValueOnBlur($event)\"\n />\n @if (column.dataType === 'percent' && (expressionUI.expression.searchVal || expressionUI.expression.searchVal === 0)) {\n <igx-suffix>\n <span class=\"igx-grid__filtering-row-percent-hint\">{{ expressionUI.expression.searchVal | percent:column.pipeArgs.digitsInfo:grid.locale }}</span>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span igxButton\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span igxButton\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
7644
7939
  }], propDecorators: { column: [{
7645
7940
  type: Input
7646
7941
  }], expressionUI: [{
@@ -7694,11 +7989,11 @@ class IgxExcelStyleDateExpressionComponent extends IgxExcelStyleDefaultExpressio
7694
7989
  return this.i18nFormatter.getLocaleFirstDayOfWeek(this.grid.locale);
7695
7990
  }
7696
7991
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7697
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleDateExpressionComponent, isStandalone: true, selector: "igx-excel-style-date-expression", inputs: { searchVal: "searchVal" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-select\n #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\"\n>\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span>{{ translateCondition(condition) }}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker\n #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputDatePlaceholder\"\n [formatter]=\"column.formatter!\"\n [disabled]=\"!!(\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n )\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n}\n\n@if (column.dataType === 'time') {\n <igx-time-picker\n #picker\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [formatter]=\"column.formatter!\"\n [disabled]=\"!!(\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n )\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n}\n\n@if (column.dataType === 'dateTime') {\n <igx-input-group #dropDownTarget #inputGroup type=\"box\">\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [locale]=\"column.grid.locale\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat!\"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [(ngModel)]=\"searchVal\"\n [disabled]=\"!!(\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n )\"\n />\n </igx-input-group>\n}\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span\n igxButton\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span\n igxButton\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div\n #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
7992
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleDateExpressionComponent, isStandalone: true, selector: "igx-excel-style-date-expression", inputs: { searchVal: "searchVal" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-select\n #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\"\n>\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span>{{ translateCondition(condition) }}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker\n #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputDatePlaceholder\"\n [formatter]=\"column.formatter\"\n [disabled]=\"\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n \"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n}\n\n@if (column.dataType === 'time') {\n <igx-time-picker\n #picker\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [formatter]=\"column.formatter\"\n [disabled]=\"\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n \"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n}\n\n@if (column.dataType === 'dateTime') {\n <igx-input-group #dropDownTarget #inputGroup type=\"box\">\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [locale]=\"column.grid.locale\"\n [igxDateTimeEditor]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format\"\n [(ngModel)]=\"searchVal\"\n [disabled]=\"\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n \"\n />\n </igx-input-group>\n}\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span\n igxButton\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span\n igxButton\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div\n #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
7698
7993
  }
7699
7994
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, decorators: [{
7700
7995
  type: Component,
7701
- args: [{ selector: 'igx-excel-style-date-expression', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective], template: "<igx-select\n #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\"\n>\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span>{{ translateCondition(condition) }}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker\n #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputDatePlaceholder\"\n [formatter]=\"column.formatter!\"\n [disabled]=\"!!(\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n )\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n}\n\n@if (column.dataType === 'time') {\n <igx-time-picker\n #picker\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [formatter]=\"column.formatter!\"\n [disabled]=\"!!(\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n )\"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n}\n\n@if (column.dataType === 'dateTime') {\n <igx-input-group #dropDownTarget #inputGroup type=\"box\">\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [locale]=\"column.grid.locale\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat!\"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [(ngModel)]=\"searchVal\"\n [disabled]=\"!!(\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n )\"\n />\n </igx-input-group>\n}\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span\n igxButton\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span\n igxButton\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div\n #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n" }]
7996
+ args: [{ selector: 'igx-excel-style-date-expression', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective], template: "<igx-select\n #dropdownConditions\n type=\"box\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\"\n>\n <igx-prefix>\n @if (expressionUI.expression.condition) {\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n }\n @if (!expressionUI.expression.condition) {\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n }\n </igx-prefix>\n @for (condition of conditions; track condition) {\n <igx-select-item\n [value]=\"condition\"\n [text]=\"getConditionFriendlyName(condition)\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span>{{ translateCondition(condition) }}</span>\n </igx-select-item>\n }\n</igx-select>\n\n@if (column.dataType === 'date') {\n <igx-date-picker\n #picker\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputDatePlaceholder\"\n [formatter]=\"column.formatter\"\n [disabled]=\"\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n \"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n}\n\n@if (column.dataType === 'time') {\n <igx-time-picker\n #picker\n [(ngModel)]=\"searchVal\"\n [locale]=\"grid.locale\"\n (click)=\"picker.open()\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [formatter]=\"column.formatter\"\n [disabled]=\"\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n \"\n type=\"box\"\n >\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n}\n\n@if (column.dataType === 'dateTime') {\n <igx-input-group #dropDownTarget #inputGroup type=\"box\">\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [locale]=\"column.grid.locale\"\n [igxDateTimeEditor]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format\"\n [(ngModel)]=\"searchVal\"\n [disabled]=\"\n expressionUI.expression.condition &&\n expressionUI.expression.condition.isUnary\n \"\n />\n </igx-input-group>\n}\n\n@if (!isSingle) {\n <button type=\"button\" (click)=\"onRemoveButtonClick()\" igxIconButton=\"flat\">\n <igx-icon family=\"default\" name=\"remove\"></igx-icon>\n </button>\n}\n\n@if (!isLast) {\n <igx-buttongroup #logicOperatorButtonGroup>\n <span\n igxButton\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n <span\n igxButton\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\"\n >\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n </igx-buttongroup>\n}\n\n<div\n #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\"\n></div>\n" }]
7702
7997
  }], propDecorators: { input: [{
7703
7998
  type: ViewChild,
7704
7999
  args: ['input', { read: IgxInputDirective, static: false }]
@@ -8058,9 +8353,9 @@ class IgxExcelStyleConditionalFilterComponent {
8058
8353
  */
8059
8354
  showCustomFilterItem() {
8060
8355
  const exprTree = this.esf.column.filteringExpressionsTree;
8061
- return (exprTree && exprTree.filteringOperands && exprTree.filteringOperands.length &&
8356
+ return exprTree && exprTree.filteringOperands && exprTree.filteringOperands.length &&
8062
8357
  !(exprTree.filteringOperands[0].condition &&
8063
- exprTree.filteringOperands[0].condition.name === 'in'));
8358
+ exprTree.filteringOperands[0].condition.name === 'in');
8064
8359
  }
8065
8360
  /**
8066
8361
  * @hidden @internal
@@ -8107,11 +8402,11 @@ class IgxExcelStyleHeaderComponent {
8107
8402
  this.esf = inject(BaseFilteringComponent);
8108
8403
  }
8109
8404
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleHeaderComponent, isStandalone: true, selector: "igx-excel-style-header", inputs: { showPinning: ["showPinning", "showPinning", booleanAttribute], showSelecting: ["showSelecting", "showSelecting", booleanAttribute], showHiding: ["showHiding", "showHiding", booleanAttribute] }, ngImport: i0, template: "@if (esf.column) {\n <header class=\"igx-excel-filter__menu-header\">\n <h4 data-no-typography>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n @if (showSelecting) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onSelect($event)\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </button>\n }\n @if (showPinning) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.pinned ? 'unpin' : 'pin'\"></igx-icon>\n </button>\n }\n @if (showHiding) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.hidden ? 'show' : 'hide'\"></igx-icon>\n </button>\n }\n </div>\n </header>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
8405
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleHeaderComponent, isStandalone: true, selector: "igx-excel-style-header", inputs: { showPinning: ["showPinning", "showPinning", booleanAttribute], showSelecting: ["showSelecting", "showSelecting", booleanAttribute], showHiding: ["showHiding", "showHiding", booleanAttribute] }, ngImport: i0, template: "@if (esf.column) {\n <header class=\"igx-excel-filter__menu-header\">\n <h4 data-no-typography>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n @if (showSelecting) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </button>\n }\n @if (showPinning) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.pinned ? 'unpin' : 'pin'\"></igx-icon>\n </button>\n }\n @if (showHiding) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.hidden ? 'show' : 'hide'\"></igx-icon>\n </button>\n }\n </div>\n </header>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
8111
8406
  }
8112
8407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleHeaderComponent, decorators: [{
8113
8408
  type: Component,
8114
- args: [{ selector: 'igx-excel-style-header', changeDetection: ChangeDetectionStrategy.Eager, imports: [NgClass, IgxIconComponent, IgxIconButtonDirective], template: "@if (esf.column) {\n <header class=\"igx-excel-filter__menu-header\">\n <h4 data-no-typography>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n @if (showSelecting) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onSelect($event)\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </button>\n }\n @if (showPinning) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.pinned ? 'unpin' : 'pin'\"></igx-icon>\n </button>\n }\n @if (showHiding) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.hidden ? 'show' : 'hide'\"></igx-icon>\n </button>\n }\n </div>\n </header>\n}\n" }]
8409
+ args: [{ selector: 'igx-excel-style-header', changeDetection: ChangeDetectionStrategy.Eager, imports: [NgClass, IgxIconComponent, IgxIconButtonDirective], template: "@if (esf.column) {\n <header class=\"igx-excel-filter__menu-header\">\n <h4 data-no-typography>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n @if (showSelecting) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </button>\n }\n @if (showPinning) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.pinned ? 'unpin' : 'pin'\"></igx-icon>\n </button>\n }\n @if (showHiding) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.hidden ? 'show' : 'hide'\"></igx-icon>\n </button>\n }\n </div>\n </header>\n}\n" }]
8115
8410
  }], propDecorators: { showPinning: [{
8116
8411
  type: Input,
8117
8412
  args: [{ transform: booleanAttribute }]
@@ -8150,7 +8445,7 @@ class IgxExcelStyleMovingComponent {
8150
8445
  this.defaultClass = true;
8151
8446
  }
8152
8447
  get visibleColumns() {
8153
- return this.esf.grid.visibleColumns.filter((col) => !col.columnGroup);
8448
+ return this.esf.grid.visibleColumns.filter(col => !col.columnGroup);
8154
8449
  }
8155
8450
  /**
8156
8451
  * @hidden @internal
@@ -8202,9 +8497,7 @@ class IgxExcelStyleMovingComponent {
8202
8497
  else {
8203
8498
  targetColumn = this.findColumn(moveDirection, this.esf.grid.unpinnedColumns);
8204
8499
  }
8205
- if (targetColumn) {
8206
- this.esf.grid.moveColumn(this.esf.column, targetColumn, moveDirection);
8207
- }
8500
+ this.esf.grid.moveColumn(this.esf.column, targetColumn, moveDirection);
8208
8501
  }
8209
8502
  get esfSize() {
8210
8503
  const esf = this.esf;
@@ -8355,10 +8648,6 @@ class IgxExcelStyleSearchComponent {
8355
8648
  * @hidden @internal
8356
8649
  */
8357
8650
  this.displayedListData = [];
8358
- /**
8359
- * @hidden @internal
8360
- */
8361
- this.matchesCount = 0;
8362
8651
  this.activeDescendant = '';
8363
8652
  this._id = `igx-excel-style-search-${NEXT_ID++}`;
8364
8653
  this._isLoading = true;
@@ -8765,7 +9054,7 @@ class IgxExcelStyleSearchComponent {
8765
9054
  if (this.esf.column.filteringIgnoreCase && !this.isHierarchical() && !this.isTreeGridWithGroupBy() && !this.isRemote()) {
8766
9055
  const selectedValues = new Set(selectedItems.map(item => item.value.toLowerCase()));
8767
9056
  searchVal = new Set();
8768
- this.esf.grid.data?.forEach((item) => {
9057
+ this.esf.grid.data.forEach(item => {
8769
9058
  const fieldPaths = columnFieldPath(this.esf.column.field);
8770
9059
  const itemValue = resolveNestedPath(item, fieldPaths);
8771
9060
  if (typeof itemValue === "string" && selectedValues.has(itemValue.toLowerCase())) {
@@ -9036,11 +9325,11 @@ class IgxExcelStyleSearchComponent {
9036
9325
  return this.esf.grid.verticalScrollContainer.isRemote || this.esf.grid.pagingMode === GridPagingMode.Remote;
9037
9326
  }
9038
9327
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9039
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleSearchComponent, isStandalone: true, selector: "igx-excel-style-search", inputs: { id: "id" }, host: { properties: { "class.igx-excel-filter__menu-main": "this.defaultClass", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective, static: true }, { propertyName: "cancelButton", first: true, predicate: ["cancelButton"], descendants: true, read: IgxButtonDirective, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, read: IgxListComponent }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true, read: IgxCheckboxComponent }, { propertyName: "addToCurrentFilterCheckbox", first: true, predicate: ["addToCurrentFilterCheckbox"], descendants: true, read: IgxCheckboxComponent }, { propertyName: "tree", first: true, predicate: ["tree"], descendants: true, read: IgxTreeComponent }, { propertyName: "virtDir", first: true, predicate: IgxForOfDirective, descendants: true }, { propertyName: "defaultExcelStyleLoadingValuesTemplate", first: true, predicate: ["defaultExcelStyleLoadingValuesTemplate"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<igx-input-group type=\"box\">\n <igx-icon igxPrefix family=\"default\" name=\"search\"></igx-icon>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [(ngModel)]=\"searchValue\"\n (ngModelChange)=\"filterListData()\"\n (keydown)=\"onInputKeyDown($event)\"\n [placeholder]=\"\n esf.column?.grid.resourceStrings.igx_grid_excel_search_placeholder\n \"\n autocomplete=\"off\"\n />\n @if (searchValue || searchValue === 0) {\n <igx-suffix>\n <igx-icon\n family=\"default\"\n name=\"input_clear\"\n (click)=\"clearInput()\"\n tabindex=\"0\"\n >\n </igx-icon>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isHierarchical()) {\n <igx-list\n #list\n role=\"listbox\"\n [isLoading]=\"isLoading\"\n (keydown)=\"handleKeyDown($event)\"\n tabindex=\"0\"\n [attr.aria-activedescendant]=\"this.activeDescendant\"\n (focus)=\"onFocus()\"\n (focusout)=\"onFocusOut()\"\n >\n <div style=\"overflow: hidden; position: relative\">\n <igx-list-item\n [class.igx-list__item-base--active]=\"\n focusedItem?.id === this.getItemId(i)\n \"\n [attr.id]=\"getItemId(i)\"\n role=\"option\"\n *igxFor=\"\n let item of displayedListData;\n index as i;\n scrollOrientation: 'vertical';\n containerSize: containerSize;\n itemSize: itemSize\n \"\n >\n <igx-checkbox\n [value]=\"item\"\n [tabindex]=\"-1\"\n [checked]=\"$safeNavigationMigration(item?.isSelected)\"\n [disableRipple]=\"true\"\n [indeterminate]=\"$safeNavigationMigration(item?.indeterminate)\"\n [disableTransitions]=\"true\"\n (change)=\"onCheckboxChange($event)\"\n >\n {{ item.label }}\n </igx-checkbox>\n </igx-list-item>\n </div>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n <ng-template igxEmptyList>\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n </ng-template>\n <div\n class=\"igx-excel-filter__filter-results\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{\n esf.grid?.resourceStrings.igx_grid_excel_matches_count ? \n esf.grid?.resourceStrings.igx_grid_excel_matches_count.replace(\n '{0}',\n matchesCount.toString()\n ) : ''\n }}\n </div>\n </igx-list>\n}\n\n@if (isHierarchical()) {\n <div class=\"igx-excel-filter__tree\">\n @if (!isTreeEmpty()) {\n <div class=\"igx-excel-filter__tree-alike\">\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #selectAllCheckbox\n [value]=\"selectAllItem\"\n [checked]=\"selectAllItem?.isSelected\"\n [disableRipple]=\"true\"\n [indeterminate]=\"selectAllItem?.indeterminate\"\n [disableTransitions]=\"true\"\n (change)=\"onSelectAllCheckboxChange($event)\"\n >\n {{ selectAllItem.label }}\n </igx-checkbox>\n </div>\n @if (searchValue) {\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #addToCurrentFilterCheckbox\n [value]=\"addToCurrentFilterItem\"\n [checked]=\"addToCurrentFilterItem.isSelected\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"true\"\n >\n {{ addToCurrentFilterItem.label }}\n </igx-checkbox>\n </div>\n }\n </div>\n }\n <igx-tree\n #tree\n selection=\"Cascading\"\n (nodeSelection)=\"onNodeSelectionChange($event)\"\n >\n @for (item of displayedListData; track item.value) {\n <igx-tree-node [data]=\"item\" [selected]=\"item.isSelected\">\n <div>{{ item.label }}</div>\n @for (childLevel1 of item.children; track childLevel1.value) {\n <igx-tree-node\n [data]=\"childLevel1\"\n [selected]=\"childLevel1.isSelected\"\n >\n <div>{{ childLevel1.label }}</div>\n @for (\n childLevel2 of childLevel1.children;\n track childLevel2.value\n ) {\n <igx-tree-node\n [data]=\"childLevel2\"\n [selected]=\"childLevel2.isSelected\"\n >\n <div>{{ childLevel2.label }}</div>\n @for (\n childLevel3 of childLevel2.children;\n track childLevel3.value\n ) {\n <igx-tree-node\n [data]=\"childLevel3\"\n [selected]=\"childLevel3.isSelected\"\n >\n <div>{{ childLevel3.label }}</div>\n @for (\n childLevel4 of childLevel3.children;\n track childLevel4.value\n ) {\n <igx-tree-node\n [data]=\"childLevel4\"\n [selected]=\"childLevel4.isSelected\"\n >\n <div>{{ childLevel4.label }}</div>\n @for (\n childLevel5 of childLevel4.children;\n track childLevel5.value\n ) {\n <igx-tree-node\n [data]=\"childLevel5\"\n [selected]=\"childLevel5.isSelected\"\n >\n <div>{{ childLevel5.label }}</div>\n @for (\n childLevel6 of childLevel5.children;\n track childLevel6.value\n ) {\n <igx-tree-node\n [data]=\"childLevel6\"\n [selected]=\"childLevel6.isSelected\"\n >\n <div>{{ childLevel6.label }}</div>\n @for (\n childLevel7 of childLevel6.children;\n track childLevel7.value\n ) {\n <igx-tree-node\n [data]=\"childLevel7\"\n [selected]=\"childLevel7.isSelected\"\n >\n <div>{{ childLevel7.label }}</div>\n @for (\n childLevel8 of childLevel7.children;\n track childLevel8.value\n ) {\n <igx-tree-node\n [data]=\"childLevel8\"\n [selected]=\"childLevel8.isSelected\"\n >\n <div>{{ childLevel8.label }}</div>\n @for (\n childLevel9 of childLevel8.children;\n track childLevel9.value\n ) {\n <igx-tree-node\n [data]=\"childLevel9\"\n [selected]=\"\n childLevel9.isSelected\n \"\n >\n <div>{{ childLevel9.label }}</div>\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n @if (isTreeEmpty()) {\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n }\n </div>\n}\n\n<ng-template #emptySearch>\n <div class=\"igx-excel-filter__empty\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_no_matches }}\n </div>\n</ng-template>\n\n<ng-template #defaultExcelStyleLoadingValuesTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n</ng-template>\n\n<footer class=\"igx-excel-filter__menu-footer\">\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\" #cancelButton igxButton=\"flat\" (click)=\"esf.cancel()\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button\n type=\"button\"\n igxButton=\"contained\"\n [disabled]=\"applyButtonDisabled\"\n (click)=\"applyFilter()\"\n >\n {{ esf.grid?.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n</footer>\n", dependencies: [{ kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxListComponent, selector: "igx-list", inputs: ["panEndTriggeringThreshold", "id", "allowLeftPanning", "allowRightPanning", "isLoading", "resourceStrings", "role"], outputs: ["leftPan", "rightPan", "startPan", "endPan", "resetPan", "panStateChange", "itemClicked"] }, { kind: "directive", type: IgxForOfDirective, selector: "[igxFor][igxForOf]", inputs: ["igxForOf", "igxForSizePropName", "igxForScrollOrientation", "igxForScrollContainer", "igxForContainerSize", "igxForInitialChunkSize", "igxForItemSize", "igxForTotalItemCount", "igxForTrackBy"], outputs: ["chunkLoad", "scrollbarVisibilityChanged", "chunkSizeChange", "contentSizeChange", "dataChanged", "beforeViewDestroyed", "chunkPreload"] }, { kind: "component", type: IgxListItemComponent, selector: "igx-list-item", inputs: ["isHeader", "hidden", "index", "role", "selected"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "directive", type: IgxDataLoadingTemplateDirective, selector: "[igxDataLoading]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxEmptyListTemplateDirective, selector: "[igxEmptyList]" }, { kind: "component", type: IgxTreeComponent, selector: "igx-tree", inputs: ["selection", "singleBranchExpand", "toggleNodeOnClick", "animationSettings"], outputs: ["nodeSelection", "nodeExpanding", "nodeExpanded", "nodeCollapsing", "nodeCollapsed", "activeNodeChanged"] }, { kind: "component", type: IgxTreeNodeComponent, selector: "igx-tree-node", inputs: ["data", "loading", "resourceStrings", "active", "disabled", "selected", "expanded"], outputs: ["selectedChange", "expandedChange"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "textVisibility", "type"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
9328
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleSearchComponent, isStandalone: true, selector: "igx-excel-style-search", inputs: { id: "id" }, host: { properties: { "class.igx-excel-filter__menu-main": "this.defaultClass", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective, static: true }, { propertyName: "cancelButton", first: true, predicate: ["cancelButton"], descendants: true, read: IgxButtonDirective, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, read: IgxListComponent }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true, read: IgxCheckboxComponent }, { propertyName: "addToCurrentFilterCheckbox", first: true, predicate: ["addToCurrentFilterCheckbox"], descendants: true, read: IgxCheckboxComponent }, { propertyName: "tree", first: true, predicate: ["tree"], descendants: true, read: IgxTreeComponent }, { propertyName: "virtDir", first: true, predicate: IgxForOfDirective, descendants: true }, { propertyName: "defaultExcelStyleLoadingValuesTemplate", first: true, predicate: ["defaultExcelStyleLoadingValuesTemplate"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<igx-input-group type=\"box\">\n <igx-icon igxPrefix family=\"default\" name=\"search\"></igx-icon>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [(ngModel)]=\"searchValue\"\n (ngModelChange)=\"filterListData()\"\n (keydown)=\"onInputKeyDown($event)\"\n [placeholder]=\"\n esf.column?.grid.resourceStrings.igx_grid_excel_search_placeholder\n \"\n autocomplete=\"off\"\n />\n @if (searchValue || searchValue === 0) {\n <igx-suffix>\n <igx-icon\n family=\"default\"\n name=\"input_clear\"\n (click)=\"clearInput()\"\n tabindex=\"0\"\n >\n </igx-icon>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isHierarchical()) {\n <igx-list\n #list\n role=\"listbox\"\n [isLoading]=\"isLoading\"\n (keydown)=\"handleKeyDown($event)\"\n tabindex=\"0\"\n [attr.aria-activedescendant]=\"this.activeDescendant\"\n (focus)=\"onFocus()\"\n (focusout)=\"onFocusOut()\"\n >\n <div style=\"overflow: hidden; position: relative\">\n <igx-list-item\n [class.igx-list__item-base--active]=\"\n focusedItem?.id === this.getItemId(i)\n \"\n [attr.id]=\"getItemId(i)\"\n role=\"option\"\n *igxFor=\"\n let item of displayedListData;\n index as i;\n scrollOrientation: 'vertical';\n containerSize: containerSize;\n itemSize: itemSize\n \"\n >\n <igx-checkbox\n [value]=\"item\"\n [tabindex]=\"-1\"\n [checked]=\"$safeNavigationMigration(item?.isSelected)\"\n [disableRipple]=\"true\"\n [indeterminate]=\"$safeNavigationMigration(item?.indeterminate)\"\n [disableTransitions]=\"true\"\n (change)=\"onCheckboxChange($event)\"\n >\n {{ item.label }}\n </igx-checkbox>\n </igx-list-item>\n </div>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n <ng-template igxEmptyList>\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n </ng-template>\n <div\n class=\"igx-excel-filter__filter-results\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{\n esf.grid?.resourceStrings.igx_grid_excel_matches_count.replace(\n '{0}',\n matchesCount\n )\n }}\n </div>\n </igx-list>\n}\n\n@if (isHierarchical()) {\n <div class=\"igx-excel-filter__tree\">\n @if (!isTreeEmpty()) {\n <div class=\"igx-excel-filter__tree-alike\">\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #selectAllCheckbox\n [value]=\"selectAllItem\"\n [checked]=\"$safeNavigationMigration(selectAllItem?.isSelected)\"\n [disableRipple]=\"true\"\n [indeterminate]=\"\n $safeNavigationMigration(selectAllItem?.indeterminate)\n \"\n [disableTransitions]=\"true\"\n (change)=\"onSelectAllCheckboxChange($event)\"\n >\n {{ selectAllItem.label }}\n </igx-checkbox>\n </div>\n @if (searchValue) {\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #addToCurrentFilterCheckbox\n [value]=\"addToCurrentFilterItem\"\n [checked]=\"addToCurrentFilterItem.isSelected\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"true\"\n >\n {{ addToCurrentFilterItem.label }}\n </igx-checkbox>\n </div>\n }\n </div>\n }\n <igx-tree\n #tree\n selection=\"Cascading\"\n (nodeSelection)=\"onNodeSelectionChange($event)\"\n >\n @for (item of displayedListData; track item.value) {\n <igx-tree-node [data]=\"item\" [selected]=\"item.isSelected\">\n <div>{{ item.label }}</div>\n @for (childLevel1 of item.children; track childLevel1.value) {\n <igx-tree-node\n [data]=\"childLevel1\"\n [selected]=\"childLevel1.isSelected\"\n >\n <div>{{ childLevel1.label }}</div>\n @for (\n childLevel2 of childLevel1.children;\n track childLevel2.value\n ) {\n <igx-tree-node\n [data]=\"childLevel2\"\n [selected]=\"childLevel2.isSelected\"\n >\n <div>{{ childLevel2.label }}</div>\n @for (\n childLevel3 of childLevel2.children;\n track childLevel3.value\n ) {\n <igx-tree-node\n [data]=\"childLevel3\"\n [selected]=\"childLevel3.isSelected\"\n >\n <div>{{ childLevel3.label }}</div>\n @for (\n childLevel4 of childLevel3.children;\n track childLevel4.value\n ) {\n <igx-tree-node\n [data]=\"childLevel4\"\n [selected]=\"childLevel4.isSelected\"\n >\n <div>{{ childLevel4.label }}</div>\n @for (\n childLevel5 of childLevel4.children;\n track childLevel5.value\n ) {\n <igx-tree-node\n [data]=\"childLevel5\"\n [selected]=\"childLevel5.isSelected\"\n >\n <div>{{ childLevel5.label }}</div>\n @for (\n childLevel6 of childLevel5.children;\n track childLevel6.value\n ) {\n <igx-tree-node\n [data]=\"childLevel6\"\n [selected]=\"childLevel6.isSelected\"\n >\n <div>{{ childLevel6.label }}</div>\n @for (\n childLevel7 of childLevel6.children;\n track childLevel7.value\n ) {\n <igx-tree-node\n [data]=\"childLevel7\"\n [selected]=\"childLevel7.isSelected\"\n >\n <div>{{ childLevel7.label }}</div>\n @for (\n childLevel8 of childLevel7.children;\n track childLevel8.value\n ) {\n <igx-tree-node\n [data]=\"childLevel8\"\n [selected]=\"childLevel8.isSelected\"\n >\n <div>{{ childLevel8.label }}</div>\n @for (\n childLevel9 of childLevel8.children;\n track childLevel9.value\n ) {\n <igx-tree-node\n [data]=\"childLevel9\"\n [selected]=\"\n childLevel9.isSelected\n \"\n >\n <div>{{ childLevel9.label }}</div>\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n @if (isTreeEmpty()) {\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n }\n </div>\n}\n\n<ng-template #emptySearch>\n <div class=\"igx-excel-filter__empty\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_no_matches }}\n </div>\n</ng-template>\n\n<ng-template #defaultExcelStyleLoadingValuesTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n</ng-template>\n\n<footer class=\"igx-excel-filter__menu-footer\">\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\" #cancelButton igxButton=\"flat\" (click)=\"esf.cancel()\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button\n type=\"button\"\n igxButton=\"contained\"\n [disabled]=\"applyButtonDisabled\"\n (click)=\"applyFilter()\"\n >\n {{ esf.grid?.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n</footer>\n", dependencies: [{ kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxListComponent, selector: "igx-list", inputs: ["panEndTriggeringThreshold", "id", "allowLeftPanning", "allowRightPanning", "isLoading", "resourceStrings", "role"], outputs: ["leftPan", "rightPan", "startPan", "endPan", "resetPan", "panStateChange", "itemClicked"] }, { kind: "directive", type: IgxForOfDirective, selector: "[igxFor][igxForOf]", inputs: ["igxForOf", "igxForSizePropName", "igxForScrollOrientation", "igxForScrollContainer", "igxForContainerSize", "igxForInitialChunkSize", "igxForItemSize", "igxForTotalItemCount", "igxForTrackBy"], outputs: ["chunkLoad", "scrollbarVisibilityChanged", "chunkSizeChange", "contentSizeChange", "dataChanged", "beforeViewDestroyed", "chunkPreload"] }, { kind: "component", type: IgxListItemComponent, selector: "igx-list-item", inputs: ["isHeader", "hidden", "index", "role", "selected"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "directive", type: IgxDataLoadingTemplateDirective, selector: "[igxDataLoading]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxEmptyListTemplateDirective, selector: "[igxEmptyList]" }, { kind: "component", type: IgxTreeComponent, selector: "igx-tree", inputs: ["selection", "singleBranchExpand", "toggleNodeOnClick", "animationSettings"], outputs: ["nodeSelection", "nodeExpanding", "nodeExpanded", "nodeCollapsing", "nodeCollapsed", "activeNodeChanged"] }, { kind: "component", type: IgxTreeNodeComponent, selector: "igx-tree-node", inputs: ["data", "loading", "resourceStrings", "active", "disabled", "selected", "expanded"], outputs: ["selectedChange", "expandedChange"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "textVisibility", "type"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
9040
9329
  }
9041
9330
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSearchComponent, decorators: [{
9042
9331
  type: Component,
9043
- args: [{ selector: 'igx-excel-style-search', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxInputGroupComponent, IgxIconComponent, IgxPrefixDirective, FormsModule, IgxInputDirective, IgxSuffixDirective, IgxListComponent, IgxForOfDirective, IgxListItemComponent, IgxCheckboxComponent, IgxDataLoadingTemplateDirective, NgTemplateOutlet, IgxEmptyListTemplateDirective, IgxTreeComponent, IgxTreeNodeComponent, IgxCircularProgressBarComponent, IgxButtonDirective], template: "<igx-input-group type=\"box\">\n <igx-icon igxPrefix family=\"default\" name=\"search\"></igx-icon>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [(ngModel)]=\"searchValue\"\n (ngModelChange)=\"filterListData()\"\n (keydown)=\"onInputKeyDown($event)\"\n [placeholder]=\"\n esf.column?.grid.resourceStrings.igx_grid_excel_search_placeholder\n \"\n autocomplete=\"off\"\n />\n @if (searchValue || searchValue === 0) {\n <igx-suffix>\n <igx-icon\n family=\"default\"\n name=\"input_clear\"\n (click)=\"clearInput()\"\n tabindex=\"0\"\n >\n </igx-icon>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isHierarchical()) {\n <igx-list\n #list\n role=\"listbox\"\n [isLoading]=\"isLoading\"\n (keydown)=\"handleKeyDown($event)\"\n tabindex=\"0\"\n [attr.aria-activedescendant]=\"this.activeDescendant\"\n (focus)=\"onFocus()\"\n (focusout)=\"onFocusOut()\"\n >\n <div style=\"overflow: hidden; position: relative\">\n <igx-list-item\n [class.igx-list__item-base--active]=\"\n focusedItem?.id === this.getItemId(i)\n \"\n [attr.id]=\"getItemId(i)\"\n role=\"option\"\n *igxFor=\"\n let item of displayedListData;\n index as i;\n scrollOrientation: 'vertical';\n containerSize: containerSize;\n itemSize: itemSize\n \"\n >\n <igx-checkbox\n [value]=\"item\"\n [tabindex]=\"-1\"\n [checked]=\"$safeNavigationMigration(item?.isSelected)\"\n [disableRipple]=\"true\"\n [indeterminate]=\"$safeNavigationMigration(item?.indeterminate)\"\n [disableTransitions]=\"true\"\n (change)=\"onCheckboxChange($event)\"\n >\n {{ item.label }}\n </igx-checkbox>\n </igx-list-item>\n </div>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n <ng-template igxEmptyList>\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n </ng-template>\n <div\n class=\"igx-excel-filter__filter-results\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{\n esf.grid?.resourceStrings.igx_grid_excel_matches_count ? \n esf.grid?.resourceStrings.igx_grid_excel_matches_count.replace(\n '{0}',\n matchesCount.toString()\n ) : ''\n }}\n </div>\n </igx-list>\n}\n\n@if (isHierarchical()) {\n <div class=\"igx-excel-filter__tree\">\n @if (!isTreeEmpty()) {\n <div class=\"igx-excel-filter__tree-alike\">\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #selectAllCheckbox\n [value]=\"selectAllItem\"\n [checked]=\"selectAllItem?.isSelected\"\n [disableRipple]=\"true\"\n [indeterminate]=\"selectAllItem?.indeterminate\"\n [disableTransitions]=\"true\"\n (change)=\"onSelectAllCheckboxChange($event)\"\n >\n {{ selectAllItem.label }}\n </igx-checkbox>\n </div>\n @if (searchValue) {\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #addToCurrentFilterCheckbox\n [value]=\"addToCurrentFilterItem\"\n [checked]=\"addToCurrentFilterItem.isSelected\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"true\"\n >\n {{ addToCurrentFilterItem.label }}\n </igx-checkbox>\n </div>\n }\n </div>\n }\n <igx-tree\n #tree\n selection=\"Cascading\"\n (nodeSelection)=\"onNodeSelectionChange($event)\"\n >\n @for (item of displayedListData; track item.value) {\n <igx-tree-node [data]=\"item\" [selected]=\"item.isSelected\">\n <div>{{ item.label }}</div>\n @for (childLevel1 of item.children; track childLevel1.value) {\n <igx-tree-node\n [data]=\"childLevel1\"\n [selected]=\"childLevel1.isSelected\"\n >\n <div>{{ childLevel1.label }}</div>\n @for (\n childLevel2 of childLevel1.children;\n track childLevel2.value\n ) {\n <igx-tree-node\n [data]=\"childLevel2\"\n [selected]=\"childLevel2.isSelected\"\n >\n <div>{{ childLevel2.label }}</div>\n @for (\n childLevel3 of childLevel2.children;\n track childLevel3.value\n ) {\n <igx-tree-node\n [data]=\"childLevel3\"\n [selected]=\"childLevel3.isSelected\"\n >\n <div>{{ childLevel3.label }}</div>\n @for (\n childLevel4 of childLevel3.children;\n track childLevel4.value\n ) {\n <igx-tree-node\n [data]=\"childLevel4\"\n [selected]=\"childLevel4.isSelected\"\n >\n <div>{{ childLevel4.label }}</div>\n @for (\n childLevel5 of childLevel4.children;\n track childLevel5.value\n ) {\n <igx-tree-node\n [data]=\"childLevel5\"\n [selected]=\"childLevel5.isSelected\"\n >\n <div>{{ childLevel5.label }}</div>\n @for (\n childLevel6 of childLevel5.children;\n track childLevel6.value\n ) {\n <igx-tree-node\n [data]=\"childLevel6\"\n [selected]=\"childLevel6.isSelected\"\n >\n <div>{{ childLevel6.label }}</div>\n @for (\n childLevel7 of childLevel6.children;\n track childLevel7.value\n ) {\n <igx-tree-node\n [data]=\"childLevel7\"\n [selected]=\"childLevel7.isSelected\"\n >\n <div>{{ childLevel7.label }}</div>\n @for (\n childLevel8 of childLevel7.children;\n track childLevel8.value\n ) {\n <igx-tree-node\n [data]=\"childLevel8\"\n [selected]=\"childLevel8.isSelected\"\n >\n <div>{{ childLevel8.label }}</div>\n @for (\n childLevel9 of childLevel8.children;\n track childLevel9.value\n ) {\n <igx-tree-node\n [data]=\"childLevel9\"\n [selected]=\"\n childLevel9.isSelected\n \"\n >\n <div>{{ childLevel9.label }}</div>\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n @if (isTreeEmpty()) {\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n }\n </div>\n}\n\n<ng-template #emptySearch>\n <div class=\"igx-excel-filter__empty\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_no_matches }}\n </div>\n</ng-template>\n\n<ng-template #defaultExcelStyleLoadingValuesTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n</ng-template>\n\n<footer class=\"igx-excel-filter__menu-footer\">\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\" #cancelButton igxButton=\"flat\" (click)=\"esf.cancel()\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button\n type=\"button\"\n igxButton=\"contained\"\n [disabled]=\"applyButtonDisabled\"\n (click)=\"applyFilter()\"\n >\n {{ esf.grid?.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n</footer>\n" }]
9332
+ args: [{ selector: 'igx-excel-style-search', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxInputGroupComponent, IgxIconComponent, IgxPrefixDirective, FormsModule, IgxInputDirective, IgxSuffixDirective, IgxListComponent, IgxForOfDirective, IgxListItemComponent, IgxCheckboxComponent, IgxDataLoadingTemplateDirective, NgTemplateOutlet, IgxEmptyListTemplateDirective, IgxTreeComponent, IgxTreeNodeComponent, IgxCircularProgressBarComponent, IgxButtonDirective], template: "<igx-input-group type=\"box\">\n <igx-icon igxPrefix family=\"default\" name=\"search\"></igx-icon>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [(ngModel)]=\"searchValue\"\n (ngModelChange)=\"filterListData()\"\n (keydown)=\"onInputKeyDown($event)\"\n [placeholder]=\"\n esf.column?.grid.resourceStrings.igx_grid_excel_search_placeholder\n \"\n autocomplete=\"off\"\n />\n @if (searchValue || searchValue === 0) {\n <igx-suffix>\n <igx-icon\n family=\"default\"\n name=\"input_clear\"\n (click)=\"clearInput()\"\n tabindex=\"0\"\n >\n </igx-icon>\n </igx-suffix>\n }\n</igx-input-group>\n\n@if (!isHierarchical()) {\n <igx-list\n #list\n role=\"listbox\"\n [isLoading]=\"isLoading\"\n (keydown)=\"handleKeyDown($event)\"\n tabindex=\"0\"\n [attr.aria-activedescendant]=\"this.activeDescendant\"\n (focus)=\"onFocus()\"\n (focusout)=\"onFocusOut()\"\n >\n <div style=\"overflow: hidden; position: relative\">\n <igx-list-item\n [class.igx-list__item-base--active]=\"\n focusedItem?.id === this.getItemId(i)\n \"\n [attr.id]=\"getItemId(i)\"\n role=\"option\"\n *igxFor=\"\n let item of displayedListData;\n index as i;\n scrollOrientation: 'vertical';\n containerSize: containerSize;\n itemSize: itemSize\n \"\n >\n <igx-checkbox\n [value]=\"item\"\n [tabindex]=\"-1\"\n [checked]=\"$safeNavigationMigration(item?.isSelected)\"\n [disableRipple]=\"true\"\n [indeterminate]=\"$safeNavigationMigration(item?.indeterminate)\"\n [disableTransitions]=\"true\"\n (change)=\"onCheckboxChange($event)\"\n >\n {{ item.label }}\n </igx-checkbox>\n </igx-list-item>\n </div>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n <ng-template igxEmptyList>\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n </ng-template>\n <div\n class=\"igx-excel-filter__filter-results\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{\n esf.grid?.resourceStrings.igx_grid_excel_matches_count.replace(\n '{0}',\n matchesCount\n )\n }}\n </div>\n </igx-list>\n}\n\n@if (isHierarchical()) {\n <div class=\"igx-excel-filter__tree\">\n @if (!isTreeEmpty()) {\n <div class=\"igx-excel-filter__tree-alike\">\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #selectAllCheckbox\n [value]=\"selectAllItem\"\n [checked]=\"$safeNavigationMigration(selectAllItem?.isSelected)\"\n [disableRipple]=\"true\"\n [indeterminate]=\"\n $safeNavigationMigration(selectAllItem?.indeterminate)\n \"\n [disableTransitions]=\"true\"\n (change)=\"onSelectAllCheckboxChange($event)\"\n >\n {{ selectAllItem.label }}\n </igx-checkbox>\n </div>\n @if (searchValue) {\n <div class=\"igx-excel-filter__tree-alike-item\">\n <igx-checkbox\n #addToCurrentFilterCheckbox\n [value]=\"addToCurrentFilterItem\"\n [checked]=\"addToCurrentFilterItem.isSelected\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"true\"\n >\n {{ addToCurrentFilterItem.label }}\n </igx-checkbox>\n </div>\n }\n </div>\n }\n <igx-tree\n #tree\n selection=\"Cascading\"\n (nodeSelection)=\"onNodeSelectionChange($event)\"\n >\n @for (item of displayedListData; track item.value) {\n <igx-tree-node [data]=\"item\" [selected]=\"item.isSelected\">\n <div>{{ item.label }}</div>\n @for (childLevel1 of item.children; track childLevel1.value) {\n <igx-tree-node\n [data]=\"childLevel1\"\n [selected]=\"childLevel1.isSelected\"\n >\n <div>{{ childLevel1.label }}</div>\n @for (\n childLevel2 of childLevel1.children;\n track childLevel2.value\n ) {\n <igx-tree-node\n [data]=\"childLevel2\"\n [selected]=\"childLevel2.isSelected\"\n >\n <div>{{ childLevel2.label }}</div>\n @for (\n childLevel3 of childLevel2.children;\n track childLevel3.value\n ) {\n <igx-tree-node\n [data]=\"childLevel3\"\n [selected]=\"childLevel3.isSelected\"\n >\n <div>{{ childLevel3.label }}</div>\n @for (\n childLevel4 of childLevel3.children;\n track childLevel4.value\n ) {\n <igx-tree-node\n [data]=\"childLevel4\"\n [selected]=\"childLevel4.isSelected\"\n >\n <div>{{ childLevel4.label }}</div>\n @for (\n childLevel5 of childLevel4.children;\n track childLevel5.value\n ) {\n <igx-tree-node\n [data]=\"childLevel5\"\n [selected]=\"childLevel5.isSelected\"\n >\n <div>{{ childLevel5.label }}</div>\n @for (\n childLevel6 of childLevel5.children;\n track childLevel6.value\n ) {\n <igx-tree-node\n [data]=\"childLevel6\"\n [selected]=\"childLevel6.isSelected\"\n >\n <div>{{ childLevel6.label }}</div>\n @for (\n childLevel7 of childLevel6.children;\n track childLevel7.value\n ) {\n <igx-tree-node\n [data]=\"childLevel7\"\n [selected]=\"childLevel7.isSelected\"\n >\n <div>{{ childLevel7.label }}</div>\n @for (\n childLevel8 of childLevel7.children;\n track childLevel8.value\n ) {\n <igx-tree-node\n [data]=\"childLevel8\"\n [selected]=\"childLevel8.isSelected\"\n >\n <div>{{ childLevel8.label }}</div>\n @for (\n childLevel9 of childLevel8.children;\n track childLevel9.value\n ) {\n <igx-tree-node\n [data]=\"childLevel9\"\n [selected]=\"\n childLevel9.isSelected\n \"\n >\n <div>{{ childLevel9.label }}</div>\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree-node>\n }\n </igx-tree>\n <ng-template igxDataLoading>\n <div class=\"igx-excel-filter__loading\">\n <ng-container *ngTemplateOutlet=\"valuesLoadingTemplate\"> </ng-container>\n </div>\n </ng-template>\n @if (isTreeEmpty()) {\n <ng-container *ngTemplateOutlet=\"emptySearch\"></ng-container>\n }\n </div>\n}\n\n<ng-template #emptySearch>\n <div class=\"igx-excel-filter__empty\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_no_matches }}\n </div>\n</ng-template>\n\n<ng-template #defaultExcelStyleLoadingValuesTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n</ng-template>\n\n<footer class=\"igx-excel-filter__menu-footer\">\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\" #cancelButton igxButton=\"flat\" (click)=\"esf.cancel()\">\n {{ esf.grid?.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button\n type=\"button\"\n igxButton=\"contained\"\n [disabled]=\"applyButtonDisabled\"\n (click)=\"applyFilter()\"\n >\n {{ esf.grid?.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n</footer>\n" }]
9044
9333
  }], ctorParameters: () => [], propDecorators: { defaultClass: [{
9045
9334
  type: HostBinding,
9046
9335
  args: ['class.igx-excel-filter__menu-main']
@@ -9083,11 +9372,11 @@ class IgxExcelStyleSelectingComponent {
9083
9372
  this.esf = inject(BaseFilteringComponent);
9084
9373
  }
9085
9374
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSelectingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9086
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleSelectingComponent, isStandalone: true, selector: "igx-excel-style-selecting", ngImport: i0, template: "@if (esf.column) {\n <div\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n tabindex=\"0\"\n (click)=\"esf.onSelect($event)\"\n role=\"button\"\n [attr.aria-pressed]=\"esf.column.selected\">\n <span>{{esf.grid.resourceStrings.igx_grid_excel_select }}</span>\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
9375
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExcelStyleSelectingComponent, isStandalone: true, selector: "igx-excel-style-selecting", ngImport: i0, template: "@if (esf.column) {\n <div\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n tabindex=\"0\"\n (click)=\"esf.onSelect()\"\n role=\"button\"\n [attr.aria-pressed]=\"esf.column.selected\">\n <span>{{esf.grid.resourceStrings.igx_grid_excel_select }}</span>\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
9087
9376
  }
9088
9377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSelectingComponent, decorators: [{
9089
9378
  type: Component,
9090
- args: [{ selector: 'igx-excel-style-selecting', changeDetection: ChangeDetectionStrategy.Eager, imports: [NgClass, IgxIconComponent], template: "@if (esf.column) {\n <div\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n tabindex=\"0\"\n (click)=\"esf.onSelect($event)\"\n role=\"button\"\n [attr.aria-pressed]=\"esf.column.selected\">\n <span>{{esf.grid.resourceStrings.igx_grid_excel_select }}</span>\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </div>\n}\n" }]
9379
+ args: [{ selector: 'igx-excel-style-selecting', changeDetection: ChangeDetectionStrategy.Eager, imports: [NgClass, IgxIconComponent], template: "@if (esf.column) {\n <div\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n tabindex=\"0\"\n (click)=\"esf.onSelect()\"\n role=\"button\"\n [attr.aria-pressed]=\"esf.column.selected\">\n <span>{{esf.grid.resourceStrings.igx_grid_excel_select }}</span>\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </div>\n}\n" }]
9091
9380
  }] });
9092
9381
 
9093
9382
  /**
@@ -9289,7 +9578,6 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9289
9578
  if (this._minHeight || this._minHeight === 0) {
9290
9579
  return this._minHeight;
9291
9580
  }
9292
- return undefined;
9293
9581
  }
9294
9582
  /**
9295
9583
  * Sets the minimum height.
@@ -9314,7 +9602,6 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9314
9602
  if (this._maxHeight) {
9315
9603
  return this._maxHeight;
9316
9604
  }
9317
- return undefined;
9318
9605
  }
9319
9606
  /**
9320
9607
  * Sets the maximum height.
@@ -9333,7 +9620,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9333
9620
  */
9334
9621
  ngOnDestroy() {
9335
9622
  this.subscriptions?.unsubscribe();
9336
- this.overlayComponentId = '';
9623
+ delete this.overlayComponentId;
9337
9624
  }
9338
9625
  /**
9339
9626
  * @hidden @internal
@@ -9372,12 +9659,12 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9372
9659
  /**
9373
9660
  * @hidden @internal
9374
9661
  */
9375
- onSelect(event) {
9662
+ onSelect() {
9376
9663
  if (!this.column.selected) {
9377
- this.grid.selectionService.selectColumn(this.column.field, this.grid.columnSelection === GridSelectionMode.single, false, event);
9664
+ this.grid.selectionService.selectColumn(this.column.field, this.grid.columnSelection === GridSelectionMode.single);
9378
9665
  }
9379
9666
  else {
9380
- this.grid.selectionService.deselectColumn(this.column.field, event);
9667
+ this.grid.selectionService.deselectColumn(this.column.field);
9381
9668
  }
9382
9669
  this.grid.notifyChanges();
9383
9670
  }
@@ -9499,7 +9786,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9499
9786
  this.loadingStart.emit();
9500
9787
  const expressionsTree = this.getColumnFilterExpressionsTree();
9501
9788
  const prevColumn = this.column;
9502
- this.grid.uniqueColumnValuesStrategy?.(this.column, expressionsTree, (values) => {
9789
+ this.grid.uniqueColumnValuesStrategy(this.column, expressionsTree, (values) => {
9503
9790
  if (!this.column || this.column !== prevColumn) {
9504
9791
  return;
9505
9792
  }
@@ -9749,11 +10036,11 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9749
10036
  return value;
9750
10037
  }
9751
10038
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridExcelStyleFilteringComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9752
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridExcelStyleFilteringComponent, isStandalone: true, selector: "igx-grid-excel-style-filtering", inputs: { column: "column", minHeight: "minHeight", maxHeight: "maxHeight" }, outputs: { loadingStart: "loadingStart", loadingEnd: "loadingEnd", initialized: "initialized", sortingChanged: "sortingChanged", columnChange: "columnChange", listDataLoaded: "listDataLoaded", filterCleared: "filterCleared" }, host: { properties: { "class.igx-excel-filter": "this.defaultClass", "class.igx-excel-filter__sizing": "this.shouldApplySizes", "class.igx-excel-filter--inline": "this.inline", "style.max-height": "this.maxHeight" } }, providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], queries: [{ propertyName: "excelColumnOperationsDirective", first: true, predicate: IgxExcelStyleColumnOperationsTemplateDirective, descendants: true, read: IgxExcelStyleColumnOperationsTemplateDirective }, { propertyName: "excelFilterOperationsDirective", first: true, predicate: IgxExcelStyleFilterOperationsTemplateDirective, descendants: true, read: IgxExcelStyleFilterOperationsTemplateDirective }], viewQueries: [{ propertyName: "mainDropdown", first: true, predicate: ["mainDropdown"], descendants: true, read: ElementRef }, { propertyName: "defaultExcelColumnOperations", first: true, predicate: ["defaultExcelColumnOperations"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultExcelFilterOperations", first: true, predicate: ["defaultExcelFilterOperations"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__sizing': shouldApplySizes,\n 'igx-excel-filter__menu--cosy': size === '2',\n 'igx-excel-filter__menu--compact': size === '1'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n @if (this.excelColumnOperationsDirective) {\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-header\n [showHiding]=\"size !== '3' && !column?.disableHiding\"\n [showPinning]=\"size !== '3' && !column?.disablePinning\"\n [showSelecting]=\"size !== '3' && columnSelectable()\"\n >\n </igx-excel-style-header>\n @if (column?.sortable) {\n <igx-excel-style-sorting>\n </igx-excel-style-sorting>\n }\n @if (grid?.moving) {\n <igx-excel-style-moving></igx-excel-style-moving>\n }\n @if (!column?.disablePinning && size === '3') {\n <igx-excel-style-pinning></igx-excel-style-pinning>\n }\n @if (!column?.disableHiding && size === '3') {\n <igx-excel-style-hiding></igx-excel-style-hiding>\n }\n @if (columnSelectable() && size === '3') {\n <igx-excel-style-selecting></igx-excel-style-selecting>\n }\n }\n\n @if (this.excelFilterOperationsDirective) {\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-clear-filters></igx-excel-style-clear-filters>\n <igx-excel-style-conditional-filter></igx-excel-style-conditional-filter>\n <igx-excel-style-search></igx-excel-style-search>\n }\n</article>\n", styles: ["@layer ig.base{.igx-excel-filter__actions-clear--disabled,.igx-excel-filter__actions-clear,.igx-excel-filter__actions-filter--active,.igx-excel-filter__actions-filter,.igx-excel-filter__actions-selected,.igx-excel-filter__actions-select,.igx-excel-filter__actions-hide,.igx-excel-filter__actions-unpin,.igx-excel-filter__actions-pin--disabled,.igx-excel-filter__actions-pin{display:flex;align-items:center;justify-content:space-between;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));cursor:pointer;color:var(--actions-foreground);outline-style:none}.igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter__actions-clear igx-icon,.igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter__actions-filter igx-icon,.igx-excel-filter__actions-selected igx-icon,.igx-excel-filter__actions-select igx-icon,.igx-excel-filter__actions-hide igx-icon,.igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter__actions-pin igx-icon{color:var(--actions-icon-color)}.igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter__actions-clear:hover,.igx-excel-filter__actions-filter--active:hover,.igx-excel-filter__actions-filter:hover,.igx-excel-filter__actions-selected:hover,.igx-excel-filter__actions-select:hover,.igx-excel-filter__actions-hide:hover,.igx-excel-filter__actions-unpin:hover,.igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter__actions-pin:hover,.igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter__actions-clear:focus,.igx-excel-filter__actions-filter--active:focus,.igx-excel-filter__actions-filter:focus,.igx-excel-filter__actions-selected:focus,.igx-excel-filter__actions-select:focus,.igx-excel-filter__actions-hide:focus,.igx-excel-filter__actions-unpin:focus,.igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter__actions-pin:focus{color:var(--actions-hover-foreground);background:var(--actions-hover-background)}.igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}[dir=rtl] .igx-excel-filter__actions-clear--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-clear igx-icon,[dir=rtl] .igx-excel-filter__actions-filter--active igx-icon,[dir=rtl] .igx-excel-filter__actions-filter igx-icon,[dir=rtl] .igx-excel-filter__actions-selected igx-icon,[dir=rtl] .igx-excel-filter__actions-select igx-icon,[dir=rtl] .igx-excel-filter__actions-hide igx-icon,[dir=rtl] .igx-excel-filter__actions-unpin igx-icon,[dir=rtl] .igx-excel-filter__actions-pin--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-pin igx-icon{transform:scaleX(-1)}.igx-excel-filter__menu--compact .igx-excel-filter__move,.igx-excel-filter__menu--compact .igx-excel-filter__sort{display:flex;align-items:center;justify-content:space-between}.igx-excel-filter__menu--compact .igx-excel-filter__move header,.igx-excel-filter__menu--compact .igx-excel-filter__sort header{margin-inline-end:auto}.igx-excel-filter__move,.igx-excel-filter__sort{--ig-icon-size: var(--size);display:block;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__move header,.igx-excel-filter__sort header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--subheader-foreground);margin-block-end:.25rem}.igx-excel-filter__move igx-icon,.igx-excel-filter__sort igx-icon{--component-size: 1;display:initial}.igx-excel-filter{--component-size: var(--ig-size, var(--ig-size-large));display:block;overflow:auto;width:20rem;min-width:20rem;height:100%;flex-grow:1;box-shadow:var(--ig-elevation-12);background:var(--background)}.igx-excel-filter__sizing{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);min-height:max(var(--is-large, 1)*max(40.3125rem,-1 * 40.3125rem),var(--is-medium, 1)*max(29.0625rem,-1 * 29.0625rem),var(--is-small, 1)*max(20.625rem,-1 * 20.625rem));max-height:max(var(--is-large, 1)*max(48.4375rem,-1 * 48.4375rem),var(--is-medium, 1)*max(35.3125rem,-1 * 35.3125rem),var(--is-small, 1)*max(25.3125rem,-1 * 25.3125rem))}.igx-excel-filter__menu{--component-size: var(--ig-size, var(--ig-size-large));display:flex;flex-direction:column;height:100%;border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);background:var(--background)}.igx-excel-filter__menu .igx-tree-node__wrapper{padding:0}.igx-excel-filter__menu igx-chips-area{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-block-end:0;gap:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__menu-header{color:var(--header-foreground)}.igx-excel-filter__menu-main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-main igx-list{flex-grow:1;overflow:hidden;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem),var(--is-small, 1) * max(-.25rem,-1 * -.25rem))*-1);border:0;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree{--ig-icon-size: 1.25rem;background:var(--secondary-background);overflow-y:auto;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1) * max(-.25rem,-1 * -.25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))*-1);margin-block:0;flex:1;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree>igx-checkbox,.igx-excel-filter__tree .igx-tree-node__wrapper{height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem));min-height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem))}.igx-excel-filter__tree .igx-tree-node__toggle-button{min-width:1.25rem;margin-inline-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline-end:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__tree .igx-tree{overflow-y:hidden}.igx-excel-filter__tree-alike{background:var(--secondary-background);display:flex;flex-direction:column;z-index:1}.igx-excel-filter__tree-alike-item{display:flex;align-items:center;height:max(var(--is-large, 1)*max(2.5rem,-1 * 2.5rem),var(--is-medium, 1)*max(2rem,-1 * 2rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));background:var(--secondary-background)}.igx-excel-filter__tree-alike-item:hover,.igx-excel-filter__tree-alike-item:focus{background:color-mix(in srgb,var(--_excel-filtering-foreground) 12%,var(--background))}.igx-excel-filter__tree-alike-item>igx-checkbox{margin-inline-start:max(var(--is-large, 1)*max(2.75rem,-1 * 2.75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(2.25rem,-1 * 2.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.75rem,-1 * 1.75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[dir=rtl] .igx-excel-filter__sort .igx-button-group{flex-direction:row-reverse}[dir=rtl] .igx-excel-filter__sort .igx-button-group igx-icon,[dir=rtl] .igx-excel-filter__sort .igx-button-group [igxButton]{direction:ltr}.igx-excel-filter__actions-pin--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__actions-selected igx-icon{color:var(--actions-selected-icon-color)}.igx-excel-filter__actions-filter--active{background:color-mix(in srgb,var(--_excel-filtering-accent-color) 8%,var(--background));color:var(--actions-hover-foreground)}.igx-excel-filter__actions-clear--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__menu-header-actions{display:flex;margin-inline-start:auto;gap:.25rem}.igx-excel-filter__secondary-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));color:var(--header-foreground);border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__filter-results{position:absolute;width:.0625rem;height:.0625rem;overflow:hidden}.igx-excel-filter__menu-footer{display:flex;justify-content:space-between}.igx-excel-filter__apply{flex-grow:1}.igx-excel-filter__apply [igxButton]{width:100%}.igx-excel-filter__cancel{flex-grow:1}.igx-excel-filter__cancel [igxButton]{width:100%}.igx-excel-filter--inline{box-shadow:none;width:100%}.igx-excel-filter__menu--compact .igx-excel-filter__actions-select,.igx-excel-filter__menu--compact .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__menu--compact .igx-excel-filter__sort igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__sort header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__move igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__move header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header-actions span{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom)}.igx-excel-filter__menu--cosy .igx-excel-filter__actions-select,.igx-excel-filter__menu--cosy .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__secondary{--component-size: var(--ig-size, var(--ig-size-large));width:32.5rem;min-width:32.5rem;background:var(--background);box-shadow:var(--ig-elevation-12);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);display:flex;flex-direction:column}.igx-excel-filter__secondary-main{height:14.5rem;overflow:auto}.igx-excel-filter__secondary-footer{--ig-size: 2;display:flex;justify-content:space-between;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__secondary-footer .igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__secondary-footer .igx-excel-filter__apply,.igx-excel-filter__secondary-footer .igx-excel-filter__cancel{flex-grow:0}.igx-excel-filter__cancel+.igx-excel-filter__apply{margin-inline-start:1rem}.igx-excel-filter__condition{display:flex;flex-wrap:wrap;align-items:center;padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:0}.igx-excel-filter__condition igx-select{flex-grow:1;flex-basis:40%;margin-block:1rem}.igx-excel-filter__condition igx-select~igx-input-group,.igx-excel-filter__condition igx-select~igx-date-picker,.igx-excel-filter__condition igx-select~igx-time-picker{margin-inline-start:1rem}.igx-excel-filter__condition igx-buttongroup{min-width:30%}.igx-excel-filter__condition [igxIconButton]{--component-size: var(--ig-size, var(--ig-size-large));margin-inline-start:1rem}.igx-excel-filter__add-filter{--ig-icon-size: 1.125rem;margin-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-block-start:0}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-excel-filter__secondary-header{border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-footer{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));border-top:.0625rem solid var(--border-color)}.igx-excel-filter__menu-main igx-list{--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-excel-filter{box-shadow:var(--ig-elevation-3),0 0 0 .0625rem var(--border-color);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled,.igx-excel-filter .igx-excel-filter__actions-clear,.igx-excel-filter .igx-excel-filter__actions-filter--active,.igx-excel-filter .igx-excel-filter__actions-filter,.igx-excel-filter .igx-excel-filter__actions-selected,.igx-excel-filter .igx-excel-filter__actions-select,.igx-excel-filter .igx-excel-filter__actions-hide,.igx-excel-filter .igx-excel-filter__actions-unpin,.igx-excel-filter .igx-excel-filter__actions-pin--disabled,.igx-excel-filter .igx-excel-filter__actions-pin{padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline:.5rem;margin-block-end:.25rem;border-radius:.25rem}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2;color:var(--actions-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-clear:hover,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover,.igx-excel-filter .igx-excel-filter__actions-filter:hover,.igx-excel-filter .igx-excel-filter__actions-selected:hover,.igx-excel-filter .igx-excel-filter__actions-select:hover,.igx-excel-filter .igx-excel-filter__actions-hide:hover,.igx-excel-filter .igx-excel-filter__actions-unpin:hover,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-pin:hover,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-clear:focus,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus,.igx-excel-filter .igx-excel-filter__actions-filter:focus,.igx-excel-filter .igx-excel-filter__actions-selected:focus,.igx-excel-filter .igx-excel-filter__actions-select:focus,.igx-excel-filter .igx-excel-filter__actions-hide:focus,.igx-excel-filter .igx-excel-filter__actions-unpin:focus,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-pin:focus{background:var(--actions-hover-background)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2}.igx-excel-filter .igx-excel-filter__move,.igx-excel-filter .igx-excel-filter__sort{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter .igx-excel-filter__move header,.igx-excel-filter .igx-excel-filter__sort header{margin-block-end:max(var(--is-large, 1)*max(.25rem,-1 * .25rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(0rem,-1 * 0rem))!important;text-transform:capitalize!important}.igx-excel-filter .igx-excel-filter__move igx-icon,.igx-excel-filter .igx-excel-filter__sort igx-icon{--component-size: 2}.igx-excel-filter__menu{background:var(--background)}.igx-excel-filter__menu .igx-button-group__item:not(:nth-child(1)){margin:0}.igx-excel-filter__menu-header{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing)))) max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing)))) max(var(--is-large, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__menu-main{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(1rem,-1 * 1rem))}.igx-excel-filter__menu-main igx-list{--background: var(--secondary-background);--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100));margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-1rem,-1 * -1rem),var(--is-small, 1) * max(-1rem,-1 * -1rem))*-1)}.igx-excel-filter__menu-main igx-list>div{gap:inherit}.igx-excel-filter__menu-main igx-list igx-display-container{display:flex;flex-direction:column;gap:inherit;padding:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__actions-filter{margin-block-end:0}.igx-excel-filter__actions-pin--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__actions-clear--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__sort{padding-block-end:0}.igx-excel-filter__move{margin-block-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(.75rem,-1 * .75rem))}.igx-excel-filter .igx-excel-filter__sort+igx-excel-filter__move{margin-block-start:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter .ig-typography .igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}}}\n"], dependencies: [{ kind: "component", type: IgxExcelStyleHeaderComponent, selector: "igx-excel-style-header", inputs: ["showPinning", "showSelecting", "showHiding"] }, { kind: "component", type: IgxExcelStyleSortingComponent, selector: "igx-excel-style-sorting" }, { kind: "component", type: IgxExcelStyleMovingComponent, selector: "igx-excel-style-moving" }, { kind: "component", type: IgxExcelStylePinningComponent, selector: "igx-excel-style-pinning" }, { kind: "component", type: IgxExcelStyleHidingComponent, selector: "igx-excel-style-hiding" }, { kind: "component", type: IgxExcelStyleSelectingComponent, selector: "igx-excel-style-selecting" }, { kind: "component", type: IgxExcelStyleClearFiltersComponent, selector: "igx-excel-style-clear-filters" }, { kind: "component", type: IgxExcelStyleConditionalFilterComponent, selector: "igx-excel-style-conditional-filter" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10039
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridExcelStyleFilteringComponent, isStandalone: true, selector: "igx-grid-excel-style-filtering", inputs: { column: "column", minHeight: "minHeight", maxHeight: "maxHeight" }, outputs: { loadingStart: "loadingStart", loadingEnd: "loadingEnd", initialized: "initialized", sortingChanged: "sortingChanged", columnChange: "columnChange", listDataLoaded: "listDataLoaded", filterCleared: "filterCleared" }, host: { properties: { "class.igx-excel-filter": "this.defaultClass", "class.igx-excel-filter__sizing": "this.shouldApplySizes", "class.igx-excel-filter--inline": "this.inline", "style.max-height": "this.maxHeight" } }, providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], queries: [{ propertyName: "excelColumnOperationsDirective", first: true, predicate: IgxExcelStyleColumnOperationsTemplateDirective, descendants: true, read: IgxExcelStyleColumnOperationsTemplateDirective }, { propertyName: "excelFilterOperationsDirective", first: true, predicate: IgxExcelStyleFilterOperationsTemplateDirective, descendants: true, read: IgxExcelStyleFilterOperationsTemplateDirective }], viewQueries: [{ propertyName: "mainDropdown", first: true, predicate: ["mainDropdown"], descendants: true, read: ElementRef }, { propertyName: "defaultExcelColumnOperations", first: true, predicate: ["defaultExcelColumnOperations"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultExcelFilterOperations", first: true, predicate: ["defaultExcelFilterOperations"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__sizing': shouldApplySizes,\n 'igx-excel-filter__menu--cosy': size === '2',\n 'igx-excel-filter__menu--compact': size === '1'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n @if (this.excelColumnOperationsDirective) {\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-header\n [showHiding]=\"size !== '3' && !column?.disableHiding\"\n [showPinning]=\"size !== '3' && !column?.disablePinning\"\n [showSelecting]=\"size !== '3' && columnSelectable()\"\n >\n </igx-excel-style-header>\n @if (column?.sortable) {\n <igx-excel-style-sorting>\n </igx-excel-style-sorting>\n }\n @if (grid?.moving) {\n <igx-excel-style-moving></igx-excel-style-moving>\n }\n @if (!column?.disablePinning && size === '3') {\n <igx-excel-style-pinning></igx-excel-style-pinning>\n }\n @if (!column?.disableHiding && size === '3') {\n <igx-excel-style-hiding></igx-excel-style-hiding>\n }\n @if (columnSelectable() && size === '3') {\n <igx-excel-style-selecting></igx-excel-style-selecting>\n }\n }\n\n @if (this.excelFilterOperationsDirective) {\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-clear-filters></igx-excel-style-clear-filters>\n <igx-excel-style-conditional-filter></igx-excel-style-conditional-filter>\n <igx-excel-style-search></igx-excel-style-search>\n }\n</article>\n", styles: ["@layer ig.base{.igx-excel-filter__actions-clear--disabled,.igx-excel-filter__actions-clear,.igx-excel-filter__actions-filter--active,.igx-excel-filter__actions-filter,.igx-excel-filter__actions-selected,.igx-excel-filter__actions-select,.igx-excel-filter__actions-hide,.igx-excel-filter__actions-unpin,.igx-excel-filter__actions-pin--disabled,.igx-excel-filter__actions-pin{display:flex;align-items:center;justify-content:space-between;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));cursor:pointer;color:var(--actions-foreground);outline-style:none}.igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter__actions-clear igx-icon,.igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter__actions-filter igx-icon,.igx-excel-filter__actions-selected igx-icon,.igx-excel-filter__actions-select igx-icon,.igx-excel-filter__actions-hide igx-icon,.igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter__actions-pin igx-icon{color:var(--actions-icon-color)}.igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter__actions-clear:hover,.igx-excel-filter__actions-filter--active:hover,.igx-excel-filter__actions-filter:hover,.igx-excel-filter__actions-selected:hover,.igx-excel-filter__actions-select:hover,.igx-excel-filter__actions-hide:hover,.igx-excel-filter__actions-unpin:hover,.igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter__actions-pin:hover,.igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter__actions-clear:focus,.igx-excel-filter__actions-filter--active:focus,.igx-excel-filter__actions-filter:focus,.igx-excel-filter__actions-selected:focus,.igx-excel-filter__actions-select:focus,.igx-excel-filter__actions-hide:focus,.igx-excel-filter__actions-unpin:focus,.igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter__actions-pin:focus{color:var(--actions-hover-foreground);background:var(--actions-hover-background)}.igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}[dir=rtl] .igx-excel-filter__actions-clear--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-clear igx-icon,[dir=rtl] .igx-excel-filter__actions-filter--active igx-icon,[dir=rtl] .igx-excel-filter__actions-filter igx-icon,[dir=rtl] .igx-excel-filter__actions-selected igx-icon,[dir=rtl] .igx-excel-filter__actions-select igx-icon,[dir=rtl] .igx-excel-filter__actions-hide igx-icon,[dir=rtl] .igx-excel-filter__actions-unpin igx-icon,[dir=rtl] .igx-excel-filter__actions-pin--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-pin igx-icon{transform:scaleX(-1)}.igx-excel-filter__menu--compact .igx-excel-filter__move,.igx-excel-filter__menu--compact .igx-excel-filter__sort{display:flex;align-items:center;justify-content:space-between}.igx-excel-filter__menu--compact .igx-excel-filter__move header,.igx-excel-filter__menu--compact .igx-excel-filter__sort header{margin-inline-end:auto}.igx-excel-filter__move,.igx-excel-filter__sort{--ig-icon-size: var(--size);display:block;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__move header,.igx-excel-filter__sort header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--subheader-foreground);margin-block-end:.25rem}.igx-excel-filter__move igx-icon,.igx-excel-filter__sort igx-icon{--component-size: 1;display:initial}.igx-excel-filter{--component-size: var(--ig-size, var(--ig-size-large));display:block;overflow:auto;width:20rem;min-width:20rem;height:100%;flex-grow:1;box-shadow:var(--ig-elevation-12);background:var(--background)}.igx-excel-filter__sizing{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);min-height:max(var(--is-large, 1)*max(40.3125rem,-1 * 40.3125rem),var(--is-medium, 1)*max(29.0625rem,-1 * 29.0625rem),var(--is-small, 1)*max(20.625rem,-1 * 20.625rem));max-height:max(var(--is-large, 1)*max(48.4375rem,-1 * 48.4375rem),var(--is-medium, 1)*max(35.3125rem,-1 * 35.3125rem),var(--is-small, 1)*max(25.3125rem,-1 * 25.3125rem))}.igx-excel-filter__menu{--component-size: var(--ig-size, var(--ig-size-large));display:flex;flex-direction:column;height:100%;border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);background:var(--background)}.igx-excel-filter__menu igx-excel-style-filter-operations,.igx-excel-filter__menu [igxExcelStyleFilterOperations]{display:flex;flex-direction:column;flex-grow:1;min-height:0}.igx-excel-filter__menu .igx-tree-node__wrapper{padding:0}.igx-excel-filter__menu igx-chips-area{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-block-end:0;gap:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__menu-header{color:var(--header-foreground)}.igx-excel-filter__menu-main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-main igx-list{flex-grow:1;overflow:hidden;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem),var(--is-small, 1) * max(-.25rem,-1 * -.25rem))*-1);border:0;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree{--ig-icon-size: 1.25rem;background:var(--secondary-background);overflow-y:auto;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1) * max(-.25rem,-1 * -.25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))*-1);margin-block:0;flex:1;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree>igx-checkbox,.igx-excel-filter__tree .igx-tree-node__wrapper{height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem));min-height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem))}.igx-excel-filter__tree .igx-tree-node__toggle-button{min-width:1.25rem;margin-inline-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline-end:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__tree .igx-tree{overflow-y:hidden}.igx-excel-filter__tree-alike{background:var(--secondary-background);display:flex;flex-direction:column;z-index:1}.igx-excel-filter__tree-alike-item{display:flex;align-items:center;height:max(var(--is-large, 1)*max(2.5rem,-1 * 2.5rem),var(--is-medium, 1)*max(2rem,-1 * 2rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));background:var(--secondary-background)}.igx-excel-filter__tree-alike-item:hover,.igx-excel-filter__tree-alike-item:focus{background:color-mix(in srgb,var(--_excel-filtering-foreground) 12%,var(--background))}.igx-excel-filter__tree-alike-item>igx-checkbox{margin-inline-start:max(var(--is-large, 1)*max(2.75rem,-1 * 2.75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(2.25rem,-1 * 2.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.75rem,-1 * 1.75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[dir=rtl] .igx-excel-filter__sort .igx-button-group{flex-direction:row-reverse}[dir=rtl] .igx-excel-filter__sort .igx-button-group igx-icon,[dir=rtl] .igx-excel-filter__sort .igx-button-group [igxButton]{direction:ltr}.igx-excel-filter__actions-pin--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__actions-selected igx-icon{color:var(--actions-selected-icon-color)}.igx-excel-filter__actions-filter--active{background:color-mix(in srgb,var(--_excel-filtering-accent-color) 8%,var(--background));color:var(--actions-hover-foreground)}.igx-excel-filter__actions-clear--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__menu-header-actions{display:flex;margin-inline-start:auto;gap:.25rem}.igx-excel-filter__secondary-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));color:var(--header-foreground);border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__filter-results{position:absolute;width:.0625rem;height:.0625rem;overflow:hidden}.igx-excel-filter__menu-footer{display:flex;justify-content:space-between}.igx-excel-filter__apply{flex-grow:1}.igx-excel-filter__apply [igxButton]{width:100%}.igx-excel-filter__cancel{flex-grow:1}.igx-excel-filter__cancel [igxButton]{width:100%}.igx-excel-filter--inline{box-shadow:none;width:100%}.igx-excel-filter__menu--compact .igx-excel-filter__actions-select,.igx-excel-filter__menu--compact .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__menu--compact .igx-excel-filter__sort igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__sort header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__move igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__move header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header-actions span{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom)}.igx-excel-filter__menu--cosy .igx-excel-filter__actions-select,.igx-excel-filter__menu--cosy .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__empty{color:hsl(from hsla(from color(from var(--background) var(--y-contrast)) h 0 l/1) h s 60%)}.igx-excel-filter__secondary{--component-size: var(--ig-size, var(--ig-size-large));width:32.5rem;min-width:32.5rem;background:var(--background);box-shadow:var(--ig-elevation-12);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);display:flex;flex-direction:column}.igx-excel-filter__secondary-main{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:1rem;height:14.5rem;overflow:auto}.igx-excel-filter__secondary-footer{--ig-size: 2;display:flex;justify-content:space-between;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__secondary-footer .igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__secondary-footer .igx-excel-filter__apply,.igx-excel-filter__secondary-footer .igx-excel-filter__cancel{flex-grow:0}.igx-excel-filter__cancel+.igx-excel-filter__apply{margin-inline-start:1rem}.igx-excel-filter__condition{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center}.igx-excel-filter__condition igx-select~igx-input-group,.igx-excel-filter__condition igx-select~igx-date-picker,.igx-excel-filter__condition igx-select~igx-time-picker{margin-inline-start:1rem}.igx-excel-filter__condition igx-buttongroup{grid-column:1/-1;justify-self:start;min-width:30%;margin-block:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__condition [igxIconButton]{--component-size: var(--ig-size, var(--ig-size-large));margin-inline-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__add-filter{--ig-icon-size: 1.125rem}.igx-excel-filter__add-filter:is(.igx-button){margin-block-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-excel-filter__secondary-header{border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-footer{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));border-top:.0625rem solid var(--border-color)}.igx-excel-filter__menu-main igx-list{--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-excel-filter{box-shadow:var(--ig-elevation-3),0 0 0 .0625rem var(--border-color);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled,.igx-excel-filter .igx-excel-filter__actions-clear,.igx-excel-filter .igx-excel-filter__actions-filter--active,.igx-excel-filter .igx-excel-filter__actions-filter,.igx-excel-filter .igx-excel-filter__actions-selected,.igx-excel-filter .igx-excel-filter__actions-select,.igx-excel-filter .igx-excel-filter__actions-hide,.igx-excel-filter .igx-excel-filter__actions-unpin,.igx-excel-filter .igx-excel-filter__actions-pin--disabled,.igx-excel-filter .igx-excel-filter__actions-pin{padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline:.5rem;margin-block-end:.25rem;border-radius:.25rem}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2;color:var(--actions-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-clear:hover,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover,.igx-excel-filter .igx-excel-filter__actions-filter:hover,.igx-excel-filter .igx-excel-filter__actions-selected:hover,.igx-excel-filter .igx-excel-filter__actions-select:hover,.igx-excel-filter .igx-excel-filter__actions-hide:hover,.igx-excel-filter .igx-excel-filter__actions-unpin:hover,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-pin:hover,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-clear:focus,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus,.igx-excel-filter .igx-excel-filter__actions-filter:focus,.igx-excel-filter .igx-excel-filter__actions-selected:focus,.igx-excel-filter .igx-excel-filter__actions-select:focus,.igx-excel-filter .igx-excel-filter__actions-hide:focus,.igx-excel-filter .igx-excel-filter__actions-unpin:focus,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-pin:focus{background:var(--actions-hover-background)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2}.igx-excel-filter .igx-excel-filter__move,.igx-excel-filter .igx-excel-filter__sort{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter .igx-excel-filter__move header,.igx-excel-filter .igx-excel-filter__sort header{margin-block-end:max(var(--is-large, 1)*max(.25rem,-1 * .25rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(0rem,-1 * 0rem))!important;text-transform:capitalize!important}.igx-excel-filter .igx-excel-filter__move igx-icon,.igx-excel-filter .igx-excel-filter__sort igx-icon{--component-size: 2}.igx-excel-filter__menu{background:var(--background)}.igx-excel-filter__menu .igx-button-group__item:not(:nth-child(1)){margin:0}.igx-excel-filter__menu-header{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing)))) max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing)))) max(var(--is-large, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__menu-main{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(1rem,-1 * 1rem))}.igx-excel-filter__menu-main igx-list{--background: var(--secondary-background);--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100));margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-1rem,-1 * -1rem),var(--is-small, 1) * max(-1rem,-1 * -1rem))*-1)}.igx-excel-filter__menu-main igx-list>div{gap:inherit}.igx-excel-filter__menu-main igx-list igx-display-container{display:flex;flex-direction:column;gap:inherit;padding:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__actions-filter{margin-block-end:0}.igx-excel-filter__actions-pin--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__actions-clear--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__sort{padding-block-end:0}.igx-excel-filter__move{margin-block-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(.75rem,-1 * .75rem))}.igx-excel-filter .igx-excel-filter__sort+igx-excel-filter__move{margin-block-start:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter .ig-typography .igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}}}\n"], dependencies: [{ kind: "component", type: IgxExcelStyleHeaderComponent, selector: "igx-excel-style-header", inputs: ["showPinning", "showSelecting", "showHiding"] }, { kind: "component", type: IgxExcelStyleSortingComponent, selector: "igx-excel-style-sorting" }, { kind: "component", type: IgxExcelStyleMovingComponent, selector: "igx-excel-style-moving" }, { kind: "component", type: IgxExcelStylePinningComponent, selector: "igx-excel-style-pinning" }, { kind: "component", type: IgxExcelStyleHidingComponent, selector: "igx-excel-style-hiding" }, { kind: "component", type: IgxExcelStyleSelectingComponent, selector: "igx-excel-style-selecting" }, { kind: "component", type: IgxExcelStyleClearFiltersComponent, selector: "igx-excel-style-clear-filters" }, { kind: "component", type: IgxExcelStyleConditionalFilterComponent, selector: "igx-excel-style-conditional-filter" }, { kind: "component", type: IgxExcelStyleSearchComponent, selector: "igx-excel-style-search", inputs: ["id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9753
10040
  }
9754
10041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridExcelStyleFilteringComponent, decorators: [{
9755
10042
  type: Component,
9756
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], selector: 'igx-grid-excel-style-filtering', encapsulation: ViewEncapsulation.None, imports: [IgxExcelStyleHeaderComponent, IgxExcelStyleSortingComponent, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleHidingComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleClearFiltersComponent, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleSearchComponent, NgClass], template: "<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__sizing': shouldApplySizes,\n 'igx-excel-filter__menu--cosy': size === '2',\n 'igx-excel-filter__menu--compact': size === '1'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n @if (this.excelColumnOperationsDirective) {\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-header\n [showHiding]=\"size !== '3' && !column?.disableHiding\"\n [showPinning]=\"size !== '3' && !column?.disablePinning\"\n [showSelecting]=\"size !== '3' && columnSelectable()\"\n >\n </igx-excel-style-header>\n @if (column?.sortable) {\n <igx-excel-style-sorting>\n </igx-excel-style-sorting>\n }\n @if (grid?.moving) {\n <igx-excel-style-moving></igx-excel-style-moving>\n }\n @if (!column?.disablePinning && size === '3') {\n <igx-excel-style-pinning></igx-excel-style-pinning>\n }\n @if (!column?.disableHiding && size === '3') {\n <igx-excel-style-hiding></igx-excel-style-hiding>\n }\n @if (columnSelectable() && size === '3') {\n <igx-excel-style-selecting></igx-excel-style-selecting>\n }\n }\n\n @if (this.excelFilterOperationsDirective) {\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-clear-filters></igx-excel-style-clear-filters>\n <igx-excel-style-conditional-filter></igx-excel-style-conditional-filter>\n <igx-excel-style-search></igx-excel-style-search>\n }\n</article>\n", styles: ["@layer ig.base{.igx-excel-filter__actions-clear--disabled,.igx-excel-filter__actions-clear,.igx-excel-filter__actions-filter--active,.igx-excel-filter__actions-filter,.igx-excel-filter__actions-selected,.igx-excel-filter__actions-select,.igx-excel-filter__actions-hide,.igx-excel-filter__actions-unpin,.igx-excel-filter__actions-pin--disabled,.igx-excel-filter__actions-pin{display:flex;align-items:center;justify-content:space-between;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));cursor:pointer;color:var(--actions-foreground);outline-style:none}.igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter__actions-clear igx-icon,.igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter__actions-filter igx-icon,.igx-excel-filter__actions-selected igx-icon,.igx-excel-filter__actions-select igx-icon,.igx-excel-filter__actions-hide igx-icon,.igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter__actions-pin igx-icon{color:var(--actions-icon-color)}.igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter__actions-clear:hover,.igx-excel-filter__actions-filter--active:hover,.igx-excel-filter__actions-filter:hover,.igx-excel-filter__actions-selected:hover,.igx-excel-filter__actions-select:hover,.igx-excel-filter__actions-hide:hover,.igx-excel-filter__actions-unpin:hover,.igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter__actions-pin:hover,.igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter__actions-clear:focus,.igx-excel-filter__actions-filter--active:focus,.igx-excel-filter__actions-filter:focus,.igx-excel-filter__actions-selected:focus,.igx-excel-filter__actions-select:focus,.igx-excel-filter__actions-hide:focus,.igx-excel-filter__actions-unpin:focus,.igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter__actions-pin:focus{color:var(--actions-hover-foreground);background:var(--actions-hover-background)}.igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}[dir=rtl] .igx-excel-filter__actions-clear--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-clear igx-icon,[dir=rtl] .igx-excel-filter__actions-filter--active igx-icon,[dir=rtl] .igx-excel-filter__actions-filter igx-icon,[dir=rtl] .igx-excel-filter__actions-selected igx-icon,[dir=rtl] .igx-excel-filter__actions-select igx-icon,[dir=rtl] .igx-excel-filter__actions-hide igx-icon,[dir=rtl] .igx-excel-filter__actions-unpin igx-icon,[dir=rtl] .igx-excel-filter__actions-pin--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-pin igx-icon{transform:scaleX(-1)}.igx-excel-filter__menu--compact .igx-excel-filter__move,.igx-excel-filter__menu--compact .igx-excel-filter__sort{display:flex;align-items:center;justify-content:space-between}.igx-excel-filter__menu--compact .igx-excel-filter__move header,.igx-excel-filter__menu--compact .igx-excel-filter__sort header{margin-inline-end:auto}.igx-excel-filter__move,.igx-excel-filter__sort{--ig-icon-size: var(--size);display:block;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__move header,.igx-excel-filter__sort header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--subheader-foreground);margin-block-end:.25rem}.igx-excel-filter__move igx-icon,.igx-excel-filter__sort igx-icon{--component-size: 1;display:initial}.igx-excel-filter{--component-size: var(--ig-size, var(--ig-size-large));display:block;overflow:auto;width:20rem;min-width:20rem;height:100%;flex-grow:1;box-shadow:var(--ig-elevation-12);background:var(--background)}.igx-excel-filter__sizing{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);min-height:max(var(--is-large, 1)*max(40.3125rem,-1 * 40.3125rem),var(--is-medium, 1)*max(29.0625rem,-1 * 29.0625rem),var(--is-small, 1)*max(20.625rem,-1 * 20.625rem));max-height:max(var(--is-large, 1)*max(48.4375rem,-1 * 48.4375rem),var(--is-medium, 1)*max(35.3125rem,-1 * 35.3125rem),var(--is-small, 1)*max(25.3125rem,-1 * 25.3125rem))}.igx-excel-filter__menu{--component-size: var(--ig-size, var(--ig-size-large));display:flex;flex-direction:column;height:100%;border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);background:var(--background)}.igx-excel-filter__menu .igx-tree-node__wrapper{padding:0}.igx-excel-filter__menu igx-chips-area{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-block-end:0;gap:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__menu-header{color:var(--header-foreground)}.igx-excel-filter__menu-main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-main igx-list{flex-grow:1;overflow:hidden;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem),var(--is-small, 1) * max(-.25rem,-1 * -.25rem))*-1);border:0;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree{--ig-icon-size: 1.25rem;background:var(--secondary-background);overflow-y:auto;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1) * max(-.25rem,-1 * -.25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))*-1);margin-block:0;flex:1;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree>igx-checkbox,.igx-excel-filter__tree .igx-tree-node__wrapper{height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem));min-height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem))}.igx-excel-filter__tree .igx-tree-node__toggle-button{min-width:1.25rem;margin-inline-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline-end:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__tree .igx-tree{overflow-y:hidden}.igx-excel-filter__tree-alike{background:var(--secondary-background);display:flex;flex-direction:column;z-index:1}.igx-excel-filter__tree-alike-item{display:flex;align-items:center;height:max(var(--is-large, 1)*max(2.5rem,-1 * 2.5rem),var(--is-medium, 1)*max(2rem,-1 * 2rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));background:var(--secondary-background)}.igx-excel-filter__tree-alike-item:hover,.igx-excel-filter__tree-alike-item:focus{background:color-mix(in srgb,var(--_excel-filtering-foreground) 12%,var(--background))}.igx-excel-filter__tree-alike-item>igx-checkbox{margin-inline-start:max(var(--is-large, 1)*max(2.75rem,-1 * 2.75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(2.25rem,-1 * 2.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.75rem,-1 * 1.75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[dir=rtl] .igx-excel-filter__sort .igx-button-group{flex-direction:row-reverse}[dir=rtl] .igx-excel-filter__sort .igx-button-group igx-icon,[dir=rtl] .igx-excel-filter__sort .igx-button-group [igxButton]{direction:ltr}.igx-excel-filter__actions-pin--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__actions-selected igx-icon{color:var(--actions-selected-icon-color)}.igx-excel-filter__actions-filter--active{background:color-mix(in srgb,var(--_excel-filtering-accent-color) 8%,var(--background));color:var(--actions-hover-foreground)}.igx-excel-filter__actions-clear--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__menu-header-actions{display:flex;margin-inline-start:auto;gap:.25rem}.igx-excel-filter__secondary-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));color:var(--header-foreground);border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__filter-results{position:absolute;width:.0625rem;height:.0625rem;overflow:hidden}.igx-excel-filter__menu-footer{display:flex;justify-content:space-between}.igx-excel-filter__apply{flex-grow:1}.igx-excel-filter__apply [igxButton]{width:100%}.igx-excel-filter__cancel{flex-grow:1}.igx-excel-filter__cancel [igxButton]{width:100%}.igx-excel-filter--inline{box-shadow:none;width:100%}.igx-excel-filter__menu--compact .igx-excel-filter__actions-select,.igx-excel-filter__menu--compact .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__menu--compact .igx-excel-filter__sort igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__sort header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__move igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__move header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header-actions span{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom)}.igx-excel-filter__menu--cosy .igx-excel-filter__actions-select,.igx-excel-filter__menu--cosy .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__secondary{--component-size: var(--ig-size, var(--ig-size-large));width:32.5rem;min-width:32.5rem;background:var(--background);box-shadow:var(--ig-elevation-12);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);display:flex;flex-direction:column}.igx-excel-filter__secondary-main{height:14.5rem;overflow:auto}.igx-excel-filter__secondary-footer{--ig-size: 2;display:flex;justify-content:space-between;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__secondary-footer .igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__secondary-footer .igx-excel-filter__apply,.igx-excel-filter__secondary-footer .igx-excel-filter__cancel{flex-grow:0}.igx-excel-filter__cancel+.igx-excel-filter__apply{margin-inline-start:1rem}.igx-excel-filter__condition{display:flex;flex-wrap:wrap;align-items:center;padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:0}.igx-excel-filter__condition igx-select{flex-grow:1;flex-basis:40%;margin-block:1rem}.igx-excel-filter__condition igx-select~igx-input-group,.igx-excel-filter__condition igx-select~igx-date-picker,.igx-excel-filter__condition igx-select~igx-time-picker{margin-inline-start:1rem}.igx-excel-filter__condition igx-buttongroup{min-width:30%}.igx-excel-filter__condition [igxIconButton]{--component-size: var(--ig-size, var(--ig-size-large));margin-inline-start:1rem}.igx-excel-filter__add-filter{--ig-icon-size: 1.125rem;margin-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-block-start:0}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-excel-filter__secondary-header{border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-footer{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));border-top:.0625rem solid var(--border-color)}.igx-excel-filter__menu-main igx-list{--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-excel-filter{box-shadow:var(--ig-elevation-3),0 0 0 .0625rem var(--border-color);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled,.igx-excel-filter .igx-excel-filter__actions-clear,.igx-excel-filter .igx-excel-filter__actions-filter--active,.igx-excel-filter .igx-excel-filter__actions-filter,.igx-excel-filter .igx-excel-filter__actions-selected,.igx-excel-filter .igx-excel-filter__actions-select,.igx-excel-filter .igx-excel-filter__actions-hide,.igx-excel-filter .igx-excel-filter__actions-unpin,.igx-excel-filter .igx-excel-filter__actions-pin--disabled,.igx-excel-filter .igx-excel-filter__actions-pin{padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline:.5rem;margin-block-end:.25rem;border-radius:.25rem}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2;color:var(--actions-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-clear:hover,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover,.igx-excel-filter .igx-excel-filter__actions-filter:hover,.igx-excel-filter .igx-excel-filter__actions-selected:hover,.igx-excel-filter .igx-excel-filter__actions-select:hover,.igx-excel-filter .igx-excel-filter__actions-hide:hover,.igx-excel-filter .igx-excel-filter__actions-unpin:hover,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-pin:hover,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-clear:focus,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus,.igx-excel-filter .igx-excel-filter__actions-filter:focus,.igx-excel-filter .igx-excel-filter__actions-selected:focus,.igx-excel-filter .igx-excel-filter__actions-select:focus,.igx-excel-filter .igx-excel-filter__actions-hide:focus,.igx-excel-filter .igx-excel-filter__actions-unpin:focus,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-pin:focus{background:var(--actions-hover-background)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2}.igx-excel-filter .igx-excel-filter__move,.igx-excel-filter .igx-excel-filter__sort{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter .igx-excel-filter__move header,.igx-excel-filter .igx-excel-filter__sort header{margin-block-end:max(var(--is-large, 1)*max(.25rem,-1 * .25rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(0rem,-1 * 0rem))!important;text-transform:capitalize!important}.igx-excel-filter .igx-excel-filter__move igx-icon,.igx-excel-filter .igx-excel-filter__sort igx-icon{--component-size: 2}.igx-excel-filter__menu{background:var(--background)}.igx-excel-filter__menu .igx-button-group__item:not(:nth-child(1)){margin:0}.igx-excel-filter__menu-header{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing)))) max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing)))) max(var(--is-large, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__menu-main{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(1rem,-1 * 1rem))}.igx-excel-filter__menu-main igx-list{--background: var(--secondary-background);--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100));margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-1rem,-1 * -1rem),var(--is-small, 1) * max(-1rem,-1 * -1rem))*-1)}.igx-excel-filter__menu-main igx-list>div{gap:inherit}.igx-excel-filter__menu-main igx-list igx-display-container{display:flex;flex-direction:column;gap:inherit;padding:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__actions-filter{margin-block-end:0}.igx-excel-filter__actions-pin--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__actions-clear--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__sort{padding-block-end:0}.igx-excel-filter__move{margin-block-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(.75rem,-1 * .75rem))}.igx-excel-filter .igx-excel-filter__sort+igx-excel-filter__move{margin-block-start:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter .ig-typography .igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}}}\n"] }]
10043
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], selector: 'igx-grid-excel-style-filtering', encapsulation: ViewEncapsulation.None, imports: [IgxExcelStyleHeaderComponent, IgxExcelStyleSortingComponent, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleHidingComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleClearFiltersComponent, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleSearchComponent, NgClass], template: "<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__sizing': shouldApplySizes,\n 'igx-excel-filter__menu--cosy': size === '2',\n 'igx-excel-filter__menu--compact': size === '1'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n @if (this.excelColumnOperationsDirective) {\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-header\n [showHiding]=\"size !== '3' && !column?.disableHiding\"\n [showPinning]=\"size !== '3' && !column?.disablePinning\"\n [showSelecting]=\"size !== '3' && columnSelectable()\"\n >\n </igx-excel-style-header>\n @if (column?.sortable) {\n <igx-excel-style-sorting>\n </igx-excel-style-sorting>\n }\n @if (grid?.moving) {\n <igx-excel-style-moving></igx-excel-style-moving>\n }\n @if (!column?.disablePinning && size === '3') {\n <igx-excel-style-pinning></igx-excel-style-pinning>\n }\n @if (!column?.disableHiding && size === '3') {\n <igx-excel-style-hiding></igx-excel-style-hiding>\n }\n @if (columnSelectable() && size === '3') {\n <igx-excel-style-selecting></igx-excel-style-selecting>\n }\n }\n\n @if (this.excelFilterOperationsDirective) {\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n } @else {\n <igx-excel-style-clear-filters></igx-excel-style-clear-filters>\n <igx-excel-style-conditional-filter></igx-excel-style-conditional-filter>\n <igx-excel-style-search></igx-excel-style-search>\n }\n</article>\n", styles: ["@layer ig.base{.igx-excel-filter__actions-clear--disabled,.igx-excel-filter__actions-clear,.igx-excel-filter__actions-filter--active,.igx-excel-filter__actions-filter,.igx-excel-filter__actions-selected,.igx-excel-filter__actions-select,.igx-excel-filter__actions-hide,.igx-excel-filter__actions-unpin,.igx-excel-filter__actions-pin--disabled,.igx-excel-filter__actions-pin{display:flex;align-items:center;justify-content:space-between;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));cursor:pointer;color:var(--actions-foreground);outline-style:none}.igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter__actions-clear igx-icon,.igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter__actions-filter igx-icon,.igx-excel-filter__actions-selected igx-icon,.igx-excel-filter__actions-select igx-icon,.igx-excel-filter__actions-hide igx-icon,.igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter__actions-pin igx-icon{color:var(--actions-icon-color)}.igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter__actions-clear:hover,.igx-excel-filter__actions-filter--active:hover,.igx-excel-filter__actions-filter:hover,.igx-excel-filter__actions-selected:hover,.igx-excel-filter__actions-select:hover,.igx-excel-filter__actions-hide:hover,.igx-excel-filter__actions-unpin:hover,.igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter__actions-pin:hover,.igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter__actions-clear:focus,.igx-excel-filter__actions-filter--active:focus,.igx-excel-filter__actions-filter:focus,.igx-excel-filter__actions-selected:focus,.igx-excel-filter__actions-select:focus,.igx-excel-filter__actions-hide:focus,.igx-excel-filter__actions-unpin:focus,.igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter__actions-pin:focus{color:var(--actions-hover-foreground);background:var(--actions-hover-background)}.igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}[dir=rtl] .igx-excel-filter__actions-clear--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-clear igx-icon,[dir=rtl] .igx-excel-filter__actions-filter--active igx-icon,[dir=rtl] .igx-excel-filter__actions-filter igx-icon,[dir=rtl] .igx-excel-filter__actions-selected igx-icon,[dir=rtl] .igx-excel-filter__actions-select igx-icon,[dir=rtl] .igx-excel-filter__actions-hide igx-icon,[dir=rtl] .igx-excel-filter__actions-unpin igx-icon,[dir=rtl] .igx-excel-filter__actions-pin--disabled igx-icon,[dir=rtl] .igx-excel-filter__actions-pin igx-icon{transform:scaleX(-1)}.igx-excel-filter__menu--compact .igx-excel-filter__move,.igx-excel-filter__menu--compact .igx-excel-filter__sort{display:flex;align-items:center;justify-content:space-between}.igx-excel-filter__menu--compact .igx-excel-filter__move header,.igx-excel-filter__menu--compact .igx-excel-filter__sort header{margin-inline-end:auto}.igx-excel-filter__move,.igx-excel-filter__sort{--ig-icon-size: var(--size);display:block;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__move header,.igx-excel-filter__sort header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--subheader-foreground);margin-block-end:.25rem}.igx-excel-filter__move igx-icon,.igx-excel-filter__sort igx-icon{--component-size: 1;display:initial}.igx-excel-filter{--component-size: var(--ig-size, var(--ig-size-large));display:block;overflow:auto;width:20rem;min-width:20rem;height:100%;flex-grow:1;box-shadow:var(--ig-elevation-12);background:var(--background)}.igx-excel-filter__sizing{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);min-height:max(var(--is-large, 1)*max(40.3125rem,-1 * 40.3125rem),var(--is-medium, 1)*max(29.0625rem,-1 * 29.0625rem),var(--is-small, 1)*max(20.625rem,-1 * 20.625rem));max-height:max(var(--is-large, 1)*max(48.4375rem,-1 * 48.4375rem),var(--is-medium, 1)*max(35.3125rem,-1 * 35.3125rem),var(--is-small, 1)*max(25.3125rem,-1 * 25.3125rem))}.igx-excel-filter__menu{--component-size: var(--ig-size, var(--ig-size-large));display:flex;flex-direction:column;height:100%;border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);background:var(--background)}.igx-excel-filter__menu igx-excel-style-filter-operations,.igx-excel-filter__menu [igxExcelStyleFilterOperations]{display:flex;flex-direction:column;flex-grow:1;min-height:0}.igx-excel-filter__menu .igx-tree-node__wrapper{padding:0}.igx-excel-filter__menu igx-chips-area{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-block-end:0;gap:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__menu-header{color:var(--header-foreground)}.igx-excel-filter__menu-main{display:flex;flex-direction:column;flex-grow:1;overflow:hidden;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter__menu-main igx-list{flex-grow:1;overflow:hidden;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem),var(--is-small, 1) * max(-.25rem,-1 * -.25rem))*-1);border:0;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree{--ig-icon-size: 1.25rem;background:var(--secondary-background);overflow-y:auto;margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1) * max(-.5rem,-1 * -.5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1) * max(-.25rem,-1 * -.25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))*-1);margin-block:0;flex:1;border-top:.0625rem dashed var(--border-color);border-bottom:.0625rem dashed var(--border-color)}.igx-excel-filter__tree>igx-checkbox,.igx-excel-filter__tree .igx-tree-node__wrapper{height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem));min-height:max(var(--is-large, 1) * max(2.5rem,-1 * 2.5rem),var(--is-medium, 1) * max(2rem,-1 * 2rem),var(--is-small, 1) * max(1.5rem,-1 * 1.5rem))}.igx-excel-filter__tree .igx-tree-node__toggle-button{min-width:1.25rem;margin-inline-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline-end:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__tree .igx-tree{overflow-y:hidden}.igx-excel-filter__tree-alike{background:var(--secondary-background);display:flex;flex-direction:column;z-index:1}.igx-excel-filter__tree-alike-item{display:flex;align-items:center;height:max(var(--is-large, 1)*max(2.5rem,-1 * 2.5rem),var(--is-medium, 1)*max(2rem,-1 * 2rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));background:var(--secondary-background)}.igx-excel-filter__tree-alike-item:hover,.igx-excel-filter__tree-alike-item:focus{background:color-mix(in srgb,var(--_excel-filtering-foreground) 12%,var(--background))}.igx-excel-filter__tree-alike-item>igx-checkbox{margin-inline-start:max(var(--is-large, 1)*max(2.75rem,-1 * 2.75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(2.25rem,-1 * 2.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.75rem,-1 * 1.75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[dir=rtl] .igx-excel-filter__sort .igx-button-group{flex-direction:row-reverse}[dir=rtl] .igx-excel-filter__sort .igx-button-group igx-icon,[dir=rtl] .igx-excel-filter__sort .igx-button-group [igxButton]{direction:ltr}.igx-excel-filter__actions-pin--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__actions-selected igx-icon{color:var(--actions-selected-icon-color)}.igx-excel-filter__actions-filter--active{background:color-mix(in srgb,var(--_excel-filtering-accent-color) 8%,var(--background));color:var(--actions-hover-foreground)}.igx-excel-filter__actions-clear--disabled{color:var(--actions-disabled-foreground);pointer-events:none}.igx-excel-filter__menu-header-actions{display:flex;margin-inline-start:auto;gap:.25rem}.igx-excel-filter__secondary-header{display:flex;align-items:center;padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));color:var(--header-foreground);border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-excel-filter__filter-results{position:absolute;width:.0625rem;height:.0625rem;overflow:hidden}.igx-excel-filter__menu-footer{display:flex;justify-content:space-between}.igx-excel-filter__apply{flex-grow:1}.igx-excel-filter__apply [igxButton]{width:100%}.igx-excel-filter__cancel{flex-grow:1}.igx-excel-filter__cancel [igxButton]{width:100%}.igx-excel-filter--inline{box-shadow:none;width:100%}.igx-excel-filter__menu--compact .igx-excel-filter__actions-select,.igx-excel-filter__menu--compact .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__menu--compact .igx-excel-filter__sort igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__sort header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__move igx-buttongroup{width:13rem}.igx-excel-filter__menu--compact .igx-excel-filter__move header{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);text-transform:capitalize}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}.igx-excel-filter__menu--compact .igx-excel-filter__menu-header-actions span{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom)}.igx-excel-filter__menu--cosy .igx-excel-filter__actions-select,.igx-excel-filter__menu--cosy .igx-excel-filter__actions-selected{justify-content:center}.igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__empty{color:hsl(from hsla(from color(from var(--background) var(--y-contrast)) h 0 l/1) h s 60%)}.igx-excel-filter__secondary{--component-size: var(--ig-size, var(--ig-size-large));width:32.5rem;min-width:32.5rem;background:var(--background);box-shadow:var(--ig-elevation-12);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem);display:flex;flex-direction:column}.igx-excel-filter__secondary-main{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:1rem;height:14.5rem;overflow:auto}.igx-excel-filter__secondary-footer{--ig-size: 2;display:flex;justify-content:space-between;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__secondary-footer .igx-excel-filter__clear{flex-grow:1}.igx-excel-filter__secondary-footer .igx-excel-filter__apply,.igx-excel-filter__secondary-footer .igx-excel-filter__cancel{flex-grow:0}.igx-excel-filter__cancel+.igx-excel-filter__apply{margin-inline-start:1rem}.igx-excel-filter__condition{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center}.igx-excel-filter__condition igx-select~igx-input-group,.igx-excel-filter__condition igx-select~igx-date-picker,.igx-excel-filter__condition igx-select~igx-time-picker{margin-inline-start:1rem}.igx-excel-filter__condition igx-buttongroup{grid-column:1/-1;justify-self:start;min-width:30%;margin-block:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__condition [igxIconButton]{--component-size: var(--ig-size, var(--ig-size-large));margin-inline-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter__add-filter{--ig-icon-size: 1.125rem}.igx-excel-filter__add-filter:is(.igx-button){margin-block-start:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-excel-filter__secondary-header{border-block-end:.0625rem solid var(--border-color)}.igx-excel-filter__secondary-footer{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));border-top:.0625rem solid var(--border-color)}.igx-excel-filter__menu-main igx-list{--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100))}.igx-excel-filter__menu-header>h4{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-excel-filter{box-shadow:var(--ig-elevation-3),0 0 0 .0625rem var(--border-color);border-radius:clamp(0rem,calc(var(--ig-radius-factor, 1) * .25rem),.25rem)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled,.igx-excel-filter .igx-excel-filter__actions-clear,.igx-excel-filter .igx-excel-filter__actions-filter--active,.igx-excel-filter .igx-excel-filter__actions-filter,.igx-excel-filter .igx-excel-filter__actions-selected,.igx-excel-filter .igx-excel-filter__actions-select,.igx-excel-filter .igx-excel-filter__actions-hide,.igx-excel-filter .igx-excel-filter__actions-unpin,.igx-excel-filter .igx-excel-filter__actions-pin--disabled,.igx-excel-filter .igx-excel-filter__actions-pin{padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));margin-inline:.5rem;margin-block-end:.25rem;border-radius:.25rem}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2;color:var(--actions-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-clear:hover,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover,.igx-excel-filter .igx-excel-filter__actions-filter:hover,.igx-excel-filter .igx-excel-filter__actions-selected:hover,.igx-excel-filter .igx-excel-filter__actions-select:hover,.igx-excel-filter .igx-excel-filter__actions-hide:hover,.igx-excel-filter .igx-excel-filter__actions-unpin:hover,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover,.igx-excel-filter .igx-excel-filter__actions-pin:hover,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-clear:focus,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus,.igx-excel-filter .igx-excel-filter__actions-filter:focus,.igx-excel-filter .igx-excel-filter__actions-selected:focus,.igx-excel-filter .igx-excel-filter__actions-select:focus,.igx-excel-filter .igx-excel-filter__actions-hide:focus,.igx-excel-filter .igx-excel-filter__actions-unpin:focus,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus,.igx-excel-filter .igx-excel-filter__actions-pin:focus{background:var(--actions-hover-background)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:hover igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-select:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled:focus igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin:focus igx-icon{color:var(--actions-hover-icon-color)}.igx-excel-filter .igx-excel-filter__actions-clear--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-clear igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter--active igx-icon,.igx-excel-filter .igx-excel-filter__actions-filter igx-icon,.igx-excel-filter .igx-excel-filter__actions-selected igx-icon,.igx-excel-filter .igx-excel-filter__actions-select igx-icon,.igx-excel-filter .igx-excel-filter__actions-hide igx-icon,.igx-excel-filter .igx-excel-filter__actions-unpin igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin--disabled igx-icon,.igx-excel-filter .igx-excel-filter__actions-pin igx-icon{--component-size: 2}.igx-excel-filter .igx-excel-filter__move,.igx-excel-filter .igx-excel-filter__sort{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-excel-filter .igx-excel-filter__move header,.igx-excel-filter .igx-excel-filter__sort header{margin-block-end:max(var(--is-large, 1)*max(.25rem,-1 * .25rem),var(--is-medium, 1)*max(.25rem,-1 * .25rem),var(--is-small, 1)*max(0rem,-1 * 0rem))!important;text-transform:capitalize!important}.igx-excel-filter .igx-excel-filter__move igx-icon,.igx-excel-filter .igx-excel-filter__sort igx-icon{--component-size: 2}.igx-excel-filter__menu{background:var(--background)}.igx-excel-filter__menu .igx-button-group__item:not(:nth-child(1)){margin:0}.igx-excel-filter__menu-header{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing)))) max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing)))) max(var(--is-large, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)),-1 * max(var(--is-large, 1) * max(1rem,-1 * 1rem),var(--is-medium, 1) * max(.75rem,-1 * .75rem),var(--is-small, 1) * max(.5rem,-1 * .5rem)))*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-excel-filter__menu-main{padding:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));gap:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(1rem,-1 * 1rem))}.igx-excel-filter__menu-main igx-list{--background: var(--secondary-background);--_border-color: color-mix(in srgb, var(--ig-excel-filtering-accent-color) 16%, var(--ig-excel-filtering-background));border-block:.0625rem dashed var(--_border-color, var(--ig-gray-100));margin-inline:calc(max(var(--is-large, 1) * max(-1rem,-1 * -1rem),var(--is-medium, 1) * max(-1rem,-1 * -1rem),var(--is-small, 1) * max(-1rem,-1 * -1rem))*-1)}.igx-excel-filter__menu-main igx-list>div{gap:inherit}.igx-excel-filter__menu-main igx-list igx-display-container{display:flex;flex-direction:column;gap:inherit;padding:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-excel-filter__actions-filter{margin-block-end:0}.igx-excel-filter__actions-pin--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__actions-clear--disabled igx-icon{color:var(--actions-disabled-foreground)}.igx-excel-filter__sort{padding-block-end:0}.igx-excel-filter__move{margin-block-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem),var(--is-medium, 1)*max(1rem,-1 * 1rem),var(--is-small, 1)*max(.75rem,-1 * .75rem))}.igx-excel-filter .igx-excel-filter__sort+igx-excel-filter__move{margin-block-start:max(var(--is-large, 1)*max(.5rem,-1 * .5rem),var(--is-medium, 1)*max(.5rem,-1 * .5rem),var(--is-small, 1)*max(.25rem,-1 * .25rem))}.igx-excel-filter .ig-typography .igx-excel-filter__menu--compact .igx-excel-filter__menu-header>h4{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}}}\n"] }]
9757
10044
  }], propDecorators: { defaultClass: [{
9758
10045
  type: HostBinding,
9759
10046
  args: ['class.igx-excel-filter']
@@ -10027,7 +10314,7 @@ class IgxGridEditingActionsComponent extends IgxGridActionsBaseDirective {
10027
10314
  */
10028
10315
  get disabled() {
10029
10316
  if (!this.isRow(this.strip.context)) {
10030
- return undefined;
10317
+ return;
10031
10318
  }
10032
10319
  return this.strip.context.disabled;
10033
10320
  }
@@ -10170,7 +10457,7 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
10170
10457
  */
10171
10458
  get pinned() {
10172
10459
  if (!this.isRow(this.strip.context)) {
10173
- return undefined;
10460
+ return;
10174
10461
  }
10175
10462
  const context = this.strip.context;
10176
10463
  if (context && !this.iconsRendered) {
@@ -10187,7 +10474,7 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
10187
10474
  */
10188
10475
  get inPinnedArea() {
10189
10476
  if (!this.isRow(this.strip.context)) {
10190
- return undefined;
10477
+ return;
10191
10478
  }
10192
10479
  const context = this.strip.context;
10193
10480
  return this.pinned && !context.disabled;
@@ -10200,7 +10487,7 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
10200
10487
  */
10201
10488
  get pinnedTop() {
10202
10489
  if (!this.isRow(this.strip.context)) {
10203
- return undefined;
10490
+ return;
10204
10491
  }
10205
10492
  return this.strip.context.grid.isRowPinningToTop;
10206
10493
  }
@@ -10317,7 +10604,7 @@ class IgxColumnMovingDragDirective extends IgxDragDirective {
10317
10604
  this._unsubscribe();
10318
10605
  super.ngOnDestroy();
10319
10606
  }
10320
- cancelMove(event) {
10607
+ onEscape(event) {
10321
10608
  this.cms.cancelDrop = true;
10322
10609
  this.onPointerUp(event);
10323
10610
  }
@@ -10338,7 +10625,7 @@ class IgxColumnMovingDragDirective extends IgxDragDirective {
10338
10625
  this.column.grid.columnMovingStart.emit(movingStartArgs);
10339
10626
  this.subscription$ = fromEvent(this.column.grid.document.defaultView, 'keydown').pipe(takeUntil(this._destroy)).subscribe((ev) => {
10340
10627
  if (ev.key === this.platformUtil.KEYMAP.ESCAPE) {
10341
- this.cancelMove(event);
10628
+ this.onEscape(ev);
10342
10629
  }
10343
10630
  });
10344
10631
  }
@@ -10354,7 +10641,7 @@ class IgxColumnMovingDragDirective extends IgxDragDirective {
10354
10641
  };
10355
10642
  this.column.grid.columnMoving.emit(args);
10356
10643
  if (args.cancel) {
10357
- this.cancelMove(event);
10644
+ this.onEscape(event);
10358
10645
  }
10359
10646
  }
10360
10647
  }
@@ -10809,7 +11096,7 @@ class IgxGroupAreaDropDirective extends IgxDropDirective {
10809
11096
  if (!this.columnBelongsToGrid(column)) {
10810
11097
  return;
10811
11098
  }
10812
- drag.icon.innerText = 'block';
11099
+ event.detail.owner.icon.innerText = 'block';
10813
11100
  this.hovered = false;
10814
11101
  }
10815
11102
  closestParentByAttr(elem, attr) {
@@ -11001,7 +11288,7 @@ class IgxColumnResizingService {
11001
11288
  let newCombinedSpan = updatedCombinedSpan;
11002
11289
  const newColsToResize = [];
11003
11290
  columnsToResize.forEach((col) => {
11004
- const currentResizeWidth = parseFloat(col.target.calcWidth?.toString() || col.target.defaultWidth);
11291
+ const currentResizeWidth = parseFloat(col.target.calcWidth);
11005
11292
  const resizeScaled = (diff / updatedCombinedSpan) * col.target.gridColumnSpan;
11006
11293
  const colWidth = col.target.width;
11007
11294
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
@@ -11320,7 +11607,7 @@ class IgxGridHeaderComponent {
11320
11607
  triggerSort() {
11321
11608
  const groupingExpr = this.grid.groupingExpressions ?
11322
11609
  this.grid.groupingExpressions.find((expr) => expr.fieldName === this.column.field) :
11323
- this.grid.groupArea?.expressions ? this.grid.groupArea?.expressions.find(expr => expr.fieldName === this.column.field) : null;
11610
+ this.grid.groupArea?.expressions ? this.grid.groupArea?.expressions.find((expr) => expr.fieldName === this.column.field) : null;
11324
11611
  const sortDir = groupingExpr ?
11325
11612
  this.sortDirection + 1 > SortingDirection.Desc ? SortingDirection.Asc : SortingDirection.Desc
11326
11613
  : this.sortDirection + 1 > SortingDirection.Desc ? SortingDirection.None : this.sortDirection + 1;
@@ -11471,7 +11758,7 @@ class IgxFilteringService {
11471
11758
  ...{ target: filterIconTarget }
11472
11759
  });
11473
11760
  this._overlayService.opening
11474
- .pipe(first(overlay => overlay.id === id), takeUntil(this.destroy$))
11761
+ .pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
11475
11762
  .subscribe((event) => {
11476
11763
  if (event.componentRef) {
11477
11764
  event.componentRef.instance.initialize(column, this._overlayService);
@@ -11479,13 +11766,13 @@ class IgxFilteringService {
11479
11766
  }
11480
11767
  this.lastActiveNode = this.grid.navigation.activeNode;
11481
11768
  });
11482
- this._overlayService.opened.pipe(first(overlay => overlay.id === id), takeUntil(this.destroy$)).subscribe((event) => {
11769
+ this._overlayService.opened.pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$)).subscribe((event) => {
11483
11770
  if (event.componentRef) {
11484
11771
  event.componentRef.instance.populateData();
11485
11772
  }
11486
11773
  });
11487
11774
  this._overlayService.closed
11488
- .pipe(first(overlay => overlay.id === id), takeUntil(this.destroy$))
11775
+ .pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
11489
11776
  .subscribe(() => {
11490
11777
  this._overlayService.detach(id);
11491
11778
  this.grid.navigation.activeNode = this.lastActiveNode;
@@ -11902,7 +12189,7 @@ class IgxFilteringService {
11902
12189
  let count = 0;
11903
12190
  let operand;
11904
12191
  for (let i = 0; i < expressions.filteringOperands.length; i++) {
11905
- operand = expressions.filteringOperands[i];
12192
+ operand = expressions[i];
11906
12193
  if (operand && isTree(operand)) {
11907
12194
  if (operand.operator === FilteringLogic.And) {
11908
12195
  count++;
@@ -12094,7 +12381,7 @@ class IgxGridFilteringCellComponent {
12094
12381
  }
12095
12382
  }
12096
12383
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12097
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridFilteringCellComponent, isStandalone: true, selector: "igx-grid-filtering-cell", inputs: { column: "column" }, host: { properties: { "class": "this.styleClasses", "class.igx-grid-th--pinned": "this.pinnedCss", "class.igx-grid-th--pinned-last": "this.pinnedLastCss", "class.igx-grid-th--pinned-first": "this.pinnedFirstCSS", "attr.role": "this.role" } }, viewQueries: [{ propertyName: "emptyFilter", first: true, predicate: ["emptyFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultFilter", first: true, predicate: ["defaultFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexFilter", first: true, predicate: ["complexFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "chipsArea", first: true, predicate: ["chipsArea"], descendants: true, read: IgxChipsAreaComponent }, { propertyName: "moreIcon", first: true, predicate: ["moreIcon"], descendants: true, read: ElementRef }, { propertyName: "ghostChip", first: true, predicate: ["ghostChip"], descendants: true, read: IgxChipComponent }, { propertyName: "complexChip", first: true, predicate: ["complexChip"], descendants: true, read: IgxChipComponent }], ngImport: i0, template: "<ng-template #emptyFilter>\n <igx-chips-area [attr.draggable]=\"false\" class=\"igx-filtering-chips\">\n <igx-chip #ghostChip [attr.draggable]=\"false\" (click)=\"onChipClicked()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon\n [attr.draggable]=\"false\"\n igxPrefix\n family=\"default\"\n name=\"filter_list\"\n ></igx-icon>\n <span [attr.draggable]=\"false\">{{filteringService.grid.resourceStrings.igx_grid_filter}}</span>\n </igx-chip>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #defaultFilter>\n <igx-chips-area #chipsArea class=\"igx-filtering-chips\">\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (item of expressionsList; track item.expression; let last = $last; let index = $index) {\n @if (isChipVisible(index)) {\n <igx-chip\n [removable]=\"true\"\n [tabIndex]=\"-1\"\n [style.--ig-size]=\"filteringElementsSize\"\n (click)=\"onChipClicked(item.expression)\"\n (remove)=\"onChipRemoved($event, item)\">\n <igx-icon igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition!.iconName\">\n </igx-icon>\n <span #label>\n {{filteringService.getChipLabel(item.expression)}}\n </span>\n </igx-chip>\n }\n @if (!last && isChipVisible(index + 1)) {\n <span class=\"igx-filtering-chips__connector\">{{filteringService.getOperatorAsString(item.afterOperator)}}</span>\n }\n }\n <div #moreIcon [ngClass]=\"filteringIndicatorClass()\" (click)=\"onChipClicked()\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <igx-badge [value]=\"moreFiltersCount\"></igx-badge>\n </div>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #complexFilter>\n <igx-chip #complexChip [removable]=\"true\" (remove)=\"clearFiltering()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon igxPrefix family=\"default\" name=\"filter_list\"></igx-icon>\n <span>{{filteringService.grid.resourceStrings.igx_grid_complex_filter}}</span>\n </igx-chip>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n", dependencies: [{ kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape", "outlined", "dot"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12384
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridFilteringCellComponent, isStandalone: true, selector: "igx-grid-filtering-cell", inputs: { column: "column" }, host: { properties: { "class": "this.styleClasses", "class.igx-grid-th--pinned": "this.pinnedCss", "class.igx-grid-th--pinned-last": "this.pinnedLastCss", "class.igx-grid-th--pinned-first": "this.pinnedFirstCSS", "attr.role": "this.role" } }, viewQueries: [{ propertyName: "emptyFilter", first: true, predicate: ["emptyFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultFilter", first: true, predicate: ["defaultFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexFilter", first: true, predicate: ["complexFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "chipsArea", first: true, predicate: ["chipsArea"], descendants: true, read: IgxChipsAreaComponent }, { propertyName: "moreIcon", first: true, predicate: ["moreIcon"], descendants: true, read: ElementRef }, { propertyName: "ghostChip", first: true, predicate: ["ghostChip"], descendants: true, read: IgxChipComponent }, { propertyName: "complexChip", first: true, predicate: ["complexChip"], descendants: true, read: IgxChipComponent }], ngImport: i0, template: "<ng-template #emptyFilter>\n <igx-chips-area [attr.draggable]=\"false\" class=\"igx-filtering-chips\">\n <igx-chip #ghostChip [attr.draggable]=\"false\" (click)=\"onChipClicked()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon\n [attr.draggable]=\"false\"\n igxPrefix\n family=\"default\"\n name=\"filter_list\"\n ></igx-icon>\n <span [attr.draggable]=\"false\">{{filteringService.grid.resourceStrings.igx_grid_filter}}</span>\n </igx-chip>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #defaultFilter>\n <igx-chips-area #chipsArea class=\"igx-filtering-chips\">\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (item of expressionsList; track item.expression; let last = $last; let index = $index) {\n @if (isChipVisible(index)) {\n <igx-chip\n [removable]=\"true\"\n [tabIndex]=\"-1\"\n [style.--ig-size]=\"filteringElementsSize\"\n (click)=\"onChipClicked(item.expression)\"\n (remove)=\"onChipRemoved($event, item)\">\n <igx-icon igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition.iconName\">\n </igx-icon>\n <span #label>\n {{filteringService.getChipLabel(item.expression)}}\n </span>\n </igx-chip>\n }\n @if (!last && isChipVisible(index + 1)) {\n <span class=\"igx-filtering-chips__connector\">{{filteringService.getOperatorAsString(item.afterOperator)}}</span>\n }\n }\n <div #moreIcon [ngClass]=\"filteringIndicatorClass()\" (click)=\"onChipClicked()\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <igx-badge [value]=\"moreFiltersCount\"></igx-badge>\n </div>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #complexFilter>\n <igx-chip #complexChip [removable]=\"true\" (remove)=\"clearFiltering()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon igxPrefix family=\"default\" name=\"filter_list\"></igx-icon>\n <span>{{filteringService.grid.resourceStrings.igx_grid_complex_filter}}</span>\n </igx-chip>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n", dependencies: [{ kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape", "outlined", "dot"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12098
12385
  }
12099
12386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringCellComponent, decorators: [{
12100
12387
  type: Component,
@@ -12106,7 +12393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
12106
12393
  NgClass,
12107
12394
  IgxBadgeComponent,
12108
12395
  NgTemplateOutlet
12109
- ], template: "<ng-template #emptyFilter>\n <igx-chips-area [attr.draggable]=\"false\" class=\"igx-filtering-chips\">\n <igx-chip #ghostChip [attr.draggable]=\"false\" (click)=\"onChipClicked()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon\n [attr.draggable]=\"false\"\n igxPrefix\n family=\"default\"\n name=\"filter_list\"\n ></igx-icon>\n <span [attr.draggable]=\"false\">{{filteringService.grid.resourceStrings.igx_grid_filter}}</span>\n </igx-chip>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #defaultFilter>\n <igx-chips-area #chipsArea class=\"igx-filtering-chips\">\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (item of expressionsList; track item.expression; let last = $last; let index = $index) {\n @if (isChipVisible(index)) {\n <igx-chip\n [removable]=\"true\"\n [tabIndex]=\"-1\"\n [style.--ig-size]=\"filteringElementsSize\"\n (click)=\"onChipClicked(item.expression)\"\n (remove)=\"onChipRemoved($event, item)\">\n <igx-icon igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition!.iconName\">\n </igx-icon>\n <span #label>\n {{filteringService.getChipLabel(item.expression)}}\n </span>\n </igx-chip>\n }\n @if (!last && isChipVisible(index + 1)) {\n <span class=\"igx-filtering-chips__connector\">{{filteringService.getOperatorAsString(item.afterOperator)}}</span>\n }\n }\n <div #moreIcon [ngClass]=\"filteringIndicatorClass()\" (click)=\"onChipClicked()\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <igx-badge [value]=\"moreFiltersCount\"></igx-badge>\n </div>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #complexFilter>\n <igx-chip #complexChip [removable]=\"true\" (remove)=\"clearFiltering()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon igxPrefix family=\"default\" name=\"filter_list\"></igx-icon>\n <span>{{filteringService.grid.resourceStrings.igx_grid_complex_filter}}</span>\n </igx-chip>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n" }]
12396
+ ], template: "<ng-template #emptyFilter>\n <igx-chips-area [attr.draggable]=\"false\" class=\"igx-filtering-chips\">\n <igx-chip #ghostChip [attr.draggable]=\"false\" (click)=\"onChipClicked()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon\n [attr.draggable]=\"false\"\n igxPrefix\n family=\"default\"\n name=\"filter_list\"\n ></igx-icon>\n <span [attr.draggable]=\"false\">{{filteringService.grid.resourceStrings.igx_grid_filter}}</span>\n </igx-chip>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #defaultFilter>\n <igx-chips-area #chipsArea class=\"igx-filtering-chips\">\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (item of expressionsList; track item.expression; let last = $last; let index = $index) {\n @if (isChipVisible(index)) {\n <igx-chip\n [removable]=\"true\"\n [tabIndex]=\"-1\"\n [style.--ig-size]=\"filteringElementsSize\"\n (click)=\"onChipClicked(item.expression)\"\n (remove)=\"onChipRemoved($event, item)\">\n <igx-icon igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition.iconName\">\n </igx-icon>\n <span #label>\n {{filteringService.getChipLabel(item.expression)}}\n </span>\n </igx-chip>\n }\n @if (!last && isChipVisible(index + 1)) {\n <span class=\"igx-filtering-chips__connector\">{{filteringService.getOperatorAsString(item.afterOperator)}}</span>\n }\n }\n <div #moreIcon [ngClass]=\"filteringIndicatorClass()\" (click)=\"onChipClicked()\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <igx-badge [value]=\"moreFiltersCount\"></igx-badge>\n </div>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #complexFilter>\n <igx-chip #complexChip [removable]=\"true\" (remove)=\"clearFiltering()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon igxPrefix family=\"default\" name=\"filter_list\"></igx-icon>\n <span>{{filteringService.grid.resourceStrings.igx_grid_complex_filter}}</span>\n </igx-chip>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n" }]
12110
12397
  }], ctorParameters: () => [], propDecorators: { column: [{
12111
12398
  type: Input
12112
12399
  }], emptyFilter: [{
@@ -12169,9 +12456,9 @@ class IgxResizeHandleDirective {
12169
12456
  /**
12170
12457
  * @hidden
12171
12458
  */
12172
- onDoubleClick(event) {
12459
+ onDoubleClick() {
12173
12460
  this._dblClick = true;
12174
- this.initResizeService(event);
12461
+ this.initResizeService();
12175
12462
  this.colResizingService.autosizeColumnOnDblClick();
12176
12463
  }
12177
12464
  /**
@@ -12228,7 +12515,7 @@ class IgxResizeHandleDirective {
12228
12515
  }
12229
12516
  }
12230
12517
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxResizeHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12231
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.1", type: IgxResizeHandleDirective, isStandalone: true, selector: "[igxResizeHandle]", inputs: { column: ["igxResizeHandle", "column"] }, host: { listeners: { "dblclick": "onDoubleClick($event)" } }, ngImport: i0 }); }
12518
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.1", type: IgxResizeHandleDirective, isStandalone: true, selector: "[igxResizeHandle]", inputs: { column: ["igxResizeHandle", "column"] }, host: { listeners: { "dblclick": "onDoubleClick()" } }, ngImport: i0 }); }
12232
12519
  }
12233
12520
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxResizeHandleDirective, decorators: [{
12234
12521
  type: Directive,
@@ -12241,7 +12528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
12241
12528
  args: ['igxResizeHandle']
12242
12529
  }], onDoubleClick: [{
12243
12530
  type: HostListener,
12244
- args: ['dblclick', ['$event']]
12531
+ args: ['dblclick']
12245
12532
  }] } });
12246
12533
 
12247
12534
  class IgxColumnMovingDropDirective extends IgxDropDirective {
@@ -12566,7 +12853,7 @@ class IgxGridHeaderGroupComponent {
12566
12853
  }
12567
12854
  else {
12568
12855
  const selectedFields = this.grid.selectionService.getSelectedColumns();
12569
- if ((selectedFields.length === columnsToSelect.length) && selectedFields.every((el) => columnsToSelect.includes(el))
12856
+ if ((selectedFields.length === columnsToSelect.length) && selectedFields.every(el => columnsToSelect.includes(el))
12570
12857
  || !clearSelection) {
12571
12858
  this.grid.selectionService.deselectColumns(columnsToSelect, event);
12572
12859
  }
@@ -12922,15 +13209,13 @@ class IgxGridFilteringRowComponent {
12922
13209
  if (!eventArgs) {
12923
13210
  return;
12924
13211
  }
12925
- // DateTime editors are bound to igxDateTimeEditor's (valueChange), which emits the
12926
- // parsed Date rather than a DOM InputEvent.
13212
+ // The 'iskeyPressed' flag is needed for a case in IE, because the input event is fired on focus and for some reason,
13213
+ // when you have a japanese character as a placeholder, on init the value here is empty string .
13214
+ const target = eventArgs.target;
12927
13215
  if (this.column.dataType === GridColumnDataType.DateTime) {
12928
13216
  this.value = eventArgs;
12929
13217
  return;
12930
13218
  }
12931
- // The 'iskeyPressed' flag is needed for a case in IE, because the input event is fired on focus and for some reason,
12932
- // when you have a japanese character as a placeholder, on init the value here is empty string .
12933
- const target = eventArgs.target;
12934
13219
  if (this.platform.isEdge && target.type !== 'number'
12935
13220
  || this.isKeyPressed || target.value || target.checkValidity()) {
12936
13221
  this.value = target.value;
@@ -13391,7 +13676,7 @@ class IgxGridFilteringRowComponent {
13391
13676
  return this.nativeElement.offsetWidth < this.NARROW_WIDTH_THRESHOLD;
13392
13677
  }
13393
13678
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13394
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridFilteringRowComponent, isStandalone: true, selector: "igx-grid-filtering-row", inputs: { column: "column", value: "value" }, host: { listeners: { "keydown": "onKeydownHandler($event)" }, properties: { "class.igx-grid__filtering-row": "this.defaultCSSClass" } }, viewQueries: [{ propertyName: "defaultFilterUI", first: true, predicate: ["defaultFilterUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultDateUI", first: true, predicate: ["defaultDateUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultTimeUI", first: true, predicate: ["defaultTimeUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultDateTimeUI", first: true, predicate: ["defaultDateTimeUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }, { propertyName: "dropDownConditions", first: true, predicate: ["inputGroupConditions"], descendants: true, read: IgxDropDownComponent, static: true }, { propertyName: "chipsArea", first: true, predicate: ["chipsArea"], descendants: true, read: IgxChipsAreaComponent, static: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: ElementRef }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "inputGroupPrefix", first: true, predicate: ["inputGroupPrefix"], descendants: true, read: ElementRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "operand", first: true, predicate: ["operand"], descendants: true }, { propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true, static: true }, { propertyName: "dropDownOperators", predicate: ["operators"], descendants: true, read: IgxDropDownComponent }], ngImport: i0, template: "<!-- Have to apply styles inline because of the overlay outlet ... -->\n<igx-drop-down\n #inputGroupConditions\n [style.--ig-size]=\"filteringElementsSize\"\n [height]=\"'200px'\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n>\n @for (condition of conditions; track condition) {\n <igx-drop-down-item\n [value]=\"condition\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n translateCondition(condition)\n }}</span>\n </div>\n </igx-drop-down-item>\n }\n</igx-drop-down>\n\n<ng-template #defaultFilterUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [type]=\"type\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n @if (column.dataType === 'percent') {\n <span class=\"igx-grid__filtering-row-percent-hint\">{{\n value\n | percent\n : column.pipeArgs.digitsInfo\n : filteringService.grid.locale\n }}</span>\n }\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-template #defaultDateUI>\n <igx-date-picker\n #picker\n [(value)]=\"value\"\n [locale]=\"filteringService.grid.locale\"\n (click)=\"expression.condition!.isUnary ? null : picker.open()\"\n type=\"box\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [formatter]=\"column.formatter!\"\n [placeholder]=\"placeholder\"\n [weekStart]=\"column.pipeArgs.weekStart!\"\n (keydown)=\"onInputKeyDown($event)\"\n (focusout)=\"onInputGroupFocusout()\"\n (closed)=\"focusEditElement()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition!.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n</ng-template>\n\n<ng-template #defaultTimeUI>\n <igx-time-picker\n #picker\n [(value)]=\"value\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [locale]=\"filteringService.grid.locale\"\n [formatter]=\"column.formatter!\"\n type=\"box\"\n [style.--ig-size]=\"filteringElementsSize\"\n [placeholder]=\"placeholder\"\n (closed)=\"focusEditElement()\"\n (focusout)=\"onInputGroupFocusout()\"\n (keydown)=\"onInputKeyDown($event)\"\n (click)=\"expression.condition!.isUnary ? null : picker.open()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition!.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n</ng-template>\n\n<ng-template #defaultDateTimeUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n [locale]=\"filteringService.grid.locale\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat!\"\n defaultFormatType=\"dateTime\"\n [value]=\"value\"\n (valueChange)=\"onInput($event)\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: this }\"\n></ng-container>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-start\"\n (keydown)=\"onLeftArrowKeyDown($event)\"\n (click)=\"scrollChipsOnArrowPress('left')\"\n >\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n}\n\n<div #container class=\"igx-grid__filtering-row-main\">\n <div>\n <igx-chips-area #chipsArea>\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (\n item of expressionsList;\n track item.expression;\n let i = $index;\n let last = $last\n ) {\n <ng-container tabindex=\"0\">\n <igx-chip\n #chip\n id=\"chip\"\n (pointerdown)=\"onChipPointerdown($event, chip)\"\n (click)=\"onChipClick($event, item)\"\n (keydown)=\"onChipKeyDown($event, item)\"\n (remove)=\"onChipRemoved($event, item)\"\n [selectable]=\"false\"\n [selected]=\"item.isSelected\"\n [style.--ig-size]=\"filteringElementsSize\"\n [removable]=\"true\"\n >\n <igx-icon\n igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition!.iconName\"\n >\n </igx-icon>\n <span>{{ filteringService.getChipLabel(item.expression) }}</span>\n </igx-chip>\n @if (!last) {\n <span id=\"operand\">\n <button\n igxButton\n type=\"button\"\n (click)=\"toggleOperatorsDropDown($event, i)\"\n [igxDropDownItemNavigation]=\"operators\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"expand_more\"></igx-icon>\n <span>{{\n filteringService.getOperatorAsString(item.afterOperator)\n }}</span>\n </button>\n <igx-drop-down\n #operators\n (selectionChanging)=\"onLogicOperatorChanged($event, item)\"\n >\n <igx-drop-down-item\n [value]=\"0\"\n [selected]=\"item.afterOperator === 0\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_and\n }}</igx-drop-down-item\n >\n <igx-drop-down-item\n [value]=\"1\"\n [selected]=\"item.afterOperator === 1\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_or\n }}</igx-drop-down-item\n >\n </igx-drop-down>\n </span>\n }\n </ng-container>\n }\n </igx-chips-area>\n </div>\n</div>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-end\"\n (click)=\"scrollChipsOnArrowPress('right')\"\n >\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n}\n\n<div\n #buttonsContainer\n [ngClass]=\"\n isNarrowWidth\n ? 'igx-grid__filtering-row-editing-buttons--small'\n : 'igx-grid__filtering-row-editing-buttons'\n \"\n>\n @if (!isNarrowWidth) {\n <button\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_reset\n }}</span>\n </button>\n <button\n #closeButton\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_close\n }}</span>\n </button>\n }\n @if (isNarrowWidth) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n </button>\n <button\n #closeButton\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n </button>\n }\n</div>\n", dependencies: [{ kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy", "role"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }, { kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }, { kind: "pipe", type: IgxPercentFormatterPipe, name: "percent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13679
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridFilteringRowComponent, isStandalone: true, selector: "igx-grid-filtering-row", inputs: { column: "column", value: "value" }, host: { listeners: { "keydown": "onKeydownHandler($event)" }, properties: { "class.igx-grid__filtering-row": "this.defaultCSSClass" } }, viewQueries: [{ propertyName: "defaultFilterUI", first: true, predicate: ["defaultFilterUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultDateUI", first: true, predicate: ["defaultDateUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultTimeUI", first: true, predicate: ["defaultTimeUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultDateTimeUI", first: true, predicate: ["defaultDateTimeUI"], descendants: true, read: TemplateRef, static: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }, { propertyName: "dropDownConditions", first: true, predicate: ["inputGroupConditions"], descendants: true, read: IgxDropDownComponent, static: true }, { propertyName: "chipsArea", first: true, predicate: ["chipsArea"], descendants: true, read: IgxChipsAreaComponent, static: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: ElementRef }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "inputGroupPrefix", first: true, predicate: ["inputGroupPrefix"], descendants: true, read: ElementRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "operand", first: true, predicate: ["operand"], descendants: true }, { propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true, static: true }, { propertyName: "dropDownOperators", predicate: ["operators"], descendants: true, read: IgxDropDownComponent }], ngImport: i0, template: "<!-- Have to apply styles inline because of the overlay outlet ... -->\n<igx-drop-down\n #inputGroupConditions\n [style.--ig-size]=\"filteringElementsSize\"\n [height]=\"'200px'\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n>\n @for (condition of conditions; track condition) {\n <igx-drop-down-item\n [value]=\"condition\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n translateCondition(condition)\n }}</span>\n </div>\n </igx-drop-down-item>\n }\n</igx-drop-down>\n\n<ng-template #defaultFilterUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [type]=\"type\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n @if (column.dataType === 'percent') {\n <span class=\"igx-grid__filtering-row-percent-hint\">{{\n value\n | percent\n : column.pipeArgs.digitsInfo\n : filteringService.grid.locale\n }}</span>\n }\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-template #defaultDateUI>\n <igx-date-picker\n #picker\n [(value)]=\"value\"\n [locale]=\"filteringService.grid.locale\"\n (click)=\"expression.condition.isUnary ? null : picker.open()\"\n type=\"box\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [placeholder]=\"placeholder\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n (keydown)=\"onInputKeyDown($event)\"\n (focusout)=\"onInputGroupFocusout()\"\n (closed)=\"focusEditElement()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n</ng-template>\n\n<ng-template #defaultTimeUI>\n <igx-time-picker\n #picker\n [(value)]=\"value\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [displayFormat]=\"column.pipeArgs.format\"\n [locale]=\"filteringService.grid.locale\"\n [formatter]=\"column.formatter\"\n type=\"box\"\n [style.--ig-size]=\"filteringElementsSize\"\n [placeholder]=\"placeholder\"\n (closed)=\"focusEditElement()\"\n (focusout)=\"onInputGroupFocusout()\"\n (keydown)=\"onInputKeyDown($event)\"\n (click)=\"expression.condition.isUnary ? null : picker.open()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n</ng-template>\n\n<ng-template #defaultDateTimeUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n [locale]=\"filteringService.grid.locale\"\n [displayFormat]=\"column.pipeArgs.format\"\n [igxDateTimeEditor]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n defaultFormatType=\"dateTime\"\n [value]=\"value\"\n (valueChange)=\"onInput($event)\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: this }\"\n></ng-container>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-start\"\n (keydown)=\"onLeftArrowKeyDown($event)\"\n (click)=\"scrollChipsOnArrowPress('left')\"\n >\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n}\n\n<div #container class=\"igx-grid__filtering-row-main\">\n <div>\n <igx-chips-area #chipsArea>\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (\n item of expressionsList;\n track item.expression;\n let i = $index;\n let last = $last\n ) {\n <ng-container tabindex=\"0\">\n <igx-chip\n #chip\n id=\"chip\"\n (pointerdown)=\"onChipPointerdown($event, chip)\"\n (click)=\"onChipClick($event, item)\"\n (keydown)=\"onChipKeyDown($event, item)\"\n (remove)=\"onChipRemoved($event, item)\"\n [selectable]=\"false\"\n [selected]=\"item.isSelected\"\n [style.--ig-size]=\"filteringElementsSize\"\n [removable]=\"true\"\n >\n <igx-icon\n igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition.iconName\"\n >\n </igx-icon>\n <span>{{ filteringService.getChipLabel(item.expression) }}</span>\n </igx-chip>\n @if (!last) {\n <span id=\"operand\">\n <button\n igxButton\n type=\"button\"\n (click)=\"toggleOperatorsDropDown($event, i)\"\n [igxDropDownItemNavigation]=\"operators\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"expand_more\"></igx-icon>\n <span>{{\n filteringService.getOperatorAsString(item.afterOperator)\n }}</span>\n </button>\n <igx-drop-down\n #operators\n (selectionChanging)=\"onLogicOperatorChanged($event, item)\"\n >\n <igx-drop-down-item\n [value]=\"0\"\n [selected]=\"item.afterOperator === 0\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_and\n }}</igx-drop-down-item\n >\n <igx-drop-down-item\n [value]=\"1\"\n [selected]=\"item.afterOperator === 1\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_or\n }}</igx-drop-down-item\n >\n </igx-drop-down>\n </span>\n }\n </ng-container>\n }\n </igx-chips-area>\n </div>\n</div>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-end\"\n (click)=\"scrollChipsOnArrowPress('right')\"\n >\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n}\n\n<div\n #buttonsContainer\n [ngClass]=\"\n isNarrowWidth\n ? 'igx-grid__filtering-row-editing-buttons--small'\n : 'igx-grid__filtering-row-editing-buttons'\n \"\n>\n @if (!isNarrowWidth) {\n <button\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_reset\n }}</span>\n </button>\n <button\n #closeButton\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_close\n }}</span>\n </button>\n }\n @if (isNarrowWidth) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n </button>\n <button\n #closeButton\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n </button>\n }\n</div>\n", dependencies: [{ kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy", "role"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }, { kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }, { kind: "pipe", type: IgxPercentFormatterPipe, name: "percent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13395
13680
  }
13396
13681
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringRowComponent, decorators: [{
13397
13682
  type: Component,
@@ -13417,7 +13702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
13417
13702
  IgxRippleDirective,
13418
13703
  IgxIconButtonDirective,
13419
13704
  IgxPercentFormatterPipe
13420
- ], template: "<!-- Have to apply styles inline because of the overlay outlet ... -->\n<igx-drop-down\n #inputGroupConditions\n [style.--ig-size]=\"filteringElementsSize\"\n [height]=\"'200px'\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n>\n @for (condition of conditions; track condition) {\n <igx-drop-down-item\n [value]=\"condition\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n translateCondition(condition)\n }}</span>\n </div>\n </igx-drop-down-item>\n }\n</igx-drop-down>\n\n<ng-template #defaultFilterUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [type]=\"type\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n @if (column.dataType === 'percent') {\n <span class=\"igx-grid__filtering-row-percent-hint\">{{\n value\n | percent\n : column.pipeArgs.digitsInfo\n : filteringService.grid.locale\n }}</span>\n }\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-template #defaultDateUI>\n <igx-date-picker\n #picker\n [(value)]=\"value\"\n [locale]=\"filteringService.grid.locale\"\n (click)=\"expression.condition!.isUnary ? null : picker.open()\"\n type=\"box\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [formatter]=\"column.formatter!\"\n [placeholder]=\"placeholder\"\n [weekStart]=\"column.pipeArgs.weekStart!\"\n (keydown)=\"onInputKeyDown($event)\"\n (focusout)=\"onInputGroupFocusout()\"\n (closed)=\"focusEditElement()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition!.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n</ng-template>\n\n<ng-template #defaultTimeUI>\n <igx-time-picker\n #picker\n [(value)]=\"value\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [locale]=\"filteringService.grid.locale\"\n [formatter]=\"column.formatter!\"\n type=\"box\"\n [style.--ig-size]=\"filteringElementsSize\"\n [placeholder]=\"placeholder\"\n (closed)=\"focusEditElement()\"\n (focusout)=\"onInputGroupFocusout()\"\n (keydown)=\"onInputKeyDown($event)\"\n (click)=\"expression.condition!.isUnary ? null : picker.open()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition!.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n</ng-template>\n\n<ng-template #defaultDateTimeUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n [locale]=\"filteringService.grid.locale\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat!\"\n defaultFormatType=\"dateTime\"\n [value]=\"value\"\n (valueChange)=\"onInput($event)\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: this }\"\n></ng-container>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-start\"\n (keydown)=\"onLeftArrowKeyDown($event)\"\n (click)=\"scrollChipsOnArrowPress('left')\"\n >\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n}\n\n<div #container class=\"igx-grid__filtering-row-main\">\n <div>\n <igx-chips-area #chipsArea>\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (\n item of expressionsList;\n track item.expression;\n let i = $index;\n let last = $last\n ) {\n <ng-container tabindex=\"0\">\n <igx-chip\n #chip\n id=\"chip\"\n (pointerdown)=\"onChipPointerdown($event, chip)\"\n (click)=\"onChipClick($event, item)\"\n (keydown)=\"onChipKeyDown($event, item)\"\n (remove)=\"onChipRemoved($event, item)\"\n [selectable]=\"false\"\n [selected]=\"item.isSelected\"\n [style.--ig-size]=\"filteringElementsSize\"\n [removable]=\"true\"\n >\n <igx-icon\n igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition!.iconName\"\n >\n </igx-icon>\n <span>{{ filteringService.getChipLabel(item.expression) }}</span>\n </igx-chip>\n @if (!last) {\n <span id=\"operand\">\n <button\n igxButton\n type=\"button\"\n (click)=\"toggleOperatorsDropDown($event, i)\"\n [igxDropDownItemNavigation]=\"operators\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"expand_more\"></igx-icon>\n <span>{{\n filteringService.getOperatorAsString(item.afterOperator)\n }}</span>\n </button>\n <igx-drop-down\n #operators\n (selectionChanging)=\"onLogicOperatorChanged($event, item)\"\n >\n <igx-drop-down-item\n [value]=\"0\"\n [selected]=\"item.afterOperator === 0\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_and\n }}</igx-drop-down-item\n >\n <igx-drop-down-item\n [value]=\"1\"\n [selected]=\"item.afterOperator === 1\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_or\n }}</igx-drop-down-item\n >\n </igx-drop-down>\n </span>\n }\n </ng-container>\n }\n </igx-chips-area>\n </div>\n</div>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-end\"\n (click)=\"scrollChipsOnArrowPress('right')\"\n >\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n}\n\n<div\n #buttonsContainer\n [ngClass]=\"\n isNarrowWidth\n ? 'igx-grid__filtering-row-editing-buttons--small'\n : 'igx-grid__filtering-row-editing-buttons'\n \"\n>\n @if (!isNarrowWidth) {\n <button\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_reset\n }}</span>\n </button>\n <button\n #closeButton\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_close\n }}</span>\n </button>\n }\n @if (isNarrowWidth) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n </button>\n <button\n #closeButton\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n </button>\n }\n</div>\n" }]
13705
+ ], template: "<!-- Have to apply styles inline because of the overlay outlet ... -->\n<igx-drop-down\n #inputGroupConditions\n [style.--ig-size]=\"filteringElementsSize\"\n [height]=\"'200px'\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n>\n @for (condition of conditions; track condition) {\n <igx-drop-down-item\n [value]=\"condition\"\n [selected]=\"isConditionSelected(condition)\"\n >\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon\n family=\"default\"\n [name]=\"getCondition(condition).iconName\"\n ></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{\n translateCondition(condition)\n }}</span>\n </div>\n </igx-drop-down-item>\n }\n</igx-drop-down>\n\n<ng-template #defaultFilterUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [type]=\"type\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n @if (column.dataType === 'percent') {\n <span class=\"igx-grid__filtering-row-percent-hint\">{{\n value\n | percent\n : column.pipeArgs.digitsInfo\n : filteringService.grid.locale\n }}</span>\n }\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-template #defaultDateUI>\n <igx-date-picker\n #picker\n [(value)]=\"value\"\n [locale]=\"filteringService.grid.locale\"\n (click)=\"expression.condition.isUnary ? null : picker.open()\"\n type=\"box\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [placeholder]=\"placeholder\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n (keydown)=\"onInputKeyDown($event)\"\n (focusout)=\"onInputGroupFocusout()\"\n (closed)=\"focusEditElement()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-date-picker>\n</ng-template>\n\n<ng-template #defaultTimeUI>\n <igx-time-picker\n #picker\n [(value)]=\"value\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [displayFormat]=\"column.pipeArgs.format\"\n [locale]=\"filteringService.grid.locale\"\n [formatter]=\"column.formatter\"\n type=\"box\"\n [style.--ig-size]=\"filteringElementsSize\"\n [placeholder]=\"placeholder\"\n (closed)=\"focusEditElement()\"\n (focusout)=\"onInputGroupFocusout()\"\n (keydown)=\"onInputKeyDown($event)\"\n (click)=\"expression.condition.isUnary ? null : picker.open()\"\n >\n <igx-prefix\n #inputGroupPrefix\n tabindex=\"0\"\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"expression.condition.iconName\"\n ></igx-icon>\n </igx-prefix>\n @if (value) {\n <igx-suffix>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick($event)\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n tabindex=\"0\"\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"clearInput($event)\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n </igx-time-picker>\n</ng-template>\n\n<ng-template #defaultDateTimeUI>\n <igx-input-group\n #inputGroup\n type=\"box\"\n (focusout)=\"onInputGroupFocusout()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-prefix\n #inputGroupPrefix\n (click)=\"inputGroupPrefixClick($event)\"\n (keydown)=\"onPrefixKeyDown($event)\"\n tabindex=\"0\"\n [igxDropDownItemNavigation]=\"inputGroupConditions\"\n >\n <igx-icon family=\"default\" [name]=\"getIconName()\"></igx-icon>\n </igx-prefix>\n <input\n #input\n igxInput\n tabindex=\"0\"\n [placeholder]=\"placeholder\"\n [locale]=\"filteringService.grid.locale\"\n [displayFormat]=\"column.pipeArgs.format\"\n [igxDateTimeEditor]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n defaultFormatType=\"dateTime\"\n [value]=\"value\"\n (valueChange)=\"onInput($event)\"\n [readonly]=\"isUnaryCondition\"\n (click)=\"onInputClick()\"\n (keydown)=\"onInputKeyDown($event)\"\n (keyup)=\"onInputKeyUp()\"\n />\n @if (value || value === 0) {\n <igx-suffix>\n <igx-icon\n (keydown)=\"onCommitKeyDown($event)\"\n (click)=\"onCommitClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"confirm\"\n >\n </igx-icon>\n <igx-icon\n (keydown)=\"onClearKeyDown($event)\"\n (click)=\"onClearClick()\"\n tabindex=\"0\"\n family=\"default\"\n name=\"input_clear\"\n >\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: this }\"\n></ng-container>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-start\"\n (keydown)=\"onLeftArrowKeyDown($event)\"\n (click)=\"scrollChipsOnArrowPress('left')\"\n >\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n}\n\n<div #container class=\"igx-grid__filtering-row-main\">\n <div>\n <igx-chips-area #chipsArea>\n <!-- expressionsList items re-created on refreshExpressions(), track stable expression -->\n @for (\n item of expressionsList;\n track item.expression;\n let i = $index;\n let last = $last\n ) {\n <ng-container tabindex=\"0\">\n <igx-chip\n #chip\n id=\"chip\"\n (pointerdown)=\"onChipPointerdown($event, chip)\"\n (click)=\"onChipClick($event, item)\"\n (keydown)=\"onChipKeyDown($event, item)\"\n (remove)=\"onChipRemoved($event, item)\"\n [selectable]=\"false\"\n [selected]=\"item.isSelected\"\n [style.--ig-size]=\"filteringElementsSize\"\n [removable]=\"true\"\n >\n <igx-icon\n igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition.iconName\"\n >\n </igx-icon>\n <span>{{ filteringService.getChipLabel(item.expression) }}</span>\n </igx-chip>\n @if (!last) {\n <span id=\"operand\">\n <button\n igxButton\n type=\"button\"\n (click)=\"toggleOperatorsDropDown($event, i)\"\n [igxDropDownItemNavigation]=\"operators\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"expand_more\"></igx-icon>\n <span>{{\n filteringService.getOperatorAsString(item.afterOperator)\n }}</span>\n </button>\n <igx-drop-down\n #operators\n (selectionChanging)=\"onLogicOperatorChanged($event, item)\"\n >\n <igx-drop-down-item\n [value]=\"0\"\n [selected]=\"item.afterOperator === 0\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_and\n }}</igx-drop-down-item\n >\n <igx-drop-down-item\n [value]=\"1\"\n [selected]=\"item.afterOperator === 1\"\n >{{\n filteringService.grid.resourceStrings\n .igx_grid_filter_operator_or\n }}</igx-drop-down-item\n >\n </igx-drop-down>\n </span>\n }\n </ng-container>\n }\n </igx-chips-area>\n </div>\n</div>\n\n@if (showArrows) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n class=\"igx-grid__filtering-row-scroll-end\"\n (click)=\"scrollChipsOnArrowPress('right')\"\n >\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n}\n\n<div\n #buttonsContainer\n [ngClass]=\"\n isNarrowWidth\n ? 'igx-grid__filtering-row-editing-buttons--small'\n : 'igx-grid__filtering-row-editing-buttons'\n \"\n>\n @if (!isNarrowWidth) {\n <button\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_reset\n }}</span>\n </button>\n <button\n #closeButton\n igxButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n <span>{{\n filteringService.grid.resourceStrings.igx_grid_filter_row_close\n }}</span>\n </button>\n }\n @if (isNarrowWidth) {\n <button\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"clearFiltering()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"refresh\"></igx-icon>\n </button>\n <button\n #closeButton\n igxIconButton=\"flat\"\n type=\"button\"\n igxRipple\n (click)=\"close()\"\n [style.--ig-size]=\"filteringElementsSize\"\n >\n <igx-icon family=\"default\" name=\"close\"></igx-icon>\n </button>\n }\n</div>\n" }]
13421
13706
  }], propDecorators: { column: [{
13422
13707
  type: Input
13423
13708
  }], value: [{
@@ -13677,7 +13962,7 @@ class BaseRow {
13677
13962
  */
13678
13963
  update(value) {
13679
13964
  const crudService = this.grid.crudService;
13680
- if (crudService.cellInEditMode && crudService.cell?.id.rowID === this.key) {
13965
+ if (crudService.cellInEditMode && crudService.cell.id.rowID === this.key) {
13681
13966
  this.grid.transactions.endPending(false);
13682
13967
  }
13683
13968
  const row = new IgxEditRow(this.key, this.index, this.data, this.grid);
@@ -14646,7 +14931,6 @@ class IgxGridHeaderRowComponent {
14646
14931
  if (row && row.cells) {
14647
14932
  return row.cells.map(cell => cell.column);
14648
14933
  }
14649
- return undefined;
14650
14934
  }
14651
14935
  /**
14652
14936
  * @hidden
@@ -14718,11 +15002,11 @@ class IgxGridHeaderRowComponent {
14718
15002
  }
14719
15003
  }
14720
15004
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridHeaderRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14721
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridHeaderRowComponent, isStandalone: true, selector: "igx-grid-header-row", inputs: { grid: "grid", pinnedStartColumnCollection: "pinnedStartColumnCollection", pinnedEndColumnCollection: "pinnedEndColumnCollection", unpinnedColumnCollection: "unpinnedColumnCollection", hasMRL: ["hasMRL", "hasMRL", booleanAttribute], width: "width" }, host: { properties: { "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant" } }, viewQueries: [{ propertyName: "headerContainer", first: true, predicate: ["headerVirtualContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "headerDragContainer", first: true, predicate: ["headerDragContainer"], descendants: true }, { propertyName: "headerSelectorContainer", first: true, predicate: ["headerSelectorContainer"], descendants: true }, { propertyName: "headerGroupContainer", first: true, predicate: ["headerGroupContainer"], descendants: true }, { propertyName: "headSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true }, { propertyName: "filterRow", first: true, predicate: IgxGridFilteringRowComponent, descendants: true }, { propertyName: "headerHierarchyExpander", first: true, predicate: ["headerHierarchyExpander"], descendants: true }, { propertyName: "_groups", predicate: IgxGridHeaderGroupComponent, descendants: true }], ngImport: i0, template: "<div class=\"igx-grid-thead__wrapper\" (scroll)=\"scroll($event)\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [attr.aria-rowindex]=\"1\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length <= 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length > 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n\n <!-- Row dragging area -->\n @if (grid.rowDraggable) {\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" role=\"columnheader\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n }\n\n <!-- Row selectors area -->\n @if (grid.showRowSelectors) {\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\" role=\"columnheader\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n }\n\n <!-- Hierarchical grids expand all area -->\n @if (isHierarchicalGrid) {\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll!()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n role=\"columnheader\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n\n <!-- Grouping icon toggle area -->\n @if (grid?.groupingExpressions?.length) {\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid!.toggleAllGroupRows!()\"\n (pointerdown)=\"$event.preventDefault()\"\n role=\"columnheader\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n <!-- Pinned columns collection from the start -->\n @if (pinnedStartColumnCollection.length) {\n @for (column of pinnedStartColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n @if (pinnedEndColumnCollection.length) {\n @for (column of pinnedEndColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n </div>\n\n <!-- Render a hidden row of the leaf column headers for accessibility purposes -->\n @if (grid.hasColumnGroups) {\n <div role=\"row\" style=\"width: 0; height: 0; position: absolute; top: -10000px;\">\n @for (column of visibleLeafColumns; track column.index) {\n <div role=\"columnheader\" [attr.aria-hidden]=\"isLeafHeaderAriaHidden\">{{ column.header || column.field }}</div>\n }\n </div>\n }\n\n <!-- Filter row area -->\n @if (grid.filteringService.isFilterRowVisible) {\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n }\n\n <!-- Right column moving area -->\n @if (grid.moving && grid.columnInDrag) {\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && grid.selectionService.areAllRowSelected()\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && grid.selectionService.hasSomeRowSelected()\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxGridHeaderGroupComponent, selector: "igx-grid-header-group", inputs: ["column"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxGridFilteringRowComponent, selector: "igx-grid-filtering-row", inputs: ["column", "value"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "pipe", type: IgxGridTopLevelColumns, name: "igxTopLevel" }, { kind: "pipe", type: IgxHeaderGroupStylePipe, name: "igxHeaderGroupStyle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15005
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridHeaderRowComponent, isStandalone: true, selector: "igx-grid-header-row", inputs: { grid: "grid", pinnedStartColumnCollection: "pinnedStartColumnCollection", pinnedEndColumnCollection: "pinnedEndColumnCollection", unpinnedColumnCollection: "unpinnedColumnCollection", hasMRL: ["hasMRL", "hasMRL", booleanAttribute], width: "width" }, host: { properties: { "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant" } }, viewQueries: [{ propertyName: "headerContainer", first: true, predicate: ["headerVirtualContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "headerDragContainer", first: true, predicate: ["headerDragContainer"], descendants: true }, { propertyName: "headerSelectorContainer", first: true, predicate: ["headerSelectorContainer"], descendants: true }, { propertyName: "headerGroupContainer", first: true, predicate: ["headerGroupContainer"], descendants: true }, { propertyName: "headSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true }, { propertyName: "filterRow", first: true, predicate: IgxGridFilteringRowComponent, descendants: true }, { propertyName: "headerHierarchyExpander", first: true, predicate: ["headerHierarchyExpander"], descendants: true }, { propertyName: "_groups", predicate: IgxGridHeaderGroupComponent, descendants: true }], ngImport: i0, template: "<div class=\"igx-grid-thead__wrapper\" (scroll)=\"scroll($event)\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [attr.aria-rowindex]=\"1\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length <= 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length > 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n\n <!-- Row dragging area -->\n @if (grid.rowDraggable) {\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" role=\"columnheader\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n }\n\n <!-- Row selectors area -->\n @if (grid.showRowSelectors) {\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\" role=\"columnheader\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n }\n\n <!-- Hierarchical grids expand all area -->\n @if (isHierarchicalGrid) {\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n role=\"columnheader\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n\n <!-- Grouping icon toggle area -->\n @if (grid?.groupingExpressions?.length) {\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\"\n role=\"columnheader\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n <!-- Pinned columns collection from the start -->\n @if (pinnedStartColumnCollection.length) {\n @for (column of pinnedStartColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n @if (pinnedEndColumnCollection.length) {\n @for (column of pinnedEndColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n </div>\n\n <!-- Render a hidden row of the leaf column headers for accessibility purposes -->\n @if (grid.hasColumnGroups) {\n <div role=\"row\" style=\"width: 0; height: 0; position: absolute; top: -10000px;\">\n @for (column of visibleLeafColumns; track column.index) {\n <div role=\"columnheader\" [attr.aria-hidden]=\"isLeafHeaderAriaHidden\">{{ column.header || column.field }}</div>\n }\n </div>\n }\n\n <!-- Filter row area -->\n @if (grid.filteringService.isFilterRowVisible) {\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n }\n\n <!-- Right column moving area -->\n @if (grid.moving && grid.columnInDrag) {\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && grid.selectionService.areAllRowSelected()\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && grid.selectionService.hasSomeRowSelected()\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxGridHeaderGroupComponent, selector: "igx-grid-header-group", inputs: ["column"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxGridFilteringRowComponent, selector: "igx-grid-filtering-row", inputs: ["column", "value"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "pipe", type: IgxGridTopLevelColumns, name: "igxTopLevel" }, { kind: "pipe", type: IgxHeaderGroupStylePipe, name: "igxHeaderGroupStyle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14722
15006
  }
14723
15007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridHeaderRowComponent, decorators: [{
14724
15008
  type: Component,
14725
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-row', imports: [IgxColumnMovingDropDirective, NgTemplateOutlet, NgClass, IgxGridHeaderGroupComponent, NgStyle, IgxGridForOfDirective, IgxGridFilteringRowComponent, IgxCheckboxComponent, IgxGridTopLevelColumns, IgxHeaderGroupStylePipe], template: "<div class=\"igx-grid-thead__wrapper\" (scroll)=\"scroll($event)\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [attr.aria-rowindex]=\"1\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length <= 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length > 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n\n <!-- Row dragging area -->\n @if (grid.rowDraggable) {\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" role=\"columnheader\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n }\n\n <!-- Row selectors area -->\n @if (grid.showRowSelectors) {\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\" role=\"columnheader\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n }\n\n <!-- Hierarchical grids expand all area -->\n @if (isHierarchicalGrid) {\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll!()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n role=\"columnheader\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n\n <!-- Grouping icon toggle area -->\n @if (grid?.groupingExpressions?.length) {\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid!.toggleAllGroupRows!()\"\n (pointerdown)=\"$event.preventDefault()\"\n role=\"columnheader\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n <!-- Pinned columns collection from the start -->\n @if (pinnedStartColumnCollection.length) {\n @for (column of pinnedStartColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n @if (pinnedEndColumnCollection.length) {\n @for (column of pinnedEndColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n </div>\n\n <!-- Render a hidden row of the leaf column headers for accessibility purposes -->\n @if (grid.hasColumnGroups) {\n <div role=\"row\" style=\"width: 0; height: 0; position: absolute; top: -10000px;\">\n @for (column of visibleLeafColumns; track column.index) {\n <div role=\"columnheader\" [attr.aria-hidden]=\"isLeafHeaderAriaHidden\">{{ column.header || column.field }}</div>\n }\n </div>\n }\n\n <!-- Filter row area -->\n @if (grid.filteringService.isFilterRowVisible) {\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n }\n\n <!-- Right column moving area -->\n @if (grid.moving && grid.columnInDrag) {\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && grid.selectionService.areAllRowSelected()\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && grid.selectionService.hasSomeRowSelected()\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n" }]
15009
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-row', imports: [IgxColumnMovingDropDirective, NgTemplateOutlet, NgClass, IgxGridHeaderGroupComponent, NgStyle, IgxGridForOfDirective, IgxGridFilteringRowComponent, IgxCheckboxComponent, IgxGridTopLevelColumns, IgxHeaderGroupStylePipe], template: "<div class=\"igx-grid-thead__wrapper\" (scroll)=\"scroll($event)\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [attr.aria-rowindex]=\"1\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length <= 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n @if (grid.moving && grid.columnInDrag && pinnedStartColumnCollection.length > 0) {\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedStartWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n\n <!-- Row dragging area -->\n @if (grid.rowDraggable) {\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" role=\"columnheader\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n }\n\n <!-- Row selectors area -->\n @if (grid.showRowSelectors) {\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\" role=\"columnheader\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n }\n\n <!-- Hierarchical grids expand all area -->\n @if (isHierarchicalGrid) {\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n role=\"columnheader\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n\n <!-- Grouping icon toggle area -->\n @if (grid?.groupingExpressions?.length) {\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\"\n role=\"columnheader\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n }\n\n <!-- Pinned columns collection from the start -->\n @if (pinnedStartColumnCollection.length) {\n @for (column of pinnedStartColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n @if (pinnedEndColumnCollection.length) {\n @for (column of pinnedEndColumnCollection | igxTopLevel; track trackPinnedColumn(column)) {\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\">\n </igx-grid-header-group>\n }\n }\n </div>\n\n <!-- Render a hidden row of the leaf column headers for accessibility purposes -->\n @if (grid.hasColumnGroups) {\n <div role=\"row\" style=\"width: 0; height: 0; position: absolute; top: -10000px;\">\n @for (column of visibleLeafColumns; track column.index) {\n <div role=\"columnheader\" [attr.aria-hidden]=\"isLeafHeaderAriaHidden\">{{ column.header || column.field }}</div>\n }\n </div>\n }\n\n <!-- Filter row area -->\n @if (grid.filteringService.isFilterRowVisible) {\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n }\n\n <!-- Right column moving area -->\n @if (grid.moving && grid.columnInDrag) {\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n }\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && grid.selectionService.areAllRowSelected()\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && grid.selectionService.hasSomeRowSelected()\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n" }]
14726
15010
  }], propDecorators: { grid: [{
14727
15011
  type: Input
14728
15012
  }], pinnedStartColumnCollection: [{
@@ -15499,10 +15783,22 @@ class IgxGridStateBaseDirective {
15499
15783
  newColumns.push(ref);
15500
15784
  }
15501
15785
  });
15502
- context.currGrid.updateColumns(newColumns);
15503
- newColumns.forEach(col => {
15504
- context.currGrid.columnInit.emit(col);
15505
- });
15786
+ if (!context.currGrid._init && !context.currGrid._rendered) {
15787
+ // If grid is not rendered but is initialized (during ngAfterViewInit) wait for it to render.
15788
+ // Otherwise pushing mid detect change (mainly while calculating sizes from `calculateGridWidth` and `calculateGridSizes`) messes up headers detect changing.
15789
+ context.currGrid.rendered.pipe(first$1()).subscribe(() => {
15790
+ context.currGrid.updateColumns(newColumns);
15791
+ newColumns.forEach(col => {
15792
+ context.currGrid.columnInit.emit(col);
15793
+ });
15794
+ });
15795
+ }
15796
+ else {
15797
+ context.currGrid.updateColumns(newColumns);
15798
+ newColumns.forEach(col => {
15799
+ context.currGrid.columnInit.emit(col);
15800
+ });
15801
+ }
15506
15802
  }
15507
15803
  },
15508
15804
  groupBy: {
@@ -15622,9 +15918,9 @@ class IgxGridStateBaseDirective {
15622
15918
  const childGridStates = [];
15623
15919
  const rowIslands = context.currGrid.allLayoutList;
15624
15920
  if (rowIslands) {
15625
- rowIslands.forEach((rowIsland) => {
15921
+ rowIslands.forEach(rowIsland => {
15626
15922
  const childGrids = rowIsland.rowIslandAPI.getChildGrids();
15627
- childGrids.forEach((chGrid) => {
15923
+ childGrids.forEach(chGrid => {
15628
15924
  const parentRowID = this.getParentRowID(chGrid);
15629
15925
  context.currGrid = chGrid;
15630
15926
  if (context.currGrid) {
@@ -15640,12 +15936,12 @@ class IgxGridStateBaseDirective {
15640
15936
  restoreFeatureState(context, state) {
15641
15937
  const rowIslands = context.currGrid.allLayoutList;
15642
15938
  if (rowIslands) {
15643
- rowIslands.forEach((rowIsland) => {
15939
+ rowIslands.forEach(rowIsland => {
15644
15940
  const childGrids = rowIsland.rowIslandAPI.getChildGrids();
15645
- childGrids.forEach((chGrid) => {
15941
+ childGrids.forEach(chGrid => {
15646
15942
  const parentRowID = this.getParentRowID(chGrid);
15647
15943
  context.currGrid = chGrid;
15648
- const childGridState = state.find((st) => st.id === rowIsland.id && st.parentRowID === parentRowID);
15944
+ const childGridState = state.find(st => st.id === rowIsland.id && st.parentRowID === parentRowID);
15649
15945
  if (childGridState && context.currGrid) {
15650
15946
  context.restoreGridState(childGridState.state, context.featureKeys);
15651
15947
  }
@@ -15735,7 +16031,7 @@ class IgxGridStateBaseDirective {
15735
16031
  getStateInternal(serialize = true, features) {
15736
16032
  let state;
15737
16033
  this.currGrid = this.grid;
15738
- state = this.buildState(features);
16034
+ this.state = state = this.buildState(features);
15739
16035
  if (serialize) {
15740
16036
  state = JSON.stringify(state, this.stringifyCallback);
15741
16037
  }
@@ -15756,6 +16052,7 @@ class IgxGridStateBaseDirective {
15756
16052
  * ```
15757
16053
  */
15758
16054
  setStateInternal(state, features) {
16055
+ this.state = state;
15759
16056
  this.currGrid = this.grid;
15760
16057
  this.restoreGridState(state, features);
15761
16058
  this.grid.cdr.detectChanges(); // TODO
@@ -15820,7 +16117,7 @@ class IgxGridStateBaseDirective {
15820
16117
  restoreDimensions(config) {
15821
16118
  const collections = [config.rows, config.columns, config.filters];
15822
16119
  for (const collection of collections) {
15823
- for (let index = 0; index < (collection?.length ?? 0); index++) {
16120
+ for (let index = 0; index < collection?.length; index++) {
15824
16121
  const dim = collection[index];
15825
16122
  if (this.isDateDimension(dim)) {
15826
16123
  this.restoreDateDimension(dim);
@@ -15895,7 +16192,7 @@ class IgxGridStateBaseDirective {
15895
16192
  return null;
15896
16193
  }
15897
16194
  if (this.currGrid.type === 'pivot') {
15898
- return recreateTreeFromFields(exprTreeObject, this.currGrid.allDimensions.map((d) => ({ dataType: d.dataType, field: d.memberName })));
16195
+ return recreateTreeFromFields(exprTreeObject, this.currGrid.allDimensions.map(d => ({ dataType: d.dataType, field: d.memberName })));
15899
16196
  }
15900
16197
  return recreateTreeFromFields(exprTreeObject, this.currGrid.columns);
15901
16198
  }
@@ -16380,7 +16677,7 @@ class BaseToolbarDirective {
16380
16677
  ? actions.columnsAreaMaxHeight :
16381
16678
  this.columnListHeight ??
16382
16679
  `${Math.max(this.grid.calcHeight * 0.5, 200)}px`;
16383
- toggleRef.opening.pipe(first()).subscribe(setHeight);
16680
+ toggleRef.opening.pipe(first$1()).subscribe(setHeight);
16384
16681
  }
16385
16682
  toggleRef.toggle({
16386
16683
  ...this.overlaySettings, ...{
@@ -16401,12 +16698,12 @@ class BaseToolbarDirective {
16401
16698
  }
16402
16699
  /** The if statement prevents emitting open and close events twice */
16403
16700
  if (toggleRef.collapsed) {
16404
- toggleRef.opening.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.opening.emit(event));
16405
- toggleRef.opened.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.opened.emit(event));
16701
+ toggleRef.opening.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.opening.emit(event));
16702
+ toggleRef.opened.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.opened.emit(event));
16406
16703
  }
16407
16704
  else {
16408
- toggleRef.closing.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.closing.emit(event));
16409
- toggleRef.closed.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.closed.emit(event));
16705
+ toggleRef.closing.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.closing.emit(event));
16706
+ toggleRef.closed.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.closed.emit(event));
16410
16707
  }
16411
16708
  }
16412
16709
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: BaseToolbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -17263,7 +17560,7 @@ class IgxBaseExporter {
17263
17560
  this.pivotGridColumns = [];
17264
17561
  this.isPivotGridExport = true;
17265
17562
  this.pivotGridRowDimensionsMap = new Map();
17266
- grid.visibleRowDimensions.filter(r => r.enabled).forEach((rowDimension) => {
17563
+ grid.visibleRowDimensions.filter(r => r.enabled).forEach(rowDimension => {
17267
17564
  this.addToRowDimensionsMap(rowDimension, rowDimension.memberName);
17268
17565
  });
17269
17566
  this._ownersMap.set(DEFAULT_OWNER, columnList);
@@ -17276,10 +17573,8 @@ class IgxBaseExporter {
17276
17573
  this.addLevelColumns();
17277
17574
  this.prepareData(grid);
17278
17575
  this.addLevelData();
17279
- if (grid.type === 'pivot') {
17280
- this.addPivotGridColumns(grid);
17281
- this.addPivotRowHeaders(grid);
17282
- }
17576
+ this.addPivotGridColumns(grid);
17577
+ this.addPivotRowHeaders(grid);
17283
17578
  this.exportGridRecordsData(this.flatRecords, grid);
17284
17579
  }
17285
17580
  /**
@@ -17406,7 +17701,7 @@ class IgxBaseExporter {
17406
17701
  }
17407
17702
  const targetCol = mapRecord.columns.filter(c => column.columnGroupParent !== null && column.columnGroupParent !== undefined && c.columnGroup === column.columnGroupParent)[0];
17408
17703
  if (targetCol !== undefined) {
17409
- targetCol.columnSpan = targetCol.columnSpan - span;
17704
+ targetCol.columnSpan -= span;
17410
17705
  if (targetCol.columnGroupParent !== null) {
17411
17706
  this.calculateColumnSpans(targetCol, mapRecord, span);
17412
17707
  }
@@ -17597,7 +17892,7 @@ class IgxBaseExporter {
17597
17892
  hierarchicalOwner: GRID_PARENT
17598
17893
  };
17599
17894
  this.flatRecords.push(hierarchicalGridRecord);
17600
- for (const island of childLayoutList ?? []) {
17895
+ for (const island of childLayoutList) {
17601
17896
  const path = {
17602
17897
  rowID: grid.primaryKey ? entry[grid.primaryKey] : entry,
17603
17898
  rowKey: grid.primaryKey ? entry[grid.primaryKey] : entry,
@@ -18056,7 +18351,7 @@ class IgxBaseExporter {
18056
18351
  let keyData;
18057
18352
  if (island.autoGenerate) {
18058
18353
  keyData = gridData && gridData[island.key] ? gridData[island.key] : undefined;
18059
- const islandKeys = island.children && island.children.length > 0 ? island.children.map((i) => i.key) : [];
18354
+ const islandKeys = island.children && island.children.length > 0 ? island.children.map(i => i.key) : [];
18060
18355
  if (keyData && Array.isArray(keyData) && keyData.length > 0) {
18061
18356
  const islandData = keyData.map(i => {
18062
18357
  const newItem = {};
@@ -18116,9 +18411,9 @@ class IgxBaseExporter {
18116
18411
  addPivotRowHeaders(grid) {
18117
18412
  if (grid?.pivotUI?.showRowHeaders) {
18118
18413
  const headersList = this._ownersMap.get(DEFAULT_OWNER);
18119
- const enabledRows = grid.visibleRowDimensions.filter((r) => r.enabled).map((r, index) => ({ name: r.displayName || r.memberName, level: index }));
18414
+ const enabledRows = grid.visibleRowDimensions.filter(r => r.enabled).map((r, index) => ({ name: r.displayName || r.memberName, level: index }));
18120
18415
  let startIndex = 0;
18121
- enabledRows.forEach((x) => {
18416
+ enabledRows.forEach(x => {
18122
18417
  headersList.columns.unshift({
18123
18418
  rowSpan: headersList.maxLevel + 1,
18124
18419
  field: x.name,
@@ -18136,6 +18431,9 @@ class IgxBaseExporter {
18136
18431
  }
18137
18432
  }
18138
18433
  addPivotGridColumns(grid) {
18434
+ if (grid.type !== 'pivot') {
18435
+ return;
18436
+ }
18139
18437
  const enabledRows = grid.visibleRowDimensions.map((r, i) => ({ name: r.memberName, level: i }));
18140
18438
  this.preparePivotGridColumns(enabledRows);
18141
18439
  this.pivotGridFilterFieldsCount = enabledRows.length;
@@ -18749,7 +19047,6 @@ class WorksheetFile {
18749
19047
  // TODO: get date format from locale
18750
19048
  return `"Latest: "&amp;_xlfn.TEXT(_xlfn.MAX(_xlfn.IF(${levelDimensions.startCoordinate}:${levelDimensions.endCoordinate}=${recordLevel}, ${dimensions.startCoordinate}:${dimensions.endCoordinate})), "m/d/yyyy")`;
18751
19049
  }
18752
- return undefined;
18753
19050
  }
18754
19051
  setRootSummaryStartCoordinate(column, key) {
18755
19052
  const firstDataRecordColName = ExcelStrings.getExcelColumn(column) + (this.firstDataRow);
@@ -20645,7 +20942,7 @@ class IgxGridToolbarExporterComponent extends BaseToolbarDirective {
20645
20942
  }
20646
20943
  this.isExporting = true;
20647
20944
  this.toolbar.showProgress = true;
20648
- exporter.exportEnded.pipe(first()).subscribe(() => {
20945
+ exporter.exportEnded.pipe(first$1()).subscribe(() => {
20649
20946
  this.exportEnded.emit();
20650
20947
  this.isExporting = false;
20651
20948
  this.toolbar.showProgress = false;
@@ -20697,11 +20994,11 @@ class IgxGridToolbarHidingComponent extends BaseToolbarColumnActionsDirective {
20697
20994
  this.columnActionsUI = content;
20698
20995
  }
20699
20996
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarHidingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20700
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridToolbarHidingComponent, isStandalone: true, selector: "igx-grid-toolbar-hiding", viewQueries: [{ propertyName: "content", first: true, predicate: IgxColumnHidingDirective, descendants: true, read: IgxColumnActionsComponent }], usesInheritance: true, ngImport: i0, template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_hiding_button_tooltip\"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnHiding\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.hiddenColumnsCount ? 'show' : 'hide'\"\n >\n </igx-icon>\n <span>{{ grid.hiddenColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnHiding\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_hiding_title!\"\n [filterColumnsPrompt]=\"prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt!\n\"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxColumnActionsComponent, selector: "igx-column-actions", inputs: ["grid", "indentation", "columnsAreaMaxHeight", "hideFilter", "title", "filterColumnsPrompt", "filterCriteria", "columnDisplayOrder", "uncheckAllText", "checkAllText", "id"], outputs: ["columnToggled"] }, { kind: "directive", type: IgxColumnHidingDirective, selector: "[igxColumnHiding]" }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
20997
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridToolbarHidingComponent, isStandalone: true, selector: "igx-grid-toolbar-hiding", viewQueries: [{ propertyName: "content", first: true, predicate: IgxColumnHidingDirective, descendants: true, read: IgxColumnActionsComponent }], usesInheritance: true, ngImport: i0, template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"\n $safeNavigationMigration(\n grid?.resourceStrings.igx_grid_toolbar_hiding_button_tooltip\n )\n \"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnHiding\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.hiddenColumnsCount ? 'show' : 'hide'\"\n >\n </igx-icon>\n <span>{{ grid.hiddenColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnHiding\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_hiding_title\"\n [filterColumnsPrompt]=\"\n prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt\n \"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxColumnActionsComponent, selector: "igx-column-actions", inputs: ["grid", "indentation", "columnsAreaMaxHeight", "hideFilter", "title", "filterColumnsPrompt", "filterCriteria", "columnDisplayOrder", "uncheckAllText", "checkAllText", "id"], outputs: ["columnToggled"] }, { kind: "directive", type: IgxColumnHidingDirective, selector: "[igxColumnHiding]" }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
20701
20998
  }
20702
20999
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarHidingComponent, decorators: [{
20703
21000
  type: Component,
20704
- args: [{ selector: 'igx-grid-toolbar-hiding', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxButtonDirective, IgxIconComponent, IgxColumnActionsComponent, IgxColumnHidingDirective, IgxToggleDirective, AsyncPipe], template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_hiding_button_tooltip\"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnHiding\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.hiddenColumnsCount ? 'show' : 'hide'\"\n >\n </igx-icon>\n <span>{{ grid.hiddenColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnHiding\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_hiding_title!\"\n [filterColumnsPrompt]=\"prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt!\n\"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n" }]
21001
+ args: [{ selector: 'igx-grid-toolbar-hiding', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxButtonDirective, IgxIconComponent, IgxColumnActionsComponent, IgxColumnHidingDirective, IgxToggleDirective, AsyncPipe], template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"\n $safeNavigationMigration(\n grid?.resourceStrings.igx_grid_toolbar_hiding_button_tooltip\n )\n \"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnHiding\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.hiddenColumnsCount ? 'show' : 'hide'\"\n >\n </igx-icon>\n <span>{{ grid.hiddenColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnHiding\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_hiding_title\"\n [filterColumnsPrompt]=\"\n prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt\n \"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n" }]
20705
21002
  }], propDecorators: { content: [{
20706
21003
  type: ViewChild,
20707
21004
  args: [IgxColumnHidingDirective, { read: IgxColumnActionsComponent }]
@@ -20729,11 +21026,11 @@ class IgxGridToolbarPinningComponent extends BaseToolbarColumnActionsDirective {
20729
21026
  this.columnActionsUI = content;
20730
21027
  }
20731
21028
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarPinningComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20732
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridToolbarPinningComponent, isStandalone: true, selector: "igx-grid-toolbar-pinning", viewQueries: [{ propertyName: "content", first: true, predicate: IgxColumnPinningDirective, descendants: true, read: IgxColumnActionsComponent }], usesInheritance: true, ngImport: i0, template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"\n $safeNavigationMigration(\n grid?.resourceStrings.igx_grid_toolbar_pinning_button_tooltip\n )\n \"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnPinning\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.pinnedColumnsCount ? 'unpin' : 'pin'\"\n >\n </igx-icon>\n <span>{{ grid.pinnedColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnPinning\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_pinning_title!\"\n [filterColumnsPrompt]=\"prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt!\"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxColumnActionsComponent, selector: "igx-column-actions", inputs: ["grid", "indentation", "columnsAreaMaxHeight", "hideFilter", "title", "filterColumnsPrompt", "filterCriteria", "columnDisplayOrder", "uncheckAllText", "checkAllText", "id"], outputs: ["columnToggled"] }, { kind: "directive", type: IgxColumnPinningDirective, selector: "[igxColumnPinning]" }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
21029
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridToolbarPinningComponent, isStandalone: true, selector: "igx-grid-toolbar-pinning", viewQueries: [{ propertyName: "content", first: true, predicate: IgxColumnPinningDirective, descendants: true, read: IgxColumnActionsComponent }], usesInheritance: true, ngImport: i0, template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"\n $safeNavigationMigration(\n grid?.resourceStrings.igx_grid_toolbar_pinning_button_tooltip\n )\n \"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnPinning\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.pinnedColumnsCount ? 'unpin' : 'pin'\"\n >\n </igx-icon>\n <span>{{ grid.pinnedColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnPinning\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_pinning_title\"\n [filterColumnsPrompt]=\"\n prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt\n \"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxColumnActionsComponent, selector: "igx-column-actions", inputs: ["grid", "indentation", "columnsAreaMaxHeight", "hideFilter", "title", "filterColumnsPrompt", "filterCriteria", "columnDisplayOrder", "uncheckAllText", "checkAllText", "id"], outputs: ["columnToggled"] }, { kind: "directive", type: IgxColumnPinningDirective, selector: "[igxColumnPinning]" }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
20733
21030
  }
20734
21031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarPinningComponent, decorators: [{
20735
21032
  type: Component,
20736
- args: [{ selector: 'igx-grid-toolbar-pinning', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxButtonDirective, IgxIconComponent, IgxColumnActionsComponent, IgxColumnPinningDirective, IgxToggleDirective, AsyncPipe], template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"\n $safeNavigationMigration(\n grid?.resourceStrings.igx_grid_toolbar_pinning_button_tooltip\n )\n \"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnPinning\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.pinnedColumnsCount ? 'unpin' : 'pin'\"\n >\n </igx-icon>\n <span>{{ grid.pinnedColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnPinning\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_pinning_title!\"\n [filterColumnsPrompt]=\"prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt!\"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n" }]
21033
+ args: [{ selector: 'igx-grid-toolbar-pinning', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxButtonDirective, IgxIconComponent, IgxColumnActionsComponent, IgxColumnPinningDirective, IgxToggleDirective, AsyncPipe], template: "@if (grid.rendered$ | async) {\n <button\n [title]=\"\n $safeNavigationMigration(\n grid?.resourceStrings.igx_grid_toolbar_pinning_button_tooltip\n )\n \"\n #btn\n igxButton=\"outlined\"\n type=\"button\"\n name=\"btnColumnPinning\"\n (click)=\"toggle(btn, ref, actions)\"\n >\n <igx-icon\n family=\"default\"\n [name]=\"!grid.pinnedColumnsCount ? 'unpin' : 'pin'\"\n >\n </igx-icon>\n <span>{{ grid.pinnedColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions\n #actions\n igxColumnPinning\n igxToggle\n (opened)=\"focusSearch(ref.element)\"\n #ref=\"toggle\"\n [grid]=\"grid\"\n [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_pinning_title\"\n [filterColumnsPrompt]=\"\n prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt\n \"\n [hideFilter]=\"hideFilter\"\n [filterCriteria]=\"filterCriteria\"\n [columnDisplayOrder]=\"columnDisplayOrder\"\n [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\"\n [checkAllText]=\"checkAllText\"\n [indentation]=\"indentetion\"\n >\n </igx-column-actions>\n}\n" }]
20737
21034
  }], propDecorators: { content: [{
20738
21035
  type: ViewChild,
20739
21036
  args: [IgxColumnPinningDirective, { read: IgxColumnActionsComponent }]
@@ -20853,14 +21150,12 @@ class IgxRowEditTabStopDirective {
20853
21150
  move(event) {
20854
21151
  event.preventDefault();
20855
21152
  this.currentCellIndex = event.shiftKey ? this.grid.lastEditableColumnIndex : this.grid.firstEditableColumnIndex;
20856
- this.grid.navigation.activeNode.row = this.grid.crudService.rowInEditMode?.index;
21153
+ this.grid.navigation.activeNode.row = this.grid.crudService.rowInEditMode.index;
20857
21154
  this.grid.navigation.activeNode.column = this.currentCellIndex;
20858
- if (this.grid.crudService.rowInEditMode) {
20859
- this.grid.navigateTo(this.grid.crudService.rowInEditMode.index, this.currentCellIndex, (obj) => {
20860
- obj.target.activate(event);
20861
- this.grid.cdr.detectChanges();
20862
- });
20863
- }
21155
+ this.grid.navigateTo(this.grid.crudService.rowInEditMode.index, this.currentCellIndex, (obj) => {
21156
+ obj.target.activate(event);
21157
+ this.grid.cdr.detectChanges();
21158
+ });
20864
21159
  }
20865
21160
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxRowEditTabStopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20866
21161
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.1", type: IgxRowEditTabStopDirective, isStandalone: true, selector: "[igxRowEditTabStop]", host: { listeners: { "keydown.tab": "handleTab($event)", "keydown.shift.tab": "handleTab($event)", "keydown.escape": "handleEscape($event)", "keydown.enter": "handleEnter($event)" } }, ngImport: i0 }); }
@@ -20885,6 +21180,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
20885
21180
  args: ['keydown.enter', ['$event']]
20886
21181
  }] } });
20887
21182
 
21183
+ /**
21184
+ * Injection token for accessing the grid transaction object.
21185
+ * This allows injecting the grid transaction object into components or services.
21186
+ */
21187
+ const IgxGridTransaction = /*@__PURE__*/ new InjectionToken('IgxGridTransaction');
21188
+
20888
21189
  /* csSuppress */
20889
21190
  class NoopPivotDimensionsStrategy {
20890
21191
  static { this._instance = null; }
@@ -20991,17 +21292,14 @@ class DimensionValuesFilteringStrategy extends FilteringStrategy {
20991
21292
  const allDimensions = grid.allDimensions;
20992
21293
  const enabledDimensions = allDimensions.filter(x => x && x.enabled);
20993
21294
  const dim = PivotUtil.flatten(enabledDimensions).find(x => x.memberName === fieldName);
20994
- if (!dim) {
20995
- return undefined;
20996
- }
20997
21295
  const value = dim.childLevel ? this._getDimensionValueHierarchy(dim, rec).map(x => `[` + x + `]`).join('.') : PivotUtil.extractValueFromDimension(dim, rec);
20998
21296
  return value;
20999
21297
  }
21000
21298
  getFilterItems(column, tree) {
21001
21299
  const grid = column.grid;
21002
- const enabledDimensions = grid.allDimensions.filter((x) => x && x.enabled);
21300
+ const enabledDimensions = grid.allDimensions.filter(x => x && x.enabled);
21003
21301
  const data = column.grid.gridAPI.filterDataByExpressions(tree);
21004
- const dim = enabledDimensions.find((x) => x.memberName === column.field);
21302
+ const dim = enabledDimensions.find(x => x.memberName === column.field);
21005
21303
  const allValuesHierarchy = PivotUtil.getFieldsHierarchy(data, [dim], PivotDimensionType.Column, grid.pivotKeys, grid.pivotValueCloneStrategy);
21006
21304
  const isNoop = grid.pivotConfiguration.columnStrategy instanceof NoopPivotDimensionsStrategy || grid.pivotConfiguration.rowStrategy instanceof NoopPivotDimensionsStrategy;
21007
21305
  const items = !isNoop ? this._getFilterItems(allValuesHierarchy, grid.pivotKeys) : [{ value: '' }];
@@ -21012,7 +21310,7 @@ class DimensionValuesFilteringStrategy extends FilteringStrategy {
21012
21310
  hierarchy.forEach((value) => {
21013
21311
  const val = value.value;
21014
21312
  const path = val.split(pivotKeys.columnDimensionSeparator);
21015
- const hierarchicalValue = path.length > 1 ? path.map((x) => `[` + x + `]`).join('.') : val;
21313
+ const hierarchicalValue = path.length > 1 ? path.map(x => `[` + x + `]`).join('.') : val;
21016
21314
  const text = path[path.length - 1];
21017
21315
  items.push({
21018
21316
  value: hierarchicalValue,
@@ -21060,12 +21358,12 @@ class IgxGridSummaryService {
21060
21358
  }
21061
21359
  return;
21062
21360
  }
21063
- if (args.rowData) {
21064
- const rowID = this.grid.primaryKey ? args.rowData[this.grid.primaryKey] : args.rowData;
21361
+ if (args.data) {
21362
+ const rowID = this.grid.primaryKey ? args.data[this.grid.primaryKey] : args.data;
21065
21363
  this.removeSummaries(rowID);
21066
21364
  }
21067
21365
  if (args.rowID !== undefined && args.rowID !== null) {
21068
- let columnName = args.cellID ? this.grid.columns.find(col => col.index === args.cellID.columnID)?.field : undefined;
21366
+ let columnName = args.cellID ? this.grid.columns.find(col => col.index === args.cellID.columnID).field : undefined;
21069
21367
  if (columnName && this.grid.rowEditable) {
21070
21368
  return;
21071
21369
  }
@@ -21125,7 +21423,7 @@ class IgxGridSummaryService {
21125
21423
  this.grid.columns.filter((col) => col.hasSummary && !col.hidden).forEach((column) => {
21126
21424
  const getCurrentSummary = column.summaries.operate([], [], column.field);
21127
21425
  const getCurrentSummaryColumn = column.disabledSummaries.length > 0
21128
- ? getCurrentSummary.filter((s) => !column.disabledSummaries.includes(s.key)).length
21426
+ ? getCurrentSummary.filter(s => !column.disabledSummaries.includes(s.key)).length
21129
21427
  : getCurrentSummary.length;
21130
21428
  if (maxSummaryLength < getCurrentSummaryColumn) {
21131
21429
  maxSummaryLength = getCurrentSummaryColumn;
@@ -21148,7 +21446,7 @@ class IgxGridSummaryService {
21148
21446
  const columnPathParts = columns.map(col => columnFieldPath(col.field));
21149
21447
  for (const [idx, column] of columns.entries()) {
21150
21448
  if (!rowSummaries.get(column.field)) {
21151
- let summaryResult = column.summaries.operate(data.map((r) => resolveNestedPath(r, columnPathParts[idx])), data, column.field, groupRecord);
21449
+ let summaryResult = column.summaries.operate(data.map(r => resolveNestedPath(r, columnPathParts[idx])), data, column.field, groupRecord, this.grid.locale, column.pipeArgs);
21152
21450
  summaryResult = column.disabledSummaries.length > 0
21153
21451
  ? summaryResult.filter(s => !column.disabledSummaries.includes(s.key))
21154
21452
  : summaryResult;
@@ -21172,16 +21470,16 @@ class IgxGridSummaryService {
21172
21470
  return;
21173
21471
  }
21174
21472
  if (this.groupingExpressions.length === 0) {
21175
- this.groupingExpressions = groupingArgs.expressions instanceof Array ? groupingArgs.expressions.map((record) => record.fieldName) : [];
21473
+ this.groupingExpressions = groupingArgs.expressions.map(record => record.fieldName);
21176
21474
  return;
21177
21475
  }
21178
- if (groupingArgs.expressions instanceof Array && groupingArgs.expressions.length === 0) {
21476
+ if (groupingArgs.length === 0) {
21179
21477
  this.groupingExpressions = [];
21180
21478
  this.clearSummaryCache();
21181
21479
  return;
21182
21480
  }
21183
21481
  this.compareGroupingExpressions(this.groupingExpressions, groupingArgs);
21184
- this.groupingExpressions = groupingArgs.expressions instanceof Array ? groupingArgs.expressions.map((record) => record.fieldName) : [];
21482
+ this.groupingExpressions = groupingArgs.expressions.map(record => record.fieldName);
21185
21483
  }
21186
21484
  get hasSummarizedColumns() {
21187
21485
  const summarizedColumns = this.grid.columns.filter(col => col.hasSummary && !col.hidden);
@@ -21239,7 +21537,7 @@ class IgxGridSummaryService {
21239
21537
  // private removeChildRowSummaries(rowID, columnName?) {
21240
21538
  // }
21241
21539
  compareGroupingExpressions(current, groupingArgs) {
21242
- const newExpressions = groupingArgs.expressions instanceof Array ? groupingArgs.expressions.map((record) => record.fieldName) : [];
21540
+ const newExpressions = groupingArgs.expressions.map(record => record.fieldName);
21243
21541
  const removedCols = groupingArgs.ungroupedColumns;
21244
21542
  if (current.length <= newExpressions.length) {
21245
21543
  const newExpr = newExpressions.slice(0, current.length).toString();
@@ -21253,7 +21551,7 @@ class IgxGridSummaryService {
21253
21551
  this.clearSummaryCache();
21254
21552
  return;
21255
21553
  }
21256
- removedCols instanceof Array && removedCols.map(col => col.field).forEach(colName => {
21554
+ removedCols.map(col => col.field).forEach(colName => {
21257
21555
  this.summaryCacheMap.forEach((_cache, id) => {
21258
21556
  if (id.indexOf(colName) !== -1) {
21259
21557
  this.summaryCacheMap.delete(id);
@@ -21482,11 +21780,11 @@ class IgxSummaryRowComponent {
21482
21780
  };
21483
21781
  }
21484
21782
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxSummaryRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21485
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxSummaryRowComponent, isStandalone: true, selector: "igx-grid-summary-row", inputs: { summaries: "summaries", gridID: "gridID", index: "index", firstCellIndentation: "firstCellIndentation" }, host: { properties: { "attr.data-rowIndex": "this.dataRowIndex" } }, providers: [IgxForOfSyncService], viewQueries: [{ propertyName: "virtDirRow", first: true, predicate: ["igxDirRef"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "_summaryCells", predicate: IgxSummaryCellComponent, descendants: true, read: IgxSummaryCellComponent }], ngImport: i0, template: "@if (summaries.size) {\n @if (grid.summariesMargin) {\n <div\n class=\"igx-grid__summaries-patch\"\n [style.min-width.px]=\"grid.summariesMargin\"\n [style.flex-basis.px]=\"grid.summariesMargin\"\n (pointerdown)=\"$event.preventDefault()\"\n ></div>\n }\n @if (pinnedStartColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedStartColumns)\"></ng-container>\n }\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\" [igxForSizePropName]='\"calcPixelWidth\"' #igxDirRef>\n <igx-grid-summary-cell\n class=\"igx-grid-summary igx-grid-summary--fw\"\n role=\"cell\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [rowIndex]=\"index\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [summaryResults]=\"getColumnSummaries(col.field)!\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [summaryFormatter]=\"col.summaryFormatter\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n </ng-template>\n @if (pinnedEndColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedEndColumns)\"></ng-container>\n }\n}\n\n<ng-template #summaryCellTemplate let-col let-columns=\"columns\">\n @for (col of columns | igxNotGrouped; track trackPinnedColumn(col)) {\n <igx-grid-summary-cell\n role=\"cell\"\n class=\"igx-grid-summary igx-grid-summary--fw igx-grid-summary--pinned\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-first]=\"col.isFirstPinned\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [rowIndex]=\"index\"\n [summaryResults]=\"getColumnSummaries(col.field)!\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n }\n</ng-template>\n", styles: ["@layer ig.base{.igx-grid-summary{position:relative;display:flex;flex-direction:column;flex:1 1 0%;padding-block:0;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));background:var(--background-color, inherit);overflow:hidden;outline-style:none;border-inline-end:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{display:flex;align-items:center;position:relative;padding-block:max(var(--is-large, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.125rem,-1 * .125rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(0rem,-1 * 0rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));padding-inline:0;font-size:.75rem}.igx-grid-summary__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--label-color);min-width:1.875rem;margin-inline-end:.1875rem}.igx-grid-summary__label:hover{color:var(--label-hover-color)}.igx-grid-summary__result{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--result-color);font-weight:600;flex:1 1 auto;text-align:end}.igx-grid-summary--pinned{position:relative;z-index:1}.igx-grid-summary--active.igx-grid-summary--pinned:after{width:calc(100% - .0625rem)}.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(ltr){border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(rtl){border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}@media print{.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-last:after{inset-inline-start:.0625rem}@media print{.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--fw{flex-grow:0}.igx-grid-summary:after{content:\"\";position:absolute;inset:0;pointer-events:none}.igx-grid-summary--active:after{width:100%;height:100%;box-shadow:inset 0 0 0 .0625rem var(--cell-active-border-color);pointer-events:none}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-grid-summary{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-top:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{min-height:max(var(--is-large, 1)*max(2.25rem,-1 * 2.25rem),var(--is-medium, 1)*max(1.875rem,-1 * 1.875rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));font-size:initial}.igx-grid-summary__label{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);margin-inline-end:initial}.igx-grid-summary__result{font-family:var(--ig-detail-2-font-family, var(--ig-font-family));font-size:var(--ig-detail-2-font-size);font-weight:var(--ig-detail-2-font-weight);font-style:var(--ig-detail-2-font-style);line-height:var(--ig-detail-2-line-height);letter-spacing:var(--ig-detail-2-letter-spacing);text-transform:var(--ig-detail-2-text-transform);margin-top:var(--ig-detail-2-margin-top);margin-bottom:var(--ig-detail-2-margin-bottom)}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxSummaryCellComponent, selector: "igx-grid-summary-cell", inputs: ["summaryResults", "column", "firstCellIndentation", "hasSummary", "summaryFormatter", "summaryTemplate", "locale", "gridResourceStrings", "active", "rowIndex"] }, { kind: "pipe", type: IgxGridNotGroupedPipe, name: "igxNotGrouped" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
21783
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxSummaryRowComponent, isStandalone: true, selector: "igx-grid-summary-row", inputs: { summaries: "summaries", gridID: "gridID", index: "index", firstCellIndentation: "firstCellIndentation" }, host: { properties: { "attr.data-rowIndex": "this.dataRowIndex" } }, providers: [IgxForOfSyncService], viewQueries: [{ propertyName: "virtDirRow", first: true, predicate: ["igxDirRef"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "_summaryCells", predicate: IgxSummaryCellComponent, descendants: true, read: IgxSummaryCellComponent }], ngImport: i0, template: "@if (summaries.size) {\n @if (grid.summariesMargin) {\n <div\n class=\"igx-grid__summaries-patch\"\n [style.min-width.px]=\"grid.summariesMargin\"\n [style.flex-basis.px]=\"grid.summariesMargin\"\n (pointerdown)=\"$event.preventDefault()\"\n ></div>\n }\n @if (pinnedStartColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedStartColumns)\"></ng-container>\n }\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\" [igxForSizePropName]='\"calcPixelWidth\"' #igxDirRef>\n <igx-grid-summary-cell\n class=\"igx-grid-summary igx-grid-summary--fw\"\n role=\"cell\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [rowIndex]=\"index\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [summaryFormatter]=\"col.summaryFormatter\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n </ng-template>\n @if (pinnedEndColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedEndColumns)\"></ng-container>\n }\n}\n\n<ng-template #summaryCellTemplate let-col let-columns=\"columns\">\n @for (col of columns | igxNotGrouped; track trackPinnedColumn(col)) {\n <igx-grid-summary-cell\n role=\"cell\"\n class=\"igx-grid-summary igx-grid-summary--fw igx-grid-summary--pinned\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-first]=\"col.isFirstPinned\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [rowIndex]=\"index\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n }\n</ng-template>\n", styles: ["@layer ig.base{.igx-grid-summary{position:relative;display:flex;flex-direction:column;flex:1 1 0%;padding-block:0;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));background:var(--background-color, inherit);overflow:hidden;outline-style:none;border-inline-end:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{display:flex;align-items:center;position:relative;padding-block:max(var(--is-large, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.125rem,-1 * .125rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(0rem,-1 * 0rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));padding-inline:0;font-size:.75rem}.igx-grid-summary__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--label-color);min-width:1.875rem;margin-inline-end:.1875rem}.igx-grid-summary__label:hover{color:var(--label-hover-color)}.igx-grid-summary__result{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--result-color);font-weight:600;flex:1 1 auto;text-align:end}.igx-grid-summary--pinned{position:relative;z-index:1}.igx-grid-summary--active.igx-grid-summary--pinned:after{width:calc(100% - .0625rem)}.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(ltr){border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(rtl){border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}@media print{.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-last:after{inset-inline-start:.0625rem}@media print{.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--fw{flex-grow:0}.igx-grid-summary:after{content:\"\";position:absolute;inset:0;pointer-events:none}.igx-grid-summary--active:after{width:100%;height:100%;box-shadow:inset 0 0 0 .0625rem var(--cell-active-border-color);pointer-events:none}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-grid-summary{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-top:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{min-height:max(var(--is-large, 1)*max(2.25rem,-1 * 2.25rem),var(--is-medium, 1)*max(1.875rem,-1 * 1.875rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));font-size:initial}.igx-grid-summary__label{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);margin-inline-end:initial}.igx-grid-summary__result{font-family:var(--ig-detail-2-font-family, var(--ig-font-family));font-size:var(--ig-detail-2-font-size);font-weight:var(--ig-detail-2-font-weight);font-style:var(--ig-detail-2-font-style);line-height:var(--ig-detail-2-line-height);letter-spacing:var(--ig-detail-2-letter-spacing);text-transform:var(--ig-detail-2-text-transform);margin-top:var(--ig-detail-2-margin-top);margin-bottom:var(--ig-detail-2-margin-bottom)}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxSummaryCellComponent, selector: "igx-grid-summary-cell", inputs: ["summaryResults", "column", "firstCellIndentation", "hasSummary", "summaryFormatter", "summaryTemplate", "locale", "gridResourceStrings", "active", "rowIndex"] }, { kind: "pipe", type: IgxGridNotGroupedPipe, name: "igxNotGrouped" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
21486
21784
  }
21487
21785
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxSummaryRowComponent, decorators: [{
21488
21786
  type: Component,
21489
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-summary-row', encapsulation: ViewEncapsulation.None, providers: [IgxForOfSyncService], imports: [NgTemplateOutlet, IgxGridForOfDirective, IgxSummaryCellComponent, IgxGridNotGroupedPipe], template: "@if (summaries.size) {\n @if (grid.summariesMargin) {\n <div\n class=\"igx-grid__summaries-patch\"\n [style.min-width.px]=\"grid.summariesMargin\"\n [style.flex-basis.px]=\"grid.summariesMargin\"\n (pointerdown)=\"$event.preventDefault()\"\n ></div>\n }\n @if (pinnedStartColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedStartColumns)\"></ng-container>\n }\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\" [igxForSizePropName]='\"calcPixelWidth\"' #igxDirRef>\n <igx-grid-summary-cell\n class=\"igx-grid-summary igx-grid-summary--fw\"\n role=\"cell\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [rowIndex]=\"index\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [summaryResults]=\"getColumnSummaries(col.field)!\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [summaryFormatter]=\"col.summaryFormatter\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n </ng-template>\n @if (pinnedEndColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedEndColumns)\"></ng-container>\n }\n}\n\n<ng-template #summaryCellTemplate let-col let-columns=\"columns\">\n @for (col of columns | igxNotGrouped; track trackPinnedColumn(col)) {\n <igx-grid-summary-cell\n role=\"cell\"\n class=\"igx-grid-summary igx-grid-summary--fw igx-grid-summary--pinned\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-first]=\"col.isFirstPinned\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [rowIndex]=\"index\"\n [summaryResults]=\"getColumnSummaries(col.field)!\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n }\n</ng-template>\n", styles: ["@layer ig.base{.igx-grid-summary{position:relative;display:flex;flex-direction:column;flex:1 1 0%;padding-block:0;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));background:var(--background-color, inherit);overflow:hidden;outline-style:none;border-inline-end:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{display:flex;align-items:center;position:relative;padding-block:max(var(--is-large, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.125rem,-1 * .125rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(0rem,-1 * 0rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));padding-inline:0;font-size:.75rem}.igx-grid-summary__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--label-color);min-width:1.875rem;margin-inline-end:.1875rem}.igx-grid-summary__label:hover{color:var(--label-hover-color)}.igx-grid-summary__result{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--result-color);font-weight:600;flex:1 1 auto;text-align:end}.igx-grid-summary--pinned{position:relative;z-index:1}.igx-grid-summary--active.igx-grid-summary--pinned:after{width:calc(100% - .0625rem)}.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(ltr){border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(rtl){border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}@media print{.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-last:after{inset-inline-start:.0625rem}@media print{.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--fw{flex-grow:0}.igx-grid-summary:after{content:\"\";position:absolute;inset:0;pointer-events:none}.igx-grid-summary--active:after{width:100%;height:100%;box-shadow:inset 0 0 0 .0625rem var(--cell-active-border-color);pointer-events:none}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-grid-summary{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-top:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{min-height:max(var(--is-large, 1)*max(2.25rem,-1 * 2.25rem),var(--is-medium, 1)*max(1.875rem,-1 * 1.875rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));font-size:initial}.igx-grid-summary__label{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);margin-inline-end:initial}.igx-grid-summary__result{font-family:var(--ig-detail-2-font-family, var(--ig-font-family));font-size:var(--ig-detail-2-font-size);font-weight:var(--ig-detail-2-font-weight);font-style:var(--ig-detail-2-font-style);line-height:var(--ig-detail-2-line-height);letter-spacing:var(--ig-detail-2-letter-spacing);text-transform:var(--ig-detail-2-text-transform);margin-top:var(--ig-detail-2-margin-top);margin-bottom:var(--ig-detail-2-margin-bottom)}}}\n"] }]
21787
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-summary-row', encapsulation: ViewEncapsulation.None, providers: [IgxForOfSyncService], imports: [NgTemplateOutlet, IgxGridForOfDirective, IgxSummaryCellComponent, IgxGridNotGroupedPipe], template: "@if (summaries.size) {\n @if (grid.summariesMargin) {\n <div\n class=\"igx-grid__summaries-patch\"\n [style.min-width.px]=\"grid.summariesMargin\"\n [style.flex-basis.px]=\"grid.summariesMargin\"\n (pointerdown)=\"$event.preventDefault()\"\n ></div>\n }\n @if (pinnedStartColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedStartColumns)\"></ng-container>\n }\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\" [igxForSizePropName]='\"calcPixelWidth\"' #igxDirRef>\n <igx-grid-summary-cell\n class=\"igx-grid-summary igx-grid-summary--fw\"\n role=\"cell\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [rowIndex]=\"index\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [summaryFormatter]=\"col.summaryFormatter\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n </ng-template>\n @if (pinnedEndColumns.length > 0) {\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this, pinnedEndColumns)\"></ng-container>\n }\n}\n\n<ng-template #summaryCellTemplate let-col let-columns=\"columns\">\n @for (col of columns | igxNotGrouped; track trackPinnedColumn(col)) {\n <igx-grid-summary-cell\n role=\"cell\"\n class=\"igx-grid-summary igx-grid-summary--fw igx-grid-summary--pinned\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-first]=\"col.isFirstPinned\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [locale]=\"grid.locale\"\n [gridResourceStrings]=\"grid.resourceStrings\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [rowIndex]=\"index\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [summaryTemplate]=\"col.summaryTemplate\"\n [hasSummary]=\"col.hasSummary\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\">\n </igx-grid-summary-cell>\n }\n</ng-template>\n", styles: ["@layer ig.base{.igx-grid-summary{position:relative;display:flex;flex-direction:column;flex:1 1 0%;padding-block:0;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));background:var(--background-color, inherit);overflow:hidden;outline-style:none;border-inline-end:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{display:flex;align-items:center;position:relative;padding-block:max(var(--is-large, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.125rem,-1 * .125rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(0rem,-1 * 0rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));padding-inline:0;font-size:.75rem}.igx-grid-summary__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--label-color);min-width:1.875rem;margin-inline-end:.1875rem}.igx-grid-summary__label:hover{color:var(--label-hover-color)}.igx-grid-summary__result{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--result-color);font-weight:600;flex:1 1 auto;text-align:end}.igx-grid-summary--pinned{position:relative;z-index:1}.igx-grid-summary--active.igx-grid-summary--pinned:after{width:calc(100% - .0625rem)}.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(ltr){border-inline-start:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-first:dir(rtl){border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}@media print{.igx-grid-summary--pinned-first{border-inline-start:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) var(--pinned-border-color)}.igx-grid-summary--pinned-last:after{inset-inline-start:.0625rem}@media print{.igx-grid-summary--pinned-last{border-inline-end:var(--pinned-border-width) var(--pinned-border-style) #999}}.igx-grid-summary--fw{flex-grow:0}.igx-grid-summary:after{content:\"\";position:absolute;inset:0;pointer-events:none}.igx-grid-summary--active:after{width:100%;height:100%;box-shadow:inset 0 0 0 .0625rem var(--cell-active-border-color);pointer-events:none}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-grid-summary{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-top:var(--border-width) var(--border-style) var(--border-color)}.igx-grid-summary__item{min-height:max(var(--is-large, 1)*max(2.25rem,-1 * 2.25rem),var(--is-medium, 1)*max(1.875rem,-1 * 1.875rem),var(--is-small, 1)*max(1.5rem,-1 * 1.5rem));font-size:initial}.igx-grid-summary__label{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);margin-inline-end:initial}.igx-grid-summary__result{font-family:var(--ig-detail-2-font-family, var(--ig-font-family));font-size:var(--ig-detail-2-font-size);font-weight:var(--ig-detail-2-font-weight);font-style:var(--ig-detail-2-font-style);line-height:var(--ig-detail-2-line-height);letter-spacing:var(--ig-detail-2-letter-spacing);text-transform:var(--ig-detail-2-text-transform);margin-top:var(--ig-detail-2-margin-top);margin-bottom:var(--ig-detail-2-margin-bottom)}}}\n"] }]
21490
21788
  }], propDecorators: { summaries: [{
21491
21789
  type: Input
21492
21790
  }], gridID: [{
@@ -21961,7 +22259,7 @@ class IgxGridNavigationService {
21961
22259
  // this is workaround: endTopOffset - containerHeight > 5 and should be replaced with: containerHeight < endTopOffset
21962
22260
  // when the page is zoomed the grid does not scroll the row completely in the view
21963
22261
  return !targetRow || targetRow.offsetTop < Math.abs(this.containerTopOffset)
21964
- || (containerHeight && endTopOffset - containerHeight > 5);
22262
+ || containerHeight && endTopOffset - containerHeight > 5;
21965
22263
  }
21966
22264
  shouldNotifyVirtualizedKeyboardSelection(key, rowIndex, visibleColIndex) {
21967
22265
  // Any navigation key that ends up scrolling activates the target cell from the
@@ -21985,7 +22283,7 @@ class IgxGridNavigationService {
21985
22283
  rowIndex - this.grid.pinnedDataView.length : rowIndex;
21986
22284
  this.grid.verticalScrollContainer.scrollTo(scrollRowIndex);
21987
22285
  this.grid.verticalScrollContainer.chunkLoad
21988
- .pipe(first()).subscribe(() => {
22286
+ .pipe(first$1()).subscribe(() => {
21989
22287
  this.pendingNavigation = false;
21990
22288
  if (cb) {
21991
22289
  cb();
@@ -21993,7 +22291,7 @@ class IgxGridNavigationService {
21993
22291
  });
21994
22292
  }
21995
22293
  performHorizontalScrollToCell(visibleColumnIndex, cb) {
21996
- if (this.grid.rowList.length < 1 && this.grid.summariesRowList.length < 1 && this.grid.hasColumnGroups) {
22294
+ if (this.grid.rowList < 1 && this.grid.summariesRowList.length < 1 && this.grid.hasColumnGroups) {
21997
22295
  let column = this.grid.getColumnByVisibleIndex(visibleColumnIndex);
21998
22296
  while (column.parent) {
21999
22297
  column = column.parent;
@@ -22005,7 +22303,7 @@ class IgxGridNavigationService {
22005
22303
  }
22006
22304
  this.pendingNavigation = true;
22007
22305
  this.grid.parentVirtDir.chunkLoad
22008
- .pipe(first())
22306
+ .pipe(first$1())
22009
22307
  .subscribe(() => {
22010
22308
  this.pendingNavigation = false;
22011
22309
  if (cb) {
@@ -22116,7 +22414,7 @@ class IgxGridNavigationService {
22116
22414
  }
22117
22415
  const editCell = this.grid.crudService.cell;
22118
22416
  this.grid.verticalScrollContainer.chunkLoad
22119
- .pipe(first()).subscribe(() => {
22417
+ .pipe(first$1()).subscribe(() => {
22120
22418
  if (editCell && this.grid.rowList.map(r => r.index).indexOf(editCell.rowIndex) < 0) {
22121
22419
  this.grid.tbody.nativeElement.focus({ preventScroll: true });
22122
22420
  }
@@ -22344,7 +22642,7 @@ class IgxGridNavigationService {
22344
22642
  this.grid.navigateTo(rowIndex, visibleColIndex, cb);
22345
22643
  }
22346
22644
  emitKeyDown(type, rowIndex, event) {
22347
- const row = this.grid.summariesRowList.find((r) => r.index === rowIndex) || this.grid.rowList.find((r) => r.index === rowIndex);
22645
+ const row = this.grid.summariesRowList.toArray().concat(this.grid.rowList.toArray()).find(r => r.index === rowIndex);
22348
22646
  if (!row) {
22349
22647
  return;
22350
22648
  }
@@ -22376,7 +22674,6 @@ class IgxGridNavigationService {
22376
22674
  return i;
22377
22675
  }
22378
22676
  }
22379
- return undefined;
22380
22677
  }
22381
22678
  getRowElementByIndex(index) {
22382
22679
  if (this.grid.hasDetails) {
@@ -22385,7 +22682,7 @@ class IgxGridNavigationService {
22385
22682
  return detail;
22386
22683
  }
22387
22684
  }
22388
- return this.grid.rowList.find((r) => r.index === index)?.nativeElement || this.grid.summariesRowList.find((r) => r.index === index)?.nativeElement || null;
22685
+ return this.grid.rowList.toArray().concat(this.grid.summariesRowList.toArray()).find(r => r.index === index)?.nativeElement;
22389
22686
  }
22390
22687
  isValidPosition(rowIndex, colIndex) {
22391
22688
  const length = this.grid.totalItemCount ?? this.grid.dataView.length;
@@ -22451,7 +22748,7 @@ class IgxGridNavigationService {
22451
22748
  this.grid.visibleColumns.sort((c1, c2) => c1.visibleIndex - c2.visibleIndex)
22452
22749
  .find(c => this.isColumnFullyVisible(c.visibleIndex))?.visibleIndex;
22453
22750
  const column = this.grid.visibleColumns.find((col) => !col.columnLayout && col.visibleIndex === colIndex);
22454
- const rowInd = rowIndex ? rowIndex : this.grid.rowList.find((r) => !this.shouldPerformVerticalScroll(r.index, colIndex))?.index;
22751
+ const rowInd = rowIndex ? rowIndex : this.grid.rowList.find(r => !this.shouldPerformVerticalScroll(r.index, colIndex))?.index;
22455
22752
  const node = {
22456
22753
  row: rowInd ?? 0,
22457
22754
  column: column?.visibleIndex ?? 0, level: column?.level ?? 0,
@@ -22518,7 +22815,7 @@ class IgxGridNavigationService {
22518
22815
  }
22519
22816
  const clearSelection = this.grid.columnSelection === GridSelectionMode.single;
22520
22817
  const columnsToSelect = !column.children ? [column.field] :
22521
- column.allChildren.filter((c) => !c.hidden && c.selectable && !c.columnGroup).map((c) => c.field);
22818
+ column.allChildren.filter(c => !c.hidden && c.selectable && !c.columnGroup).map(c => c.field);
22522
22819
  if (column.selected) {
22523
22820
  this.grid.selectionService.deselectColumns(columnsToSelect, event);
22524
22821
  }
@@ -22646,14 +22943,14 @@ class IgxGridValidationService {
22646
22943
  */
22647
22944
  isFieldInvalid(formGroup, fieldName) {
22648
22945
  const path = this.getFormControlPath(fieldName);
22649
- return (formGroup.get(path)?.invalid && formGroup.get(path)?.touched);
22946
+ return formGroup.get(path)?.invalid && formGroup.get(path)?.touched;
22650
22947
  }
22651
22948
  /**
22652
22949
  * Checks the validity of the native ngControl after edit
22653
22950
  */
22654
22951
  isFieldValidAfterEdit(formGroup, fieldName) {
22655
22952
  const path = this.getFormControlPath(fieldName);
22656
- return (!formGroup.get(path)?.invalid && formGroup.get(path)?.dirty);
22953
+ return !formGroup.get(path)?.invalid && formGroup.get(path)?.dirty;
22657
22954
  }
22658
22955
  /**
22659
22956
  * @hidden
@@ -22991,9 +23288,9 @@ class IgxGridCellComponent {
22991
23288
  const scrollOffset = this.grid.verticalScrollContainer.scrollPosition + (event.y - this.grid.tbody.nativeElement.getBoundingClientRect().y);
22992
23289
  const targetRowIndex = this.grid.verticalScrollContainer.getIndexAtScroll(scrollOffset);
22993
23290
  if (targetRowIndex != this.rowIndex) {
22994
- const row = this.grid.rowList.find((x) => x.index === targetRowIndex);
22995
- const actualTarget = row?.cells?.find((x) => x.column === this.column);
22996
- actualTarget?.pointerdown(event);
23291
+ const row = this.grid.rowList.toArray().find(x => x.index === targetRowIndex);
23292
+ const actualTarget = row.cells.find(x => x.column === this.column);
23293
+ actualTarget.pointerdown(event);
22997
23294
  return;
22998
23295
  }
22999
23296
  }
@@ -23656,7 +23953,7 @@ class IgxGridCellComponent {
23656
23953
  if (this.isInvalid && !isTargetErrorIcon) {
23657
23954
  this.cdr.detectChanges();
23658
23955
  this.openErrorTooltip();
23659
- this.grid.activeNodeChange.pipe(first()).subscribe(() => {
23956
+ this.grid.activeNodeChange.pipe(first$1()).subscribe(() => {
23660
23957
  this.closeErrorTooltip();
23661
23958
  });
23662
23959
  }
@@ -23737,7 +24034,7 @@ class IgxGridCellComponent {
23737
24034
  * Also we need to keep the notifyChanges below, because of the current
23738
24035
  * change detection cycle when we have editing with enabled transactions
23739
24036
  */
23740
- if (this.grid.sortingExpressions.length && this.grid.sortingExpressions.indexOf(editableCell.column.field) !== -1) {
24037
+ if (this.grid.sortingExpressions.length && this.grid.sortingExpressions.indexOf(editableCell.column.field)) {
23741
24038
  this.grid.cdr.detectChanges();
23742
24039
  }
23743
24040
  if (editableArgs && editableArgs.cancel) {
@@ -23778,7 +24075,7 @@ class IgxGridCellComponent {
23778
24075
  return new IgxGridCell(this.grid, rowID, this.column);
23779
24076
  }
23780
24077
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23781
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridCellComponent, isStandalone: true, selector: "igx-grid-cell", inputs: { column: "column", isPlaceholder: "isPlaceholder", isMerged: "isMerged", intRow: "intRow", row: "row", rowData: "rowData", columnData: "columnData", cellTemplate: "cellTemplate", cellValidationErrorTemplate: "cellValidationErrorTemplate", pinnedIndicator: "pinnedIndicator", value: "value", formatter: "formatter", visibleColumnIndex: "visibleColumnIndex", cellSelectionMode: "cellSelectionMode", lastSearchInfo: "lastSearchInfo", lastPinned: "lastPinned", firstPinned: "firstPinned", editMode: ["editMode", "editMode", booleanAttribute], width: "width", active: "active", displayPinnedChip: "displayPinnedChip" }, host: { listeners: { "dblclick": "onDoubleClick($event)", "click": "onClick($event)" }, properties: { "class.igx-grid__td--new": "this.isEmptyAddRowCell", "attr.data-rowIndex": "this.rowIndex", "attr.data-visibleIndex": "this.visibleColumnIndex", "attr.id": "this.attrCellID", "attr.title": "this.title", "class.igx-grid__td--bool-true": "this.booleanClass", "class.igx-grid__td--pinned-last": "this.lastPinned", "class.igx-grid__td--pinned-first": "this.firstPinned", "class.igx-grid__td--editing": "this.editMode", "attr.role": "this.role", "attr.aria-readonly": "this.readonly", "attr.aria-describedby": "this.ariaDescribeBy", "class.igx-grid__td--invalid": "this.isInvalid", "attr.aria-invalid": "this.isInvalid", "class.igx-grid__td--valid": "this.isValidAfterEdit", "class.igx-grid__td--active": "this.active", "attr.aria-selected": "this.ariaSelected", "class.igx-grid__td--selected": "this.selected", "class.igx-grid__td--column-selected": "this.columnSelected", "class.igx-grid__td--row-pinned-first": "this.displayPinnedChip", "style.min-height.px": "this.minHeight", "attr.aria-rowindex": "this.ariaRowIndex", "attr.aria-colindex": "this.ariaColIndex" } }, viewQueries: [{ propertyName: "errorIcon", first: true, predicate: ["errorIcon"], descendants: true, read: IgxIconComponent }, { propertyName: "defaultErrorTemplate", first: true, predicate: ["defaultError"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCellTemplate", first: true, predicate: ["defaultCell"], descendants: true, read: TemplateRef, static: true }, { propertyName: "emptyCellTemplate", first: true, predicate: ["emptyCell"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultPinnedIndicator", first: true, predicate: ["defaultPinnedIndicator"], descendants: true, read: TemplateRef, static: true }, { propertyName: "inlineEditorTemplate", first: true, predicate: ["inlineEditor"], descendants: true, read: TemplateRef, static: true }, { propertyName: "addRowCellTemplate", first: true, predicate: ["addRowCell"], descendants: true, read: TemplateRef, static: true }, { propertyName: "highlight", first: true, predicate: IgxTextHighlightDirective, descendants: true, read: IgxTextHighlightDirective }, { propertyName: "errorTooltip", predicate: ["error"], descendants: true, read: IgxTooltipDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-template #defaultPinnedIndicator>\n @if (displayPinnedChip) {\n <igx-chip\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [style.--ig-size]=\"1\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n }\n</ng-template>\n<ng-template #defaultCell>\n @if (\n (column.dataType !== 'boolean' && column.dataType !== 'image') ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n }}\n </div>\n }\n @if (column.dataType === 'boolean' && !this.formatter) {\n <igx-icon\n family=\"default\"\n [name]=\"value ? 'confirm' : 'close'\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >\n </igx-icon>\n }\n @if (column.dataType === 'image') {\n <img [src]=\"value\" [alt]=\"value | igxCellImageAlt\" />\n }\n</ng-template>\n\n<ng-template #emptyCell></ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n @if (\n column.dataType !== 'boolean' ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{ !isEmptyAddRowCell ? value : column.header || column.field }}\n </div>\n }\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n @if (column.dataType === 'string' || column.dataType === 'image') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-input-group>\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n }\n @if (column.dataType === 'number') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'boolean') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-checkbox\n [checked]=\"editValue\"\n [igxFocus]=\"true\"\n [disableRipple]=\"true\"\n [formControl]=\"formControl\"\n ></igx-checkbox>\n </ng-container>\n }\n @if (column.dataType === 'date') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-date-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart!\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [displayFormat]=\"column.pipeArgs.format!\"\n >\n </igx-date-picker>\n </ng-container>\n }\n @if (column.dataType === 'time') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-time-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n ></igx-time-picker>\n </ng-container>\n }\n @if (column.dataType === 'dateTime') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n type=\"text\"\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [formControl]=\"formControl\"\n igxInput\n [locale]=\"grid.locale\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat!\"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [igxFocus]=\"true\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'currency') {\n <igx-input-group [formGroup]=\"formGroup\">\n @if (grid.currencyPositionLeft) {\n <igx-prefix>{{ currencyCodeSymbol }}</igx-prefix>\n }\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n @if (!grid.currencyPositionLeft) {\n <igx-suffix>{{ currencyCodeSymbol }}</igx-suffix>\n }\n </igx-input-group>\n }\n @if (column.dataType === 'percent') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n <igx-suffix>\n {{ editValue | percent: column.pipeArgs.digitsInfo : grid.locale }}\n </igx-suffix>\n </igx-input-group>\n }\n</ng-template>\n<ng-container *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\">\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n\n@if (isInvalid) {\n <igx-icon\n family=\"default\"\n name=\"error\"\n #errorIcon\n [igxTooltipTarget]=\"tooltipRef\"\n (mouseover)=\"errorShowing = true\"\n (mouseout)=\"errorShowing = false\"\n >\n </igx-icon>\n <div [id]=\"ariaErrorMessage\" igxTooltip #error #tooltipRef=\"tooltip\">\n <div [style.width]=\"'max-content'\">\n <ng-container\n *ngTemplateOutlet=\"\n cellValidationErrorTemplate || defaultError;\n context: context\n \"\n ></ng-container>\n </div>\n </div>\n}\n\n<ng-template #defaultError>\n @let errors = formControl.errors;\n @if (errors?.['required']) {\n <div>\n {{ grid.resourceStrings.igx_grid_required_validation_error }}\n </div>\n }\n @if (errors?.['minlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_length_validation_error!\n | igxStringReplace: '{0}' : errors.minlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['maxlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_length_validation_error!\n | igxStringReplace: '{0}' : errors.maxlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['min']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_validation_error!\n | igxStringReplace: '{0}' : errors.min.min\n }}\n </div>\n }\n @if (errors?.['max']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_validation_error!\n | igxStringReplace: '{0}' : errors.max.max\n }}\n </div>\n }\n @if (errors?.['email']) {\n <div>\n {{ grid.resourceStrings.igx_grid_email_validation_error }}\n </div>\n }\n @if (errors?.['pattern']) {\n <div>\n {{ grid.resourceStrings.igx_grid_pattern_validation_error }}\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number]:not([ngNoCva])[formControlName],input[type=number]:not([ngNoCva])[formControl],input[type=number]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "directive", type: IgxTextHighlightDirective, selector: "[igxTextHighlight]", inputs: ["cssClass", "activeCssClass", "containerClass", "groupName", "value", "row", "column", "metadata"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { kind: "directive", type: IgxTextSelectionDirective, selector: "[igxTextSelection]", inputs: ["igxTextSelection"], exportAs: ["igxTextSelection"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "directive", type: IgxTooltipTargetDirective, selector: "[igxTooltipTarget]", inputs: ["showDelay", "hideDelay", "hasArrow", "sticky", "closeButtonTemplate", "positionSettings", "tooltipDisabled", "showTriggers", "hideTriggers", "igxTooltipTarget", "tooltip"], outputs: ["tooltipShow", "tooltipHide"], exportAs: ["tooltipTarget"] }, { kind: "directive", type: IgxTooltipDirective, selector: "[igxTooltip]", inputs: ["context", "id", "role"], exportAs: ["tooltip"] }, { kind: "pipe", type: IgxNumberFormatterPipe, name: "number" }, { kind: "pipe", type: IgxPercentFormatterPipe, name: "percent" }, { kind: "pipe", type: IgxCurrencyFormatterPipe, name: "currency" }, { kind: "pipe", type: IgxDateFormatterPipe, name: "date" }, { kind: "pipe", type: IgxGridCellImageAltPipe, name: "igxCellImageAlt" }, { kind: "pipe", type: IgxStringReplacePipe, name: "igxStringReplace" }, { kind: "pipe", type: IgxColumnFormatterPipe, name: "columnFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24078
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxGridCellComponent, isStandalone: true, selector: "igx-grid-cell", inputs: { column: "column", isPlaceholder: "isPlaceholder", isMerged: "isMerged", intRow: "intRow", row: "row", rowData: "rowData", columnData: "columnData", cellTemplate: "cellTemplate", cellValidationErrorTemplate: "cellValidationErrorTemplate", pinnedIndicator: "pinnedIndicator", value: "value", formatter: "formatter", visibleColumnIndex: "visibleColumnIndex", cellSelectionMode: "cellSelectionMode", lastSearchInfo: "lastSearchInfo", lastPinned: "lastPinned", firstPinned: "firstPinned", editMode: ["editMode", "editMode", booleanAttribute], width: "width", active: "active", displayPinnedChip: "displayPinnedChip" }, host: { listeners: { "dblclick": "onDoubleClick($event)", "click": "onClick($event)" }, properties: { "class.igx-grid__td--new": "this.isEmptyAddRowCell", "attr.data-rowIndex": "this.rowIndex", "attr.data-visibleIndex": "this.visibleColumnIndex", "attr.id": "this.attrCellID", "attr.title": "this.title", "class.igx-grid__td--bool-true": "this.booleanClass", "class.igx-grid__td--pinned-last": "this.lastPinned", "class.igx-grid__td--pinned-first": "this.firstPinned", "class.igx-grid__td--editing": "this.editMode", "attr.role": "this.role", "attr.aria-readonly": "this.readonly", "attr.aria-describedby": "this.ariaDescribeBy", "class.igx-grid__td--invalid": "this.isInvalid", "attr.aria-invalid": "this.isInvalid", "class.igx-grid__td--valid": "this.isValidAfterEdit", "class.igx-grid__td--active": "this.active", "attr.aria-selected": "this.ariaSelected", "class.igx-grid__td--selected": "this.selected", "class.igx-grid__td--column-selected": "this.columnSelected", "class.igx-grid__td--row-pinned-first": "this.displayPinnedChip", "style.min-height.px": "this.minHeight", "attr.aria-rowindex": "this.ariaRowIndex", "attr.aria-colindex": "this.ariaColIndex" } }, viewQueries: [{ propertyName: "errorIcon", first: true, predicate: ["errorIcon"], descendants: true, read: IgxIconComponent }, { propertyName: "defaultErrorTemplate", first: true, predicate: ["defaultError"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCellTemplate", first: true, predicate: ["defaultCell"], descendants: true, read: TemplateRef, static: true }, { propertyName: "emptyCellTemplate", first: true, predicate: ["emptyCell"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultPinnedIndicator", first: true, predicate: ["defaultPinnedIndicator"], descendants: true, read: TemplateRef, static: true }, { propertyName: "inlineEditorTemplate", first: true, predicate: ["inlineEditor"], descendants: true, read: TemplateRef, static: true }, { propertyName: "addRowCellTemplate", first: true, predicate: ["addRowCell"], descendants: true, read: TemplateRef, static: true }, { propertyName: "highlight", first: true, predicate: IgxTextHighlightDirective, descendants: true, read: IgxTextHighlightDirective }, { propertyName: "errorTooltip", predicate: ["error"], descendants: true, read: IgxTooltipDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-template #defaultPinnedIndicator>\n @if (displayPinnedChip) {\n <igx-chip\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [style.--ig-size]=\"1\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n }\n</ng-template>\n<ng-template #defaultCell>\n @if (\n (column.dataType !== 'boolean' && column.dataType !== 'image') ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n }}\n </div>\n }\n @if (column.dataType === 'boolean' && !this.formatter) {\n <igx-icon\n family=\"default\"\n [name]=\"value ? 'confirm' : 'close'\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >\n </igx-icon>\n }\n @if (column.dataType === 'image') {\n <img [src]=\"value\" [alt]=\"value | igxCellImageAlt\" />\n }\n</ng-template>\n\n<ng-template #emptyCell></ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n @if (\n column.dataType !== 'boolean' ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{ !isEmptyAddRowCell ? value : column.header || column.field }}\n </div>\n }\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n @if (column.dataType === 'string' || column.dataType === 'image') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-input-group>\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n }\n @if (column.dataType === 'number') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'boolean') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-checkbox\n [checked]=\"editValue\"\n [igxFocus]=\"true\"\n [disableRipple]=\"true\"\n [formControl]=\"formControl\"\n ></igx-checkbox>\n </ng-container>\n }\n @if (column.dataType === 'date') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-date-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [displayFormat]=\"column.pipeArgs.format\"\n >\n </igx-date-picker>\n </ng-container>\n }\n @if (column.dataType === 'time') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-time-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [displayFormat]=\"column.pipeArgs.format\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n ></igx-time-picker>\n </ng-container>\n }\n @if (column.dataType === 'dateTime') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n type=\"text\"\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [formControl]=\"formControl\"\n igxInput\n [locale]=\"grid.locale\"\n [igxDateTimeEditor]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format\"\n [igxFocus]=\"true\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'currency') {\n <igx-input-group [formGroup]=\"formGroup\">\n @if (grid.currencyPositionLeft) {\n <igx-prefix>{{ currencyCodeSymbol }}</igx-prefix>\n }\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n @if (!grid.currencyPositionLeft) {\n <igx-suffix>{{ currencyCodeSymbol }}</igx-suffix>\n }\n </igx-input-group>\n }\n @if (column.dataType === 'percent') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n <igx-suffix>\n {{ editValue | percent: column.pipeArgs.digitsInfo : grid.locale }}\n </igx-suffix>\n </igx-input-group>\n }\n</ng-template>\n<ng-container *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\">\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n\n@if (isInvalid) {\n <igx-icon\n family=\"default\"\n name=\"error\"\n #errorIcon\n [igxTooltipTarget]=\"tooltipRef\"\n (mouseover)=\"errorShowing = true\"\n (mouseout)=\"errorShowing = false\"\n >\n </igx-icon>\n <div [id]=\"ariaErrorMessage\" igxTooltip #error #tooltipRef=\"tooltip\">\n <div [style.width]=\"'max-content'\">\n <ng-container\n *ngTemplateOutlet=\"\n cellValidationErrorTemplate || defaultError;\n context: context\n \"\n ></ng-container>\n </div>\n </div>\n}\n\n<ng-template #defaultError>\n @let errors = formControl.errors;\n @if (errors?.['required']) {\n <div>\n {{ grid.resourceStrings.igx_grid_required_validation_error }}\n </div>\n }\n @if (errors?.['minlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_length_validation_error\n | igxStringReplace: '{0}' : errors.minlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['maxlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_length_validation_error\n | igxStringReplace: '{0}' : errors.maxlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['min']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_validation_error\n | igxStringReplace: '{0}' : errors.min.min\n }}\n </div>\n }\n @if (errors?.['max']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_validation_error\n | igxStringReplace: '{0}' : errors.max.max\n }}\n </div>\n }\n @if (errors?.['email']) {\n <div>\n {{ grid.resourceStrings.igx_grid_email_validation_error }}\n </div>\n }\n @if (errors?.['pattern']) {\n <div>\n {{ grid.resourceStrings.igx_grid_pattern_validation_error }}\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number]:not([ngNoCva])[formControlName],input[type=number]:not([ngNoCva])[formControl],input[type=number]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "directive", type: IgxTextHighlightDirective, selector: "[igxTextHighlight]", inputs: ["cssClass", "activeCssClass", "containerClass", "groupName", "value", "row", "column", "metadata"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { kind: "directive", type: IgxTextSelectionDirective, selector: "[igxTextSelection]", inputs: ["igxTextSelection"], exportAs: ["igxTextSelection"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "orientation", "showWeekNumbers", "activeDate", "formatter", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "directive", type: IgxTooltipTargetDirective, selector: "[igxTooltipTarget]", inputs: ["showDelay", "hideDelay", "hasArrow", "sticky", "closeButtonTemplate", "positionSettings", "tooltipDisabled", "showTriggers", "hideTriggers", "igxTooltipTarget", "tooltip"], outputs: ["tooltipShow", "tooltipHide"], exportAs: ["tooltipTarget"] }, { kind: "directive", type: IgxTooltipDirective, selector: "[igxTooltip]", inputs: ["context", "id", "role"], exportAs: ["tooltip"] }, { kind: "pipe", type: IgxNumberFormatterPipe, name: "number" }, { kind: "pipe", type: IgxPercentFormatterPipe, name: "percent" }, { kind: "pipe", type: IgxCurrencyFormatterPipe, name: "currency" }, { kind: "pipe", type: IgxDateFormatterPipe, name: "date" }, { kind: "pipe", type: IgxGridCellImageAltPipe, name: "igxCellImageAlt" }, { kind: "pipe", type: IgxStringReplacePipe, name: "igxStringReplace" }, { kind: "pipe", type: IgxColumnFormatterPipe, name: "columnFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23782
24079
  }
23783
24080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridCellComponent, decorators: [{
23784
24081
  type: Component,
@@ -23808,7 +24105,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
23808
24105
  IgxGridCellImageAltPipe,
23809
24106
  IgxStringReplacePipe,
23810
24107
  IgxColumnFormatterPipe
23811
- ], template: "<ng-template #defaultPinnedIndicator>\n @if (displayPinnedChip) {\n <igx-chip\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [style.--ig-size]=\"1\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n }\n</ng-template>\n<ng-template #defaultCell>\n @if (\n (column.dataType !== 'boolean' && column.dataType !== 'image') ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n }}\n </div>\n }\n @if (column.dataType === 'boolean' && !this.formatter) {\n <igx-icon\n family=\"default\"\n [name]=\"value ? 'confirm' : 'close'\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >\n </igx-icon>\n }\n @if (column.dataType === 'image') {\n <img [src]=\"value\" [alt]=\"value | igxCellImageAlt\" />\n }\n</ng-template>\n\n<ng-template #emptyCell></ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n @if (\n column.dataType !== 'boolean' ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{ !isEmptyAddRowCell ? value : column.header || column.field }}\n </div>\n }\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n @if (column.dataType === 'string' || column.dataType === 'image') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-input-group>\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n }\n @if (column.dataType === 'number') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'boolean') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-checkbox\n [checked]=\"editValue\"\n [igxFocus]=\"true\"\n [disableRipple]=\"true\"\n [formControl]=\"formControl\"\n ></igx-checkbox>\n </ng-container>\n }\n @if (column.dataType === 'date') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-date-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart!\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [displayFormat]=\"column.pipeArgs.format!\"\n >\n </igx-date-picker>\n </ng-container>\n }\n @if (column.dataType === 'time') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-time-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [inputFormat]=\"column.editorOptions?.dateTimeFormat!\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n ></igx-time-picker>\n </ng-container>\n }\n @if (column.dataType === 'dateTime') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n type=\"text\"\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [formControl]=\"formControl\"\n igxInput\n [locale]=\"grid.locale\"\n [igxDateTimeEditor]=\"column.editorOptions?.dateTimeFormat!\"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format!\"\n [igxFocus]=\"true\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'currency') {\n <igx-input-group [formGroup]=\"formGroup\">\n @if (grid.currencyPositionLeft) {\n <igx-prefix>{{ currencyCodeSymbol }}</igx-prefix>\n }\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n @if (!grid.currencyPositionLeft) {\n <igx-suffix>{{ currencyCodeSymbol }}</igx-suffix>\n }\n </igx-input-group>\n }\n @if (column.dataType === 'percent') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n <igx-suffix>\n {{ editValue | percent: column.pipeArgs.digitsInfo : grid.locale }}\n </igx-suffix>\n </igx-input-group>\n }\n</ng-template>\n<ng-container *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\">\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n\n@if (isInvalid) {\n <igx-icon\n family=\"default\"\n name=\"error\"\n #errorIcon\n [igxTooltipTarget]=\"tooltipRef\"\n (mouseover)=\"errorShowing = true\"\n (mouseout)=\"errorShowing = false\"\n >\n </igx-icon>\n <div [id]=\"ariaErrorMessage\" igxTooltip #error #tooltipRef=\"tooltip\">\n <div [style.width]=\"'max-content'\">\n <ng-container\n *ngTemplateOutlet=\"\n cellValidationErrorTemplate || defaultError;\n context: context\n \"\n ></ng-container>\n </div>\n </div>\n}\n\n<ng-template #defaultError>\n @let errors = formControl.errors;\n @if (errors?.['required']) {\n <div>\n {{ grid.resourceStrings.igx_grid_required_validation_error }}\n </div>\n }\n @if (errors?.['minlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_length_validation_error!\n | igxStringReplace: '{0}' : errors.minlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['maxlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_length_validation_error!\n | igxStringReplace: '{0}' : errors.maxlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['min']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_validation_error!\n | igxStringReplace: '{0}' : errors.min.min\n }}\n </div>\n }\n @if (errors?.['max']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_validation_error!\n | igxStringReplace: '{0}' : errors.max.max\n }}\n </div>\n }\n @if (errors?.['email']) {\n <div>\n {{ grid.resourceStrings.igx_grid_email_validation_error }}\n </div>\n }\n @if (errors?.['pattern']) {\n <div>\n {{ grid.resourceStrings.igx_grid_pattern_validation_error }}\n </div>\n }\n</ng-template>\n" }]
24108
+ ], template: "<ng-template #defaultPinnedIndicator>\n @if (displayPinnedChip) {\n <igx-chip\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [style.--ig-size]=\"1\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n }\n</ng-template>\n<ng-template #defaultCell>\n @if (\n (column.dataType !== 'boolean' && column.dataType !== 'image') ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{\n formatter\n ? (value | columnFormatter: formatter : rowData : columnData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n }}\n </div>\n }\n @if (column.dataType === 'boolean' && !this.formatter) {\n <igx-icon\n family=\"default\"\n [name]=\"value ? 'confirm' : 'close'\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >\n </igx-icon>\n }\n @if (column.dataType === 'image') {\n <img [src]=\"value\" [alt]=\"value | igxCellImageAlt\" />\n }\n</ng-template>\n\n<ng-template #emptyCell></ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n @if (\n column.dataType !== 'boolean' ||\n (column.dataType === 'boolean' && this.formatter)\n ) {\n <div\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter: formatter : rowData)\n : column.dataType === 'number'\n ? (value | number: column.pipeArgs.digitsInfo : grid.locale)\n : column.dataType === 'date' ||\n column.dataType === 'time' ||\n column.dataType === 'dateTime'\n ? (value\n | date\n : column.pipeArgs.format\n : column.pipeArgs.timezone\n : grid.locale)\n : column.dataType === 'currency'\n ? (value\n | currency\n : currencyCode\n : column.pipeArgs.display\n : column.pipeArgs.digitsInfo\n : grid.locale)\n : column.dataType === 'percent'\n ? (value | percent: column.pipeArgs.digitsInfo : grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >\n {{ !isEmptyAddRowCell ? value : column.header || column.field }}\n </div>\n }\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n @if (column.dataType === 'string' || column.dataType === 'image') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-input-group>\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n }\n @if (column.dataType === 'number') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'boolean') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-checkbox\n [checked]=\"editValue\"\n [igxFocus]=\"true\"\n [disableRipple]=\"true\"\n [formControl]=\"formControl\"\n ></igx-checkbox>\n </ng-container>\n }\n @if (column.dataType === 'date') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-date-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [displayFormat]=\"column.pipeArgs.format\"\n >\n </igx-date-picker>\n </ng-container>\n }\n @if (column.dataType === 'time') {\n <ng-container [formGroup]=\"formGroup\">\n <igx-time-picker\n [style.width.%]=\"100\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [inputFormat]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [displayFormat]=\"column.pipeArgs.format\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n ></igx-time-picker>\n </ng-container>\n }\n @if (column.dataType === 'dateTime') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n type=\"text\"\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [formControl]=\"formControl\"\n igxInput\n [locale]=\"grid.locale\"\n [igxDateTimeEditor]=\"\n $safeNavigationMigration(column.editorOptions?.dateTimeFormat)\n \"\n [defaultFormatType]=\"column.dataType\"\n [displayFormat]=\"column.pipeArgs.format\"\n [igxFocus]=\"true\"\n />\n </igx-input-group>\n }\n @if (column.dataType === 'currency') {\n <igx-input-group [formGroup]=\"formGroup\">\n @if (grid.currencyPositionLeft) {\n <igx-prefix>{{ currencyCodeSymbol }}</igx-prefix>\n }\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n @if (!grid.currencyPositionLeft) {\n <igx-suffix>{{ currencyCodeSymbol }}</igx-suffix>\n }\n </igx-input-group>\n }\n @if (column.dataType === 'percent') {\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [formControl]=\"formControl\"\n />\n <igx-suffix>\n {{ editValue | percent: column.pipeArgs.digitsInfo : grid.locale }}\n </igx-suffix>\n </igx-input-group>\n }\n</ng-template>\n<ng-container *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\">\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n\n@if (isInvalid) {\n <igx-icon\n family=\"default\"\n name=\"error\"\n #errorIcon\n [igxTooltipTarget]=\"tooltipRef\"\n (mouseover)=\"errorShowing = true\"\n (mouseout)=\"errorShowing = false\"\n >\n </igx-icon>\n <div [id]=\"ariaErrorMessage\" igxTooltip #error #tooltipRef=\"tooltip\">\n <div [style.width]=\"'max-content'\">\n <ng-container\n *ngTemplateOutlet=\"\n cellValidationErrorTemplate || defaultError;\n context: context\n \"\n ></ng-container>\n </div>\n </div>\n}\n\n<ng-template #defaultError>\n @let errors = formControl.errors;\n @if (errors?.['required']) {\n <div>\n {{ grid.resourceStrings.igx_grid_required_validation_error }}\n </div>\n }\n @if (errors?.['minlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_length_validation_error\n | igxStringReplace: '{0}' : errors.minlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['maxlength']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_length_validation_error\n | igxStringReplace: '{0}' : errors.maxlength.requiredLength\n }}\n </div>\n }\n @if (errors?.['min']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_min_validation_error\n | igxStringReplace: '{0}' : errors.min.min\n }}\n </div>\n }\n @if (errors?.['max']) {\n <div>\n {{\n grid.resourceStrings.igx_grid_max_validation_error\n | igxStringReplace: '{0}' : errors.max.max\n }}\n </div>\n }\n @if (errors?.['email']) {\n <div>\n {{ grid.resourceStrings.igx_grid_email_validation_error }}\n </div>\n }\n @if (errors?.['pattern']) {\n <div>\n {{ grid.resourceStrings.igx_grid_pattern_validation_error }}\n </div>\n }\n</ng-template>\n" }]
23812
24109
  }], propDecorators: { isEmptyAddRowCell: [{
23813
24110
  type: HostBinding,
23814
24111
  args: ['class.igx-grid__td--new']
@@ -24009,7 +24306,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
24009
24306
  scrollPos.leftScroll : scrollPos.rightScroll - this.displayContainerWidth;
24010
24307
  this.forOfDir().getScroll().scrollLeft = nextScroll;
24011
24308
  this.grid.parentVirtDir.chunkLoad
24012
- .pipe(first())
24309
+ .pipe(first$1())
24013
24310
  .subscribe(() => {
24014
24311
  if (cb) {
24015
24312
  cb();
@@ -24036,7 +24333,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
24036
24333
  this.grid.verticalScrollContainer.addScrollTop(Math.abs(pos.rowBottom - this.scrollTop - containerHeight));
24037
24334
  }
24038
24335
  this.grid.verticalScrollContainer.chunkLoad
24039
- .pipe(first()).subscribe(() => {
24336
+ .pipe(first$1()).subscribe(() => {
24040
24337
  if (cb) {
24041
24338
  cb();
24042
24339
  }
@@ -24097,7 +24394,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
24097
24394
  this.activeNode.column = col.visibleIndex;
24098
24395
  const layout = this.layout(this.activeNode.column);
24099
24396
  const nextLayout = { ...this.activeNode.layout, rowStart: layout.rowStart, rowEnd: layout.rowEnd };
24100
- this.setActiveNode({ row: this.activeNode.row, column: this.activeNode.column, layout: nextLayout });
24397
+ this.setActiveNode({ row: this.activeNode.row, layout: nextLayout });
24101
24398
  return;
24102
24399
  }
24103
24400
  this.horizontalNav(event, key, -1, 'headerCell');
@@ -24354,7 +24651,7 @@ class GridBaseAPIService {
24354
24651
  }
24355
24652
  }
24356
24653
  get_row_by_index(rowIndex) {
24357
- return this.grid.rowList.find(row => row.index === rowIndex);
24654
+ return this.grid.rowList.find((row) => row.index === rowIndex);
24358
24655
  }
24359
24656
  /**
24360
24657
  * Gets the rowID of the record at the specified data view index
@@ -24375,7 +24672,6 @@ class GridBaseAPIService {
24375
24672
  if (row && row.cells) {
24376
24673
  return row.cells.find((cell) => cell.column.field === field);
24377
24674
  }
24378
- return undefined;
24379
24675
  }
24380
24676
  get_cell_by_index(rowIndex, columnID) {
24381
24677
  const row = this.get_row_by_index(rowIndex);
@@ -24386,18 +24682,16 @@ class GridBaseAPIService {
24386
24682
  if (hasCells && typeof columnID === 'string') {
24387
24683
  return row.cells.find((cell) => cell.column.field === columnID);
24388
24684
  }
24389
- return undefined;
24390
24685
  }
24391
24686
  get_cell_by_visible_index(rowIndex, columnIndex) {
24392
24687
  const row = this.get_row_by_index(rowIndex);
24393
24688
  if (row && row.cells) {
24394
24689
  return row.cells.find((cell) => cell.visibleColumnIndex === columnIndex);
24395
24690
  }
24396
- return undefined;
24397
24691
  }
24398
24692
  update_cell(cell) {
24399
24693
  if (!cell) {
24400
- return undefined;
24694
+ return;
24401
24695
  }
24402
24696
  const args = cell.createCellEditEventArgs(true);
24403
24697
  if (!this.grid.crudService.row) { // should not recalculate summaries when there is row in edit mode
@@ -24790,7 +25084,7 @@ class GridBaseAPIService {
24790
25084
  if (index === -1) {
24791
25085
  return;
24792
25086
  }
24793
- const eventArgs = this.get_pin_row_event_args(rowID, undefined, row, false);
25087
+ const eventArgs = this.get_pin_row_event_args(rowID, null, row, false);
24794
25088
  grid.rowPinning.emit(eventArgs);
24795
25089
  if (eventArgs.cancel) {
24796
25090
  return;
@@ -24943,5 +25237,5 @@ const IGX_GRID_COMMON_DIRECTIVES = [
24943
25237
  * Generated bundle index. Do not edit.
24944
25238
  */
24945
25239
 
24946
- export { ActiveElement, CharSeparatedValueData, ColumnDisplayOrder, CsvFileTypes, DEFAULT_OWNER, DEFAULT_PIVOT_KEYS, DimensionValuesFilteringStrategy, DropPosition, ExportHeaderType, ExportRecordType, ExportUtilities, ExpressionUI, FilterListItem, FilterMode, GRID_LEVEL_COL, GRID_PARENT, GRID_ROOT_SUMMARY, GridBaseAPIService, GridCellMergeMode, GridPagingMode, GridSelectionMode, GridSummaryPosition, HEADER_KEYS, HORIZONTAL_NAV_KEYS, IGX_GRID_BASE, IGX_GRID_COMMON_DIRECTIVES, IGX_GRID_SERVICE_BASE, IGX_GRID_VALIDATION_DIRECTIVES, INPUT_DEBOUNCE_TIME, INPUT_DEBOUNCE_TIME_DEFAULT, IgxAddRow, IgxAdvancedFilteringDialogComponent, IgxBaseExporter, IgxCSVTextDirective, IgxCell, IgxCellCrudState, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCellValidationErrorDirective, IgxCollapsibleIndicatorTemplateDirective, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnComponent, IgxColumnEmailValidatorDirective, IgxColumnFormatterPipe, IgxColumnGroupComponent, IgxColumnHidingDirective, IgxColumnLayoutComponent, IgxColumnMaxLengthValidatorDirective, IgxColumnMaxValidatorDirective, IgxColumnMinLengthValidatorDirective, IgxColumnMinValidatorDirective, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxColumnMovingService, IgxColumnPatternValidatorDirective, IgxColumnPinningDirective, IgxColumnRequiredValidatorDirective, IgxColumnResizerDirective, IgxColumnResizingService, IgxCsvExporterOptions, IgxCsvExporterService, IgxDragIndicatorIconDirective, IgxEditRow, IgxExcelExporterOptions, IgxExcelExporterService, IgxExcelStyleClearFiltersComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleDateExpressionComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleHeaderIconDirective, IgxExcelStyleHidingComponent, IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleSearchComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleSortingComponent, IgxExcelTextDirective, IgxExporterOptionsBase, IgxFilterCellTemplateDirective, IgxFilteringService, IgxGridActionButtonComponent, IgxGridActionsBaseDirective, IgxGridAddRowPipe, IgxGridBodyDirective, IgxGridCRUDService, IgxGridCell, IgxGridCellComponent, IgxGridCellImageAltPipe, IgxGridCellStyleClassesPipe, IgxGridCellStylesPipe, IgxGridColumnResizerComponent, IgxGridDataMapperPipe, IgxGridDetailTemplateDirective, IgxGridDragSelectDirective, IgxGridEditingActionsComponent, IgxGridEmptyTemplateDirective, IgxGridExcelStyleFilteringComponent, IgxGridFilterConditionPipe, IgxGridFilteringCellComponent, IgxGridFilteringRowComponent, IgxGridFooterComponent, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxGridLoadingTemplateDirective, IgxGridMRLNavigationService, IgxGridNavigationService, IgxGridNotGroupedPipe, IgxGridPaginatorOptionsPipe, IgxGridPinningActionsComponent, IgxGridRow, IgxGridRowClassesPipe, IgxGridRowPinningPipe, IgxGridRowStylesPipe, IgxGridSelectionService, IgxGridStateBaseDirective, IgxGridStateDirective, IgxGridSummaryService, IgxGridToolbarActionsComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxGridTopLevelColumns, IgxGridTransactionPipe, IgxGridTransactionStatePipe, IgxGridValidationService, IgxGroupAreaDropDirective, IgxGroupByAreaDirective, IgxGroupByMetaPipe, IgxGroupByRow, IgxGroupByRowSelectorDirective, IgxGroupByRowTemplateDirective, IgxHasVisibleColumnsPipe, IgxHeadSelectorDirective, IgxHeaderCollapsedIndicatorDirective, IgxHeaderExpandedIndicatorDirective, IgxHeaderGroupStylePipe, IgxHierarchicalGridRow, IgxPdfExporterOptions, IgxPdfExporterService, IgxPdfTextDirective, IgxPivotAggregate, IgxPivotColumnResizingService, IgxPivotDateAggregate, IgxPivotDateDimension, IgxPivotGridColumnResizerComponent, IgxPivotNumericAggregate, IgxPivotResizeHandleDirective, IgxPivotTimeAggregate, IgxRowAddCrudState, IgxRowAddTextDirective, IgxRowCollapsedIndicatorDirective, IgxRowCrudState, IgxRowDirective, IgxRowDragDirective, IgxRowDragGhostDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxRowEditTextDirective, IgxRowExpandedIndicatorDirective, IgxRowSelectorDirective, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective, IgxStringReplacePipe, IgxSummaryDataPipe, IgxSummaryFormatterPipe, IgxSummaryRow, IgxSummaryRowComponent, IgxSummaryTemplateDirective, IgxToolbarToken, IgxTreeGridRow, NoopPivotDimensionsStrategy, PivotColumnDimensionsStrategy, PivotDimensionType, PivotRowDimensionsStrategy, PivotRowLayoutType, PivotSummaryPosition, PivotUtil, ROW_ADD_KEYS, ROW_COLLAPSE_KEYS, ROW_EXPAND_KEYS, RowEditPositionStrategy, RowPinningPosition, SUPPORTED_KEYS, SortingIndexPipe, WatchChanges, WatchColumnChanges, generateExpressionsList, getUUID, notifyChanges };
25240
+ export { ActiveElement, CharSeparatedValueData, ColumnDisplayOrder, CsvFileTypes, DEFAULT_OWNER, DEFAULT_PIVOT_KEYS, DimensionValuesFilteringStrategy, DropPosition, ExportHeaderType, ExportRecordType, ExportUtilities, ExpressionUI, FilterListItem, FilterMode, GRID_LEVEL_COL, GRID_PARENT, GRID_ROOT_SUMMARY, GridBaseAPIService, GridCellMergeMode, GridPagingMode, GridSelectionMode, GridSummaryPosition, HEADER_KEYS, HORIZONTAL_NAV_KEYS, IGX_GRID_BASE, IGX_GRID_COMMON_DIRECTIVES, IGX_GRID_SERVICE_BASE, IGX_GRID_VALIDATION_DIRECTIVES, INPUT_DEBOUNCE_TIME, INPUT_DEBOUNCE_TIME_DEFAULT, IgxAddRow, IgxAdvancedFilteringDialogComponent, IgxBaseExporter, IgxCSVTextDirective, IgxCell, IgxCellCrudState, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCellValidationErrorDirective, IgxCollapsibleIndicatorTemplateDirective, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnComponent, IgxColumnEmailValidatorDirective, IgxColumnFormatterPipe, IgxColumnGroupComponent, IgxColumnHidingDirective, IgxColumnLayoutComponent, IgxColumnMaxLengthValidatorDirective, IgxColumnMaxValidatorDirective, IgxColumnMinLengthValidatorDirective, IgxColumnMinValidatorDirective, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxColumnMovingService, IgxColumnPatternValidatorDirective, IgxColumnPinningDirective, IgxColumnRequiredValidatorDirective, IgxColumnResizerDirective, IgxColumnResizingService, IgxCsvExporterOptions, IgxCsvExporterService, IgxDateSummaryOperand, IgxDragIndicatorIconDirective, IgxEditRow, IgxExcelExporterOptions, IgxExcelExporterService, IgxExcelStyleClearFiltersComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleDateExpressionComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleHeaderIconDirective, IgxExcelStyleHidingComponent, IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleSearchComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleSortingComponent, IgxExcelTextDirective, IgxExporterOptionsBase, IgxFilterCellTemplateDirective, IgxFilteringService, IgxGridActionButtonComponent, IgxGridActionsBaseDirective, IgxGridAddRowPipe, IgxGridBodyDirective, IgxGridCRUDService, IgxGridCell, IgxGridCellComponent, IgxGridCellImageAltPipe, IgxGridCellStyleClassesPipe, IgxGridCellStylesPipe, IgxGridColumnResizerComponent, IgxGridDataMapperPipe, IgxGridDetailTemplateDirective, IgxGridDragSelectDirective, IgxGridEditingActionsComponent, IgxGridEmptyTemplateDirective, IgxGridExcelStyleFilteringComponent, IgxGridFilterConditionPipe, IgxGridFilteringCellComponent, IgxGridFilteringRowComponent, IgxGridFooterComponent, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxGridLoadingTemplateDirective, IgxGridMRLNavigationService, IgxGridNavigationService, IgxGridNotGroupedPipe, IgxGridPaginatorOptionsPipe, IgxGridPinningActionsComponent, IgxGridRow, IgxGridRowClassesPipe, IgxGridRowPinningPipe, IgxGridRowStylesPipe, IgxGridSelectionService, IgxGridStateBaseDirective, IgxGridStateDirective, IgxGridSummaryService, IgxGridToolbarActionsComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxGridTopLevelColumns, IgxGridTransaction, IgxGridTransactionPipe, IgxGridTransactionStatePipe, IgxGridValidationService, IgxGroupAreaDropDirective, IgxGroupByAreaDirective, IgxGroupByMetaPipe, IgxGroupByRow, IgxGroupByRowSelectorDirective, IgxGroupByRowTemplateDirective, IgxHasVisibleColumnsPipe, IgxHeadSelectorDirective, IgxHeaderCollapsedIndicatorDirective, IgxHeaderExpandedIndicatorDirective, IgxHeaderGroupStylePipe, IgxHierarchicalGridRow, IgxNumberSummaryOperand, IgxPdfExporterOptions, IgxPdfExporterService, IgxPdfTextDirective, IgxPivotAggregate, IgxPivotColumnResizingService, IgxPivotDateAggregate, IgxPivotDateDimension, IgxPivotGridColumnResizerComponent, IgxPivotNumericAggregate, IgxPivotResizeHandleDirective, IgxPivotTimeAggregate, IgxRowAddCrudState, IgxRowAddTextDirective, IgxRowCollapsedIndicatorDirective, IgxRowCrudState, IgxRowDirective, IgxRowDragDirective, IgxRowDragGhostDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxRowEditTextDirective, IgxRowExpandedIndicatorDirective, IgxRowSelectorDirective, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective, IgxStringReplacePipe, IgxSummaryDataPipe, IgxSummaryFormatterPipe, IgxSummaryOperand, IgxSummaryRow, IgxSummaryRowComponent, IgxSummaryTemplateDirective, IgxTimeSummaryOperand, IgxToolbarToken, IgxTreeGridRow, NoopPivotDimensionsStrategy, PivotColumnDimensionsStrategy, PivotDimensionType, PivotRowDimensionsStrategy, PivotRowLayoutType, PivotSummaryPosition, PivotUtil, ROW_ADD_KEYS, ROW_COLLAPSE_KEYS, ROW_EXPAND_KEYS, RowEditPositionStrategy, RowPinningPosition, SUPPORTED_KEYS, SortingIndexPipe, WatchChanges, WatchColumnChanges, generateExpressionsList, getUUID, notifyChanges };
24947
25241
  //# sourceMappingURL=igniteui-angular-grids-core.mjs.map