igniteui-angular 22.1.0-beta.4 → 22.1.0-beta.6

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 (142) 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 +3 -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 +3 -2
  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 +9 -8
  13. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-card.mjs +2 -2
  15. package/fesm2022/igniteui-angular-card.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  18. package/fesm2022/igniteui-angular-combo.mjs +6 -17
  19. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  20. package/fesm2022/igniteui-angular-core.mjs +337 -16
  21. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  22. package/fesm2022/igniteui-angular-date-picker.mjs +14 -12
  23. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  24. package/fesm2022/igniteui-angular-dialog.mjs +1 -1
  25. package/fesm2022/igniteui-angular-dialog.mjs.map +1 -1
  26. package/fesm2022/igniteui-angular-directives.mjs +67 -48
  27. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  28. package/fesm2022/igniteui-angular-drop-down.mjs +2 -3
  29. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  30. package/fesm2022/igniteui-angular-expansion-panel.mjs +12 -23
  31. package/fesm2022/igniteui-angular-expansion-panel.mjs.map +1 -1
  32. package/fesm2022/igniteui-angular-grids-core.mjs +223 -491
  33. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  34. package/fesm2022/igniteui-angular-grids-grid.mjs +98 -116
  35. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  36. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +21 -16
  37. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  38. package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
  39. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +153 -75
  40. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  41. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +35 -28
  42. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  43. package/fesm2022/igniteui-angular-icon.mjs.map +1 -1
  44. package/fesm2022/igniteui-angular-input-group.mjs +19 -4
  45. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  46. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  47. package/fesm2022/igniteui-angular-navbar.mjs.map +1 -1
  48. package/fesm2022/igniteui-angular-navigation-drawer.mjs +3 -2
  49. package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
  50. package/fesm2022/igniteui-angular-paginator.mjs +2 -1
  51. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  52. package/fesm2022/igniteui-angular-progressbar.mjs +2 -5
  53. package/fesm2022/igniteui-angular-progressbar.mjs.map +1 -1
  54. package/fesm2022/igniteui-angular-query-builder.mjs +21 -20
  55. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-radio.mjs +1 -1
  57. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  58. package/fesm2022/igniteui-angular-select.mjs.map +1 -1
  59. package/fesm2022/igniteui-angular-simple-combo.mjs +7 -10
  60. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  61. package/fesm2022/igniteui-angular-slider.mjs +3 -3
  62. package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
  63. package/fesm2022/igniteui-angular-splitter.mjs +1 -1
  64. package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
  65. package/fesm2022/igniteui-angular-stepper.mjs +1 -1
  66. package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
  67. package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
  68. package/fesm2022/igniteui-angular-time-picker.mjs +6 -3
  69. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  70. package/fesm2022/igniteui-angular-tree.mjs +10 -8
  71. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  72. package/lib/core/styles/components/button/_button-theme.scss +24 -31
  73. package/lib/core/styles/components/icon-button/_icon-button-theme.scss +21 -0
  74. package/lib/core/styles/spec/_mixins.spec.scss +21 -1
  75. package/lib/core/styles/themes/_scoping.scss +12 -0
  76. package/lib/core/styles/themes/generators/_base.scss +0 -1
  77. package/lib/grids/core/src/filtering/excel-style/themes/_derived.scss +3 -2
  78. package/migrations/migration-collection.json +7 -0
  79. package/migrations/update-22_1_0_import-migration/index.d.ts +2 -0
  80. package/migrations/update-22_1_0_import-migration/index.js +228 -0
  81. package/migrations/update-22_1_0_import-migration/index.spec.d.ts +1 -0
  82. package/migrations/update-22_1_0_import-migration/index.spec.js +188 -0
  83. package/package.json +1 -1
  84. package/styles/igniteui-angular-dark.css +1 -1
  85. package/styles/igniteui-angular.css +1 -1
  86. package/styles/igniteui-bootstrap-dark.css +1 -1
  87. package/styles/igniteui-bootstrap-light.css +1 -1
  88. package/styles/igniteui-dark-green.css +1 -1
  89. package/styles/igniteui-fluent-dark-excel.css +1 -1
  90. package/styles/igniteui-fluent-dark-word.css +1 -1
  91. package/styles/igniteui-fluent-dark.css +1 -1
  92. package/styles/igniteui-fluent-light-excel.css +1 -1
  93. package/styles/igniteui-fluent-light-word.css +1 -1
  94. package/styles/igniteui-fluent-light.css +1 -1
  95. package/styles/igniteui-indigo-dark.css +1 -1
  96. package/styles/igniteui-indigo-light.css +1 -1
  97. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  98. package/styles/maps/igniteui-angular.css.map +1 -1
  99. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  100. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  101. package/styles/maps/igniteui-dark-green.css.map +1 -1
  102. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  103. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  104. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  105. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  106. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  107. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  108. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  109. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  110. package/types/igniteui-angular-avatar.d.ts +1 -1
  111. package/types/igniteui-angular-banner.d.ts +3 -3
  112. package/types/igniteui-angular-calendar.d.ts +9 -9
  113. package/types/igniteui-angular-card.d.ts +2 -2
  114. package/types/igniteui-angular-carousel.d.ts +9 -9
  115. package/types/igniteui-angular-chat.d.ts +1 -1
  116. package/types/igniteui-angular-chips.d.ts +5 -5
  117. package/types/igniteui-angular-combo.d.ts +13 -17
  118. package/types/igniteui-angular-core.d.ts +495 -200
  119. package/types/igniteui-angular-date-picker.d.ts +3 -3
  120. package/types/igniteui-angular-dialog.d.ts +4 -4
  121. package/types/igniteui-angular-directives.d.ts +59 -59
  122. package/types/igniteui-angular-drop-down.d.ts +16 -16
  123. package/types/igniteui-angular-expansion-panel.d.ts +6 -6
  124. package/types/igniteui-angular-grids-core.d.ts +782 -1044
  125. package/types/igniteui-angular-grids-grid.d.ts +267 -104
  126. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +547 -68
  127. package/types/igniteui-angular-grids-lite.d.ts +7 -7
  128. package/types/igniteui-angular-grids-pivot-grid.d.ts +129 -94
  129. package/types/igniteui-angular-grids-tree-grid.d.ts +51 -5
  130. package/types/igniteui-angular-icon.d.ts +2 -2
  131. package/types/igniteui-angular-input-group.d.ts +19 -6
  132. package/types/igniteui-angular-list.d.ts +4 -4
  133. package/types/igniteui-angular-navigation-drawer.d.ts +3 -3
  134. package/types/igniteui-angular-progressbar.d.ts +0 -1
  135. package/types/igniteui-angular-query-builder.d.ts +9 -9
  136. package/types/igniteui-angular-radio.d.ts +1 -1
  137. package/types/igniteui-angular-select.d.ts +5 -5
  138. package/types/igniteui-angular-simple-combo.d.ts +2 -2
  139. package/types/igniteui-angular-slider.d.ts +4 -4
  140. package/types/igniteui-angular-splitter.d.ts +3 -3
  141. package/types/igniteui-angular-time-picker.d.ts +8 -8
  142. package/types/igniteui-angular-tree.d.ts +8 -8
@@ -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 { 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';
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';
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,305 +896,6 @@ 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
-
1198
899
  class IgxPivotAggregate {
1199
900
  /**
1200
901
  * Gets array with default aggregator function for base aggregation.
@@ -1667,7 +1368,7 @@ class PivotUtil {
1667
1368
  return vals;
1668
1369
  }
1669
1370
  static flatten(arr, lvl = 0) {
1670
- const newArr = arr.reduce((acc, item) => {
1371
+ const newArr = (arr || []).reduce((acc, item) => {
1671
1372
  if (item) {
1672
1373
  item.level = lvl;
1673
1374
  acc.push(item);
@@ -1721,7 +1422,7 @@ class PivotUtil {
1721
1422
  if (!aggregator) {
1722
1423
  throw `No valid aggregator found for ${pivotValue.member}. Please set either a valid aggregatorName or aggregator`;
1723
1424
  }
1724
- result[pivotValue.member] = aggregator(records.map(r => r[pivotValue.member]), records);
1425
+ result[pivotValue.member] = aggregator(records.map((r) => r[pivotValue.member]), records);
1725
1426
  }
1726
1427
  return result;
1727
1428
  }
@@ -1800,7 +1501,7 @@ class PivotUtil {
1800
1501
  }
1801
1502
  static collectRecords(children, pivotKeys) {
1802
1503
  let result = [];
1803
- children.forEach(value => result = result.concat(value[pivotKeys.records]));
1504
+ children.forEach((value) => result = result.concat(value[pivotKeys.records]));
1804
1505
  return result;
1805
1506
  }
1806
1507
  static applyHierarchyChildren(hierarchy, val, rec, pivotKeys) {
@@ -1837,7 +1538,7 @@ class PivotUtil {
1837
1538
  // not all nested children are valid
1838
1539
  const nestedValue = hierarchyChildValue.value;
1839
1540
  const dimension = hierarchyChildValue.dimension;
1840
- const validRecs = rec[recordsKey].filter(x => this.extractValueFromDimension(dimension, x) === nestedValue);
1541
+ const validRecs = rec[recordsKey].filter((x) => this.extractValueFromDimension(dimension, x) === nestedValue);
1841
1542
  copy[recordsKey] = validRecs;
1842
1543
  }
1843
1544
  hierarchyChildValue[recordsKey].push(copy);
@@ -1904,6 +1605,7 @@ class PivotUtil {
1904
1605
  else if (value.dataType === GridColumnDataType.Percent && !isCountAggregator) {
1905
1606
  return GridColumnDataType.Percent;
1906
1607
  }
1608
+ return undefined;
1907
1609
  }
1908
1610
  }
1909
1611
 
@@ -1958,7 +1660,7 @@ class IgxGridSelectionService {
1958
1660
  this.pointerEventInGridBody = false;
1959
1661
  this.grid.document.body.removeEventListener('pointerup', this.pointerOriginHandler);
1960
1662
  const gridCellSelectors = ['igx-grid-cell', 'igx-hierarchical-grid-cell', 'igx-tree-grid-cell'];
1961
- const isInsideGridCell = gridCellSelectors.some(selector => event.target.closest(selector));
1663
+ const isInsideGridCell = gridCellSelectors.some(selector => event.target ? event.target.closest(selector) : false);
1962
1664
  if (!isInsideGridCell) {
1963
1665
  this.pointerUp(this._lastSelectedNode, this.grid.rangeSelected, true);
1964
1666
  }
@@ -2246,8 +1948,8 @@ class IgxGridSelectionService {
2246
1948
  getSelectedRowsData() {
2247
1949
  if (this.grid.type === 'pivot') {
2248
1950
  return this.grid.dataView.filter(r => {
2249
- const keys = r.dimensions.map(d => PivotUtil.getRecordKey(r, d));
2250
- return keys.some(k => this.isPivotRowSelected(k));
1951
+ const keys = r.dimensions.map((d) => PivotUtil.getRecordKey(r, d));
1952
+ return keys.some((k) => this.isPivotRowSelected(k));
2251
1953
  });
2252
1954
  }
2253
1955
  if (!this.grid.primaryKey) {
@@ -2467,7 +2169,7 @@ class IgxGridSelectionService {
2467
2169
  emitRowSelectionEvent(newSelection, added, removed, event, currSelection) {
2468
2170
  currSelection = currSelection ?? this.getSelectedRowsData();
2469
2171
  if (this.areEqualCollections(currSelection, newSelection)) {
2470
- return;
2172
+ return undefined;
2471
2173
  }
2472
2174
  const args = {
2473
2175
  owner: this.grid,
@@ -2482,13 +2184,14 @@ class IgxGridSelectionService {
2482
2184
  this.grid.rowSelectionChanging.emit(args);
2483
2185
  if (args.cancel) {
2484
2186
  this.clearHeaderCBState();
2485
- return;
2187
+ return undefined;
2486
2188
  }
2487
2189
  this.selectRowsWithNoEvent(args.newSelection.map(r => this.getRecordKey(r)), true);
2190
+ return undefined;
2488
2191
  }
2489
2192
  getPivotRowsByIds(ids) {
2490
2193
  return this.grid.dataView.filter(r => {
2491
- const keys = r.dimensions.map(d => PivotUtil.getRecordKey(r, d));
2194
+ const keys = r.dimensions.map((d) => PivotUtil.getRecordKey(r, d));
2492
2195
  return new Set(ids.concat(keys)).size < ids.length + keys.length;
2493
2196
  });
2494
2197
  }
@@ -2503,7 +2206,7 @@ class IgxGridSelectionService {
2503
2206
  this.allRowsSelected = undefined;
2504
2207
  }
2505
2208
  getRowIDs(data) {
2506
- return this.grid.primaryKey && data.length ? data.map(rec => rec[this.grid.primaryKey]) : data;
2209
+ return this.grid.primaryKey && data.length ? data.map((rec) => rec[this.grid.primaryKey]) : data;
2507
2210
  }
2508
2211
  getRecordKey(record) {
2509
2212
  return this.grid.primaryKey ? record[this.grid.primaryKey] : record;
@@ -2525,7 +2228,7 @@ class IgxGridSelectionService {
2525
2228
  else {
2526
2229
  allData = this.grid.gridAPI.get_all_data(true);
2527
2230
  }
2528
- return allData.filter(rData => !this.isRowDeleted(this.grid.gridAPI.get_row_id(rData)));
2231
+ return allData.filter((rData) => !this.isRowDeleted(this.grid.gridAPI.get_row_id(rData)));
2529
2232
  }
2530
2233
  /** Returns array of the selected columns fields. */
2531
2234
  getSelectedColumns() {
@@ -2620,7 +2323,7 @@ class IgxGridSelectionService {
2620
2323
  emitColumnSelectionEvent(newSelection, added, removed, event) {
2621
2324
  const currSelection = this.getSelectedColumns();
2622
2325
  if (this.areEqualCollections(currSelection, newSelection)) {
2623
- return;
2326
+ return undefined;
2624
2327
  }
2625
2328
  const args = {
2626
2329
  oldSelection: currSelection, newSelection,
@@ -2628,9 +2331,10 @@ class IgxGridSelectionService {
2628
2331
  };
2629
2332
  this.grid.columnSelectionChanging.emit(args);
2630
2333
  if (args.cancel) {
2631
- return;
2334
+ return undefined;
2632
2335
  }
2633
2336
  this.selectColumnsWithNoEvent(args.newSelection, true);
2337
+ return undefined;
2634
2338
  }
2635
2339
  /** Clear columnSelection */
2636
2340
  clearAllSelectedColumns() {
@@ -2843,7 +2547,7 @@ class IgxCellCrudState {
2843
2547
  return this.row = new IgxEditRow(cell.id.rowID, cell.rowIndex, cell.rowData, cell.grid);
2844
2548
  }
2845
2549
  sameRow(rowID) {
2846
- return this.row && this.row.id === rowID;
2550
+ return !!(this.row && this.row.id === rowID);
2847
2551
  }
2848
2552
  sameCell(cell) {
2849
2553
  return (this.cell.id.rowID === cell.id.rowID &&
@@ -2866,7 +2570,7 @@ class IgxCellCrudState {
2866
2570
  }
2867
2571
  updateCell(exit, event) {
2868
2572
  if (!this.cell) {
2869
- return;
2573
+ return undefined;
2870
2574
  }
2871
2575
  // this is needed when we are not using ngModel to update the editValue
2872
2576
  // so that the change event of the inlineEditorTemplate is hit before
@@ -2925,7 +2629,7 @@ class IgxCellCrudState {
2925
2629
  /** Exit cell edit mode */
2926
2630
  exitCellEdit(event) {
2927
2631
  if (!this.cell) {
2928
- return;
2632
+ return undefined;
2929
2633
  }
2930
2634
  const newValue = this.cell.castToNumber(this.cell.editValue);
2931
2635
  const args = this.cell?.createCellEditDoneEventArgs(newValue, event);
@@ -2962,7 +2666,7 @@ class IgxRowCrudState extends IgxCellCrudState {
2962
2666
  }
2963
2667
  get rowInEditMode() {
2964
2668
  const editRowState = this.row;
2965
- return editRowState !== null ? this.grid.rowList.find(e => e.key === editRowState.id) : null;
2669
+ return editRowState !== null ? this.grid.rowList.find(e => e.key === editRowState.id) : undefined;
2966
2670
  }
2967
2671
  get rowEditing() {
2968
2672
  return this.grid.rowEditable;
@@ -3086,7 +2790,7 @@ class IgxRowCrudState extends IgxCellCrudState {
3086
2790
  updateRowEditData(row, value) {
3087
2791
  const grid = this.grid;
3088
2792
  const rowInEditMode = grid.gridAPI.crudService.row;
3089
- row.newData = value ?? rowInEditMode.transactionState;
2793
+ row.newData = value ?? rowInEditMode?.transactionState;
3090
2794
  if (rowInEditMode && row.id === rowInEditMode.id) {
3091
2795
  // do not use spread operator here as it will copy everything over an empty object with no descriptors
3092
2796
  row.data = Object.assign(copyDescriptors(row.data), row.data, rowInEditMode.transactionState);
@@ -3138,7 +2842,7 @@ class IgxRowAddCrudState extends IgxRowCrudState {
3138
2842
  endRowTransaction(commit, event) {
3139
2843
  const isAddRow = this.row && this.row.isAddRow;
3140
2844
  if (isAddRow) {
3141
- this.grid.rowAdded.pipe(first$1()).subscribe((addRowArgs) => {
2845
+ this.grid.rowAdded.pipe(first()).subscribe((addRowArgs) => {
3142
2846
  const rowData = addRowArgs.data;
3143
2847
  const pinnedIndex = this.grid.pinnedRecords.findIndex(x => x[this.primaryKey] === rowData[this.primaryKey]);
3144
2848
  // A check whether the row is in the current view
@@ -3269,8 +2973,8 @@ class IgxGridCRUDService extends IgxRowAddCrudState {
3269
2973
  const dummyRow = this.grid.gridAPI.get_row_by_index(this.row.index + indexAdjust);
3270
2974
  dummyRow.triggerAddAnimation();
3271
2975
  dummyRow.cdr.detectChanges();
3272
- dummyRow.addAnimationEnd.pipe(first$1()).subscribe(() => {
3273
- const cell = dummyRow.cells.find(c => c.editable);
2976
+ dummyRow.addAnimationEnd.pipe(first()).subscribe(() => {
2977
+ const cell = dummyRow.cells.find((c) => c.editable);
3274
2978
  if (cell) {
3275
2979
  this.grid.gridAPI.update_cell(this.cell);
3276
2980
  this.enterEditMode(cell, event);
@@ -3292,13 +2996,13 @@ class IgxGridCRUDService extends IgxRowAddCrudState {
3292
2996
  // TODO: Implement the same representation of the method without evt emission.
3293
2997
  endEdit(commit = true, event) {
3294
2998
  if (!this.row && !this.cell) {
3295
- return;
2999
+ return undefined;
3296
3000
  }
3297
3001
  let args;
3298
3002
  if (commit) {
3299
3003
  args = this.updateCell(true, event);
3300
3004
  if (args && args.cancel) {
3301
- return args.cancel;
3005
+ return true;
3302
3006
  }
3303
3007
  }
3304
3008
  else {
@@ -3634,8 +3338,8 @@ class IgxRowDirective {
3634
3338
  if (this.hasMergedCells && this.metaData?.cellMergeMeta) {
3635
3339
  const targetRowIndex = this.grid.navigation.activeNode.row;
3636
3340
  if (targetRowIndex != this.index) {
3637
- const row = this.grid.rowList.toArray().find(x => x.index === targetRowIndex);
3638
- row.onClick(event);
3341
+ const row = this.grid.rowList.find(x => x.index === targetRowIndex);
3342
+ row?.onClick?.(event);
3639
3343
  return;
3640
3344
  }
3641
3345
  }
@@ -3737,7 +3441,7 @@ class IgxRowDirective {
3737
3441
  */
3738
3442
  update(value) {
3739
3443
  const crudService = this.grid.crudService;
3740
- if (crudService.cellInEditMode && crudService.cell.id.key === this.key) {
3444
+ if (crudService.cellInEditMode && crudService.cell?.id.key === this.key) {
3741
3445
  this.grid.transactions.endPending(false);
3742
3446
  }
3743
3447
  const row = new IgxEditRow(this.key, this.index, this.data, this.grid);
@@ -3856,7 +3560,7 @@ class IgxRowDirective {
3856
3560
  const isPinned = this.pinned && !this.disabled;
3857
3561
  const indexInData = this.grid.isRowPinningToTop && !isPinned ? this.index - this.grid.pinnedRecordsCount : this.index;
3858
3562
  const range = isPinned ? this.grid.pinnedDataView.slice(indexInData, indexInData + rowCount) : this.grid.verticalScrollContainer.igxForOf.slice(indexInData, indexInData + rowCount);
3859
- const inRange = range.filter(x => this.selectionService.isRowSelected(this.extractRecordKey(x))).length > 0;
3563
+ const inRange = range.filter((x) => this.selectionService.isRowSelected(this.extractRecordKey(x))).length > 0;
3860
3564
  return inRange;
3861
3565
  }
3862
3566
  return false;
@@ -4364,16 +4068,16 @@ class IgxGridCell {
4364
4068
  }
4365
4069
  isCellInEditMode() {
4366
4070
  if (this.grid.crudService.cellInEditMode) {
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;
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;
4371
4075
  return isCurrentCell;
4372
4076
  }
4373
4077
  return false;
4374
4078
  }
4375
4079
  endEdit() {
4376
- if (!this.isCellInEditMode()) {
4080
+ if (!this.isCellInEditMode() && this.grid.crudService.cell) {
4377
4081
  this.grid.gridAPI.update_cell(this.grid.crudService.cell);
4378
4082
  this.grid.crudService.endCellEdit();
4379
4083
  }
@@ -5659,7 +5363,7 @@ class IgxColumnComponent {
5659
5363
  * @memberof IgxColumnComponent
5660
5364
  */
5661
5365
  get columnLayoutChild() {
5662
- return this.parent && this.parent.columnLayout;
5366
+ return this.parent != null && this.parent.columnLayout;
5663
5367
  }
5664
5368
  /**
5665
5369
  * A list containing all the child columns under this column (if any).
@@ -5936,7 +5640,7 @@ class IgxColumnComponent {
5936
5640
  columnSizes[col.colStart - 1] = {
5937
5641
  ref: col,
5938
5642
  width: col.width === 'fit-content' ? col.autoSize :
5939
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
5643
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth?.toString() || col.defaultWidth) : null,
5940
5644
  colSpan: col.gridColumnSpan,
5941
5645
  colEnd: col.colStart + col.gridColumnSpan,
5942
5646
  widthSetByUser: col.widthSetByUser
@@ -5965,7 +5669,7 @@ class IgxColumnComponent {
5965
5669
  columnSizes[col.colStart - 1] = {
5966
5670
  ref: col,
5967
5671
  width: col.width === 'fit-content' ? col.autoSize :
5968
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
5672
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth?.toString() || col.defaultWidth) : null,
5969
5673
  colSpan: col.gridColumnSpan,
5970
5674
  colEnd: col.colStart + col.gridColumnSpan,
5971
5675
  widthSetByUser: col.widthSetByUser
@@ -5980,7 +5684,7 @@ class IgxColumnComponent {
5980
5684
  columnSizes[i] = {
5981
5685
  ref: col,
5982
5686
  width: col.width === 'fit-content' ? col.autoSize :
5983
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
5687
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth?.toString() || col.defaultWidth) : null,
5984
5688
  colSpan: col.gridColumnSpan,
5985
5689
  colEnd: col.colStart + col.gridColumnSpan,
5986
5690
  widthSetByUser: col.widthSetByUser
@@ -6111,7 +5815,7 @@ class IgxColumnComponent {
6111
5815
  const args = { column: this, insertAtIndex: index, isPinned: false, cancel: false };
6112
5816
  this.grid.columnPin.emit(args);
6113
5817
  if (args.cancel) {
6114
- return;
5818
+ return undefined;
6115
5819
  }
6116
5820
  this.grid.crudService.endEdit(false);
6117
5821
  this._pinned = true;
@@ -6136,7 +5840,7 @@ class IgxColumnComponent {
6136
5840
  let allPinned = [];
6137
5841
  // FIX: this is duplicated on every step in the hierarchy....
6138
5842
  // re-create hierarchy
6139
- rootPinnedCols.forEach(group => {
5843
+ rootPinnedCols.forEach((group) => {
6140
5844
  allPinned.push(group);
6141
5845
  allPinned = allPinned.concat(group.allChildren);
6142
5846
  });
@@ -6199,7 +5903,7 @@ class IgxColumnComponent {
6199
5903
  // estimate the exact index at which column will be inserted
6200
5904
  // takes into account initial unpinned index of the column
6201
5905
  if (!hasIndex) {
6202
- const indices = grid._unpinnedColumns.map(col => col.index);
5906
+ const indices = grid._unpinnedColumns.map((col) => col.index);
6203
5907
  indices.push(this.index);
6204
5908
  indices.sort((a, b) => a - b);
6205
5909
  index = indices.indexOf(this.index);
@@ -6207,7 +5911,7 @@ class IgxColumnComponent {
6207
5911
  const args = { column: this, insertAtIndex: index, isPinned: true, cancel: false };
6208
5912
  this.grid.columnPin.emit(args);
6209
5913
  if (args.cancel) {
6210
- return;
5914
+ return undefined;
6211
5915
  }
6212
5916
  this.grid.crudService.endEdit(false);
6213
5917
  this._pinned = false;
@@ -6515,7 +6219,7 @@ class IgxColumnComponent {
6515
6219
  const currentCalcWidth = parseFloat(possibleColumnWidth);
6516
6220
  this._calcWidth = this.getConstrainedSizePx(currentCalcWidth);
6517
6221
  }
6518
- this.calcPixelWidth = parseFloat(this._calcWidth);
6222
+ this.calcPixelWidth = parseFloat(this._calcWidth.toString());
6519
6223
  }
6520
6224
  /**
6521
6225
  * @hidden
@@ -7211,7 +6915,7 @@ class IgxColumnGroupComponent extends IgxColumnComponent {
7211
6915
  if (val.hidden) {
7212
6916
  return acc;
7213
6917
  }
7214
- return acc + parseFloat(val.calcWidth);
6918
+ return acc + parseFloat(val.calcWidth?.toString() || val.defaultWidth);
7215
6919
  }, 0)}`;
7216
6920
  return width + 'px';
7217
6921
  }
@@ -7665,11 +7369,11 @@ class IgxAdvancedFilteringDialogComponent {
7665
7369
  }
7666
7370
  }
7667
7371
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxAdvancedFilteringDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
7669
7373
  }
7670
7374
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxAdvancedFilteringDialogComponent, decorators: [{
7671
7375
  type: Component,
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" }]
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" }]
7673
7377
  }], ctorParameters: () => [], propDecorators: { queryBuilder: [{
7674
7378
  type: ViewChild,
7675
7379
  args: ['queryBuilder', { read: IgxQueryBuilderComponent }]
@@ -7884,7 +7588,7 @@ class IgxExcelStyleDefaultExpressionComponent {
7884
7588
  }
7885
7589
  }
7886
7590
  isConditionSelected(conditionName) {
7887
- return this.expressionUI.expression.condition && this.expressionUI.expression.condition.name === conditionName;
7591
+ return (this.expressionUI.expression.condition && this.expressionUI.expression.condition.name === conditionName);
7888
7592
  }
7889
7593
  onConditionsChanged(eventArgs) {
7890
7594
  const value = eventArgs.newSelection.value;
@@ -7901,7 +7605,8 @@ class IgxExcelStyleDefaultExpressionComponent {
7901
7605
  return this.grid.resourceStrings[`igx_grid_filter_${name}`] || name;
7902
7606
  }
7903
7607
  updateSearchValueOnBlur(eventArgs) {
7904
- this.expressionUI.expression.searchVal = DataUtil.parseValue(this.column.dataType, eventArgs.target.value);
7608
+ const target = eventArgs.target;
7609
+ this.expressionUI.expression.searchVal = DataUtil.parseValue(this.column.dataType, target.value);
7905
7610
  }
7906
7611
  onLogicOperatorButtonClicked(eventArgs, buttonIndex) {
7907
7612
  if (this.logicOperatorButtonGroup.selectedButtons.length === 0) {
@@ -7931,11 +7636,11 @@ class IgxExcelStyleDefaultExpressionComponent {
7931
7636
  event.preventDefault();
7932
7637
  }
7933
7638
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDefaultExpressionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
7935
7640
  }
7936
7641
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDefaultExpressionComponent, decorators: [{
7937
7642
  type: Component,
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" }]
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" }]
7939
7644
  }], propDecorators: { column: [{
7940
7645
  type: Input
7941
7646
  }], expressionUI: [{
@@ -7989,11 +7694,11 @@ class IgxExcelStyleDateExpressionComponent extends IgxExcelStyleDefaultExpressio
7989
7694
  return this.i18nFormatter.getLocaleFirstDayOfWeek(this.grid.locale);
7990
7695
  }
7991
7696
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
7993
7698
  }
7994
7699
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, decorators: [{
7995
7700
  type: Component,
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" }]
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" }]
7997
7702
  }], propDecorators: { input: [{
7998
7703
  type: ViewChild,
7999
7704
  args: ['input', { read: IgxInputDirective, static: false }]
@@ -8353,9 +8058,9 @@ class IgxExcelStyleConditionalFilterComponent {
8353
8058
  */
8354
8059
  showCustomFilterItem() {
8355
8060
  const exprTree = this.esf.column.filteringExpressionsTree;
8356
- return exprTree && exprTree.filteringOperands && exprTree.filteringOperands.length &&
8061
+ return (exprTree && exprTree.filteringOperands && exprTree.filteringOperands.length &&
8357
8062
  !(exprTree.filteringOperands[0].condition &&
8358
- exprTree.filteringOperands[0].condition.name === 'in');
8063
+ exprTree.filteringOperands[0].condition.name === 'in'));
8359
8064
  }
8360
8065
  /**
8361
8066
  * @hidden @internal
@@ -8402,11 +8107,11 @@ class IgxExcelStyleHeaderComponent {
8402
8107
  this.esf = inject(BaseFilteringComponent);
8403
8108
  }
8404
8109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
8406
8111
  }
8407
8112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleHeaderComponent, decorators: [{
8408
8113
  type: Component,
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" }]
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" }]
8410
8115
  }], propDecorators: { showPinning: [{
8411
8116
  type: Input,
8412
8117
  args: [{ transform: booleanAttribute }]
@@ -8445,7 +8150,7 @@ class IgxExcelStyleMovingComponent {
8445
8150
  this.defaultClass = true;
8446
8151
  }
8447
8152
  get visibleColumns() {
8448
- return this.esf.grid.visibleColumns.filter(col => !col.columnGroup);
8153
+ return this.esf.grid.visibleColumns.filter((col) => !col.columnGroup);
8449
8154
  }
8450
8155
  /**
8451
8156
  * @hidden @internal
@@ -8497,7 +8202,9 @@ class IgxExcelStyleMovingComponent {
8497
8202
  else {
8498
8203
  targetColumn = this.findColumn(moveDirection, this.esf.grid.unpinnedColumns);
8499
8204
  }
8500
- this.esf.grid.moveColumn(this.esf.column, targetColumn, moveDirection);
8205
+ if (targetColumn) {
8206
+ this.esf.grid.moveColumn(this.esf.column, targetColumn, moveDirection);
8207
+ }
8501
8208
  }
8502
8209
  get esfSize() {
8503
8210
  const esf = this.esf;
@@ -8648,6 +8355,10 @@ class IgxExcelStyleSearchComponent {
8648
8355
  * @hidden @internal
8649
8356
  */
8650
8357
  this.displayedListData = [];
8358
+ /**
8359
+ * @hidden @internal
8360
+ */
8361
+ this.matchesCount = 0;
8651
8362
  this.activeDescendant = '';
8652
8363
  this._id = `igx-excel-style-search-${NEXT_ID++}`;
8653
8364
  this._isLoading = true;
@@ -8825,7 +8536,7 @@ class IgxExcelStyleSearchComponent {
8825
8536
  // GE Nov 1st, 2021 #10355 Keep a numeric value so the chunk size is calculated properly.
8826
8537
  // A 0 (instead of undefined) makes _calculateChunkSize() off the ForOfDirective behave.
8827
8538
  this._containerSize = this.esf.listData.length
8828
- ? (this.list?.element.nativeElement.offsetHeight ?? 0)
8539
+ ? (this.list?.element.nativeElement.clientHeight ?? 0)
8829
8540
  : 0;
8830
8541
  }
8831
8542
  get id() {
@@ -9054,7 +8765,7 @@ class IgxExcelStyleSearchComponent {
9054
8765
  if (this.esf.column.filteringIgnoreCase && !this.isHierarchical() && !this.isTreeGridWithGroupBy() && !this.isRemote()) {
9055
8766
  const selectedValues = new Set(selectedItems.map(item => item.value.toLowerCase()));
9056
8767
  searchVal = new Set();
9057
- this.esf.grid.data.forEach(item => {
8768
+ this.esf.grid.data?.forEach((item) => {
9058
8769
  const fieldPaths = columnFieldPath(this.esf.column.field);
9059
8770
  const itemValue = resolveNestedPath(item, fieldPaths);
9060
8771
  if (typeof itemValue === "string" && selectedValues.has(itemValue.toLowerCase())) {
@@ -9325,11 +9036,11 @@ class IgxExcelStyleSearchComponent {
9325
9036
  return this.esf.grid.verticalScrollContainer.isRemote || this.esf.grid.pagingMode === GridPagingMode.Remote;
9326
9037
  }
9327
9038
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
9329
9040
  }
9330
9041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSearchComponent, decorators: [{
9331
9042
  type: Component,
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" }]
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" }]
9333
9044
  }], ctorParameters: () => [], propDecorators: { defaultClass: [{
9334
9045
  type: HostBinding,
9335
9046
  args: ['class.igx-excel-filter__menu-main']
@@ -9372,11 +9083,11 @@ class IgxExcelStyleSelectingComponent {
9372
9083
  this.esf = inject(BaseFilteringComponent);
9373
9084
  }
9374
9085
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSelectingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
9376
9087
  }
9377
9088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExcelStyleSelectingComponent, decorators: [{
9378
9089
  type: Component,
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" }]
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" }]
9380
9091
  }] });
9381
9092
 
9382
9093
  /**
@@ -9578,6 +9289,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9578
9289
  if (this._minHeight || this._minHeight === 0) {
9579
9290
  return this._minHeight;
9580
9291
  }
9292
+ return undefined;
9581
9293
  }
9582
9294
  /**
9583
9295
  * Sets the minimum height.
@@ -9602,6 +9314,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9602
9314
  if (this._maxHeight) {
9603
9315
  return this._maxHeight;
9604
9316
  }
9317
+ return undefined;
9605
9318
  }
9606
9319
  /**
9607
9320
  * Sets the maximum height.
@@ -9620,7 +9333,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9620
9333
  */
9621
9334
  ngOnDestroy() {
9622
9335
  this.subscriptions?.unsubscribe();
9623
- delete this.overlayComponentId;
9336
+ this.overlayComponentId = '';
9624
9337
  }
9625
9338
  /**
9626
9339
  * @hidden @internal
@@ -9659,12 +9372,12 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9659
9372
  /**
9660
9373
  * @hidden @internal
9661
9374
  */
9662
- onSelect() {
9375
+ onSelect(event) {
9663
9376
  if (!this.column.selected) {
9664
- this.grid.selectionService.selectColumn(this.column.field, this.grid.columnSelection === GridSelectionMode.single);
9377
+ this.grid.selectionService.selectColumn(this.column.field, this.grid.columnSelection === GridSelectionMode.single, false, event);
9665
9378
  }
9666
9379
  else {
9667
- this.grid.selectionService.deselectColumn(this.column.field);
9380
+ this.grid.selectionService.deselectColumn(this.column.field, event);
9668
9381
  }
9669
9382
  this.grid.notifyChanges();
9670
9383
  }
@@ -9786,7 +9499,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
9786
9499
  this.loadingStart.emit();
9787
9500
  const expressionsTree = this.getColumnFilterExpressionsTree();
9788
9501
  const prevColumn = this.column;
9789
- this.grid.uniqueColumnValuesStrategy(this.column, expressionsTree, (values) => {
9502
+ this.grid.uniqueColumnValuesStrategy?.(this.column, expressionsTree, (values) => {
9790
9503
  if (!this.column || this.column !== prevColumn) {
9791
9504
  return;
9792
9505
  }
@@ -10036,11 +9749,11 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
10036
9749
  return value;
10037
9750
  }
10038
9751
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridExcelStyleFilteringComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
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-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 }); }
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-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 }); }
10040
9753
  }
10041
9754
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridExcelStyleFilteringComponent, decorators: [{
10042
9755
  type: Component,
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-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"] }]
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-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"] }]
10044
9757
  }], propDecorators: { defaultClass: [{
10045
9758
  type: HostBinding,
10046
9759
  args: ['class.igx-excel-filter']
@@ -10314,7 +10027,7 @@ class IgxGridEditingActionsComponent extends IgxGridActionsBaseDirective {
10314
10027
  */
10315
10028
  get disabled() {
10316
10029
  if (!this.isRow(this.strip.context)) {
10317
- return;
10030
+ return undefined;
10318
10031
  }
10319
10032
  return this.strip.context.disabled;
10320
10033
  }
@@ -10457,7 +10170,7 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
10457
10170
  */
10458
10171
  get pinned() {
10459
10172
  if (!this.isRow(this.strip.context)) {
10460
- return;
10173
+ return undefined;
10461
10174
  }
10462
10175
  const context = this.strip.context;
10463
10176
  if (context && !this.iconsRendered) {
@@ -10474,7 +10187,7 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
10474
10187
  */
10475
10188
  get inPinnedArea() {
10476
10189
  if (!this.isRow(this.strip.context)) {
10477
- return;
10190
+ return undefined;
10478
10191
  }
10479
10192
  const context = this.strip.context;
10480
10193
  return this.pinned && !context.disabled;
@@ -10487,7 +10200,7 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
10487
10200
  */
10488
10201
  get pinnedTop() {
10489
10202
  if (!this.isRow(this.strip.context)) {
10490
- return;
10203
+ return undefined;
10491
10204
  }
10492
10205
  return this.strip.context.grid.isRowPinningToTop;
10493
10206
  }
@@ -10604,7 +10317,7 @@ class IgxColumnMovingDragDirective extends IgxDragDirective {
10604
10317
  this._unsubscribe();
10605
10318
  super.ngOnDestroy();
10606
10319
  }
10607
- onEscape(event) {
10320
+ cancelMove(event) {
10608
10321
  this.cms.cancelDrop = true;
10609
10322
  this.onPointerUp(event);
10610
10323
  }
@@ -10625,7 +10338,7 @@ class IgxColumnMovingDragDirective extends IgxDragDirective {
10625
10338
  this.column.grid.columnMovingStart.emit(movingStartArgs);
10626
10339
  this.subscription$ = fromEvent(this.column.grid.document.defaultView, 'keydown').pipe(takeUntil(this._destroy)).subscribe((ev) => {
10627
10340
  if (ev.key === this.platformUtil.KEYMAP.ESCAPE) {
10628
- this.onEscape(ev);
10341
+ this.cancelMove(event);
10629
10342
  }
10630
10343
  });
10631
10344
  }
@@ -10641,7 +10354,7 @@ class IgxColumnMovingDragDirective extends IgxDragDirective {
10641
10354
  };
10642
10355
  this.column.grid.columnMoving.emit(args);
10643
10356
  if (args.cancel) {
10644
- this.onEscape(event);
10357
+ this.cancelMove(event);
10645
10358
  }
10646
10359
  }
10647
10360
  }
@@ -11096,7 +10809,7 @@ class IgxGroupAreaDropDirective extends IgxDropDirective {
11096
10809
  if (!this.columnBelongsToGrid(column)) {
11097
10810
  return;
11098
10811
  }
11099
- event.detail.owner.icon.innerText = 'block';
10812
+ drag.icon.innerText = 'block';
11100
10813
  this.hovered = false;
11101
10814
  }
11102
10815
  closestParentByAttr(elem, attr) {
@@ -11288,7 +11001,7 @@ class IgxColumnResizingService {
11288
11001
  let newCombinedSpan = updatedCombinedSpan;
11289
11002
  const newColsToResize = [];
11290
11003
  columnsToResize.forEach((col) => {
11291
- const currentResizeWidth = parseFloat(col.target.calcWidth);
11004
+ const currentResizeWidth = parseFloat(col.target.calcWidth?.toString() || col.target.defaultWidth);
11292
11005
  const resizeScaled = (diff / updatedCombinedSpan) * col.target.gridColumnSpan;
11293
11006
  const colWidth = col.target.width;
11294
11007
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
@@ -11607,7 +11320,7 @@ class IgxGridHeaderComponent {
11607
11320
  triggerSort() {
11608
11321
  const groupingExpr = this.grid.groupingExpressions ?
11609
11322
  this.grid.groupingExpressions.find((expr) => expr.fieldName === this.column.field) :
11610
- this.grid.groupArea?.expressions ? this.grid.groupArea?.expressions.find((expr) => expr.fieldName === this.column.field) : null;
11323
+ this.grid.groupArea?.expressions ? this.grid.groupArea?.expressions.find(expr => expr.fieldName === this.column.field) : null;
11611
11324
  const sortDir = groupingExpr ?
11612
11325
  this.sortDirection + 1 > SortingDirection.Desc ? SortingDirection.Asc : SortingDirection.Desc
11613
11326
  : this.sortDirection + 1 > SortingDirection.Desc ? SortingDirection.None : this.sortDirection + 1;
@@ -11758,7 +11471,7 @@ class IgxFilteringService {
11758
11471
  ...{ target: filterIconTarget }
11759
11472
  });
11760
11473
  this._overlayService.opening
11761
- .pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
11474
+ .pipe(first(overlay => overlay.id === id), takeUntil(this.destroy$))
11762
11475
  .subscribe((event) => {
11763
11476
  if (event.componentRef) {
11764
11477
  event.componentRef.instance.initialize(column, this._overlayService);
@@ -11766,13 +11479,13 @@ class IgxFilteringService {
11766
11479
  }
11767
11480
  this.lastActiveNode = this.grid.navigation.activeNode;
11768
11481
  });
11769
- this._overlayService.opened.pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$)).subscribe((event) => {
11482
+ this._overlayService.opened.pipe(first(overlay => overlay.id === id), takeUntil(this.destroy$)).subscribe((event) => {
11770
11483
  if (event.componentRef) {
11771
11484
  event.componentRef.instance.populateData();
11772
11485
  }
11773
11486
  });
11774
11487
  this._overlayService.closed
11775
- .pipe(first$1(overlay => overlay.id === id), takeUntil(this.destroy$))
11488
+ .pipe(first(overlay => overlay.id === id), takeUntil(this.destroy$))
11776
11489
  .subscribe(() => {
11777
11490
  this._overlayService.detach(id);
11778
11491
  this.grid.navigation.activeNode = this.lastActiveNode;
@@ -12189,7 +11902,7 @@ class IgxFilteringService {
12189
11902
  let count = 0;
12190
11903
  let operand;
12191
11904
  for (let i = 0; i < expressions.filteringOperands.length; i++) {
12192
- operand = expressions[i];
11905
+ operand = expressions.filteringOperands[i];
12193
11906
  if (operand && isTree(operand)) {
12194
11907
  if (operand.operator === FilteringLogic.And) {
12195
11908
  count++;
@@ -12381,7 +12094,7 @@ class IgxGridFilteringCellComponent {
12381
12094
  }
12382
12095
  }
12383
12096
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
12385
12098
  }
12386
12099
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringCellComponent, decorators: [{
12387
12100
  type: Component,
@@ -12393,7 +12106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
12393
12106
  NgClass,
12394
12107
  IgxBadgeComponent,
12395
12108
  NgTemplateOutlet
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" }]
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" }]
12397
12110
  }], ctorParameters: () => [], propDecorators: { column: [{
12398
12111
  type: Input
12399
12112
  }], emptyFilter: [{
@@ -12456,9 +12169,9 @@ class IgxResizeHandleDirective {
12456
12169
  /**
12457
12170
  * @hidden
12458
12171
  */
12459
- onDoubleClick() {
12172
+ onDoubleClick(event) {
12460
12173
  this._dblClick = true;
12461
- this.initResizeService();
12174
+ this.initResizeService(event);
12462
12175
  this.colResizingService.autosizeColumnOnDblClick();
12463
12176
  }
12464
12177
  /**
@@ -12515,7 +12228,7 @@ class IgxResizeHandleDirective {
12515
12228
  }
12516
12229
  }
12517
12230
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxResizeHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
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 }); }
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 }); }
12519
12232
  }
12520
12233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxResizeHandleDirective, decorators: [{
12521
12234
  type: Directive,
@@ -12528,7 +12241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
12528
12241
  args: ['igxResizeHandle']
12529
12242
  }], onDoubleClick: [{
12530
12243
  type: HostListener,
12531
- args: ['dblclick']
12244
+ args: ['dblclick', ['$event']]
12532
12245
  }] } });
12533
12246
 
12534
12247
  class IgxColumnMovingDropDirective extends IgxDropDirective {
@@ -12853,7 +12566,7 @@ class IgxGridHeaderGroupComponent {
12853
12566
  }
12854
12567
  else {
12855
12568
  const selectedFields = this.grid.selectionService.getSelectedColumns();
12856
- if ((selectedFields.length === columnsToSelect.length) && selectedFields.every(el => columnsToSelect.includes(el))
12569
+ if ((selectedFields.length === columnsToSelect.length) && selectedFields.every((el) => columnsToSelect.includes(el))
12857
12570
  || !clearSelection) {
12858
12571
  this.grid.selectionService.deselectColumns(columnsToSelect, event);
12859
12572
  }
@@ -13209,13 +12922,15 @@ class IgxGridFilteringRowComponent {
13209
12922
  if (!eventArgs) {
13210
12923
  return;
13211
12924
  }
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;
12925
+ // DateTime editors are bound to igxDateTimeEditor's (valueChange), which emits the
12926
+ // parsed Date rather than a DOM InputEvent.
13215
12927
  if (this.column.dataType === GridColumnDataType.DateTime) {
13216
12928
  this.value = eventArgs;
13217
12929
  return;
13218
12930
  }
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;
13219
12934
  if (this.platform.isEdge && target.type !== 'number'
13220
12935
  || this.isKeyPressed || target.value || target.checkValidity()) {
13221
12936
  this.value = target.value;
@@ -13676,7 +13391,7 @@ class IgxGridFilteringRowComponent {
13676
13391
  return this.nativeElement.offsetWidth < this.NARROW_WIDTH_THRESHOLD;
13677
13392
  }
13678
13393
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
13680
13395
  }
13681
13396
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridFilteringRowComponent, decorators: [{
13682
13397
  type: Component,
@@ -13702,7 +13417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
13702
13417
  IgxRippleDirective,
13703
13418
  IgxIconButtonDirective,
13704
13419
  IgxPercentFormatterPipe
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" }]
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" }]
13706
13421
  }], propDecorators: { column: [{
13707
13422
  type: Input
13708
13423
  }], value: [{
@@ -13962,7 +13677,7 @@ class BaseRow {
13962
13677
  */
13963
13678
  update(value) {
13964
13679
  const crudService = this.grid.crudService;
13965
- if (crudService.cellInEditMode && crudService.cell.id.rowID === this.key) {
13680
+ if (crudService.cellInEditMode && crudService.cell?.id.rowID === this.key) {
13966
13681
  this.grid.transactions.endPending(false);
13967
13682
  }
13968
13683
  const row = new IgxEditRow(this.key, this.index, this.data, this.grid);
@@ -14931,6 +14646,7 @@ class IgxGridHeaderRowComponent {
14931
14646
  if (row && row.cells) {
14932
14647
  return row.cells.map(cell => cell.column);
14933
14648
  }
14649
+ return undefined;
14934
14650
  }
14935
14651
  /**
14936
14652
  * @hidden
@@ -15002,11 +14718,11 @@ class IgxGridHeaderRowComponent {
15002
14718
  }
15003
14719
  }
15004
14720
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridHeaderRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
15006
14722
  }
15007
14723
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridHeaderRowComponent, decorators: [{
15008
14724
  type: Component,
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" }]
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" }]
15010
14726
  }], propDecorators: { grid: [{
15011
14727
  type: Input
15012
14728
  }], pinnedStartColumnCollection: [{
@@ -15499,6 +15215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
15499
15215
  // }
15500
15216
  // },
15501
15217
  class IgxPivotDateDimension {
15218
+ /* treatAsRef */
15502
15219
  /**
15503
15220
  * Gets/Sets the resource strings.
15504
15221
  *
@@ -15782,10 +15499,22 @@ class IgxGridStateBaseDirective {
15782
15499
  newColumns.push(ref);
15783
15500
  }
15784
15501
  });
15785
- context.currGrid.updateColumns(newColumns);
15786
- newColumns.forEach(col => {
15787
- context.currGrid.columnInit.emit(col);
15788
- });
15502
+ if (!context.currGrid._init && !context.currGrid._rendered) {
15503
+ // If grid is not rendered but is initialized (during ngAfterViewInit) wait for it to render.
15504
+ // Otherwise pushing mid detect change (mainly while calculating sizes from `calculateGridWidth` and `calculateGridSizes`) messes up headers detect changing.
15505
+ context.currGrid.rendered.pipe(first()).subscribe(() => {
15506
+ context.currGrid.updateColumns(newColumns);
15507
+ newColumns.forEach(col => {
15508
+ context.currGrid.columnInit.emit(col);
15509
+ });
15510
+ });
15511
+ }
15512
+ else {
15513
+ context.currGrid.updateColumns(newColumns);
15514
+ newColumns.forEach(col => {
15515
+ context.currGrid.columnInit.emit(col);
15516
+ });
15517
+ }
15789
15518
  }
15790
15519
  },
15791
15520
  groupBy: {
@@ -15905,9 +15634,9 @@ class IgxGridStateBaseDirective {
15905
15634
  const childGridStates = [];
15906
15635
  const rowIslands = context.currGrid.allLayoutList;
15907
15636
  if (rowIslands) {
15908
- rowIslands.forEach(rowIsland => {
15637
+ rowIslands.forEach((rowIsland) => {
15909
15638
  const childGrids = rowIsland.rowIslandAPI.getChildGrids();
15910
- childGrids.forEach(chGrid => {
15639
+ childGrids.forEach((chGrid) => {
15911
15640
  const parentRowID = this.getParentRowID(chGrid);
15912
15641
  context.currGrid = chGrid;
15913
15642
  if (context.currGrid) {
@@ -15923,12 +15652,12 @@ class IgxGridStateBaseDirective {
15923
15652
  restoreFeatureState(context, state) {
15924
15653
  const rowIslands = context.currGrid.allLayoutList;
15925
15654
  if (rowIslands) {
15926
- rowIslands.forEach(rowIsland => {
15655
+ rowIslands.forEach((rowIsland) => {
15927
15656
  const childGrids = rowIsland.rowIslandAPI.getChildGrids();
15928
- childGrids.forEach(chGrid => {
15657
+ childGrids.forEach((chGrid) => {
15929
15658
  const parentRowID = this.getParentRowID(chGrid);
15930
15659
  context.currGrid = chGrid;
15931
- const childGridState = state.find(st => st.id === rowIsland.id && st.parentRowID === parentRowID);
15660
+ const childGridState = state.find((st) => st.id === rowIsland.id && st.parentRowID === parentRowID);
15932
15661
  if (childGridState && context.currGrid) {
15933
15662
  context.restoreGridState(childGridState.state, context.featureKeys);
15934
15663
  }
@@ -16018,7 +15747,7 @@ class IgxGridStateBaseDirective {
16018
15747
  getStateInternal(serialize = true, features) {
16019
15748
  let state;
16020
15749
  this.currGrid = this.grid;
16021
- this.state = state = this.buildState(features);
15750
+ state = this.buildState(features);
16022
15751
  if (serialize) {
16023
15752
  state = JSON.stringify(state, this.stringifyCallback);
16024
15753
  }
@@ -16039,7 +15768,6 @@ class IgxGridStateBaseDirective {
16039
15768
  * ```
16040
15769
  */
16041
15770
  setStateInternal(state, features) {
16042
- this.state = state;
16043
15771
  this.currGrid = this.grid;
16044
15772
  this.restoreGridState(state, features);
16045
15773
  this.grid.cdr.detectChanges(); // TODO
@@ -16104,7 +15832,7 @@ class IgxGridStateBaseDirective {
16104
15832
  restoreDimensions(config) {
16105
15833
  const collections = [config.rows, config.columns, config.filters];
16106
15834
  for (const collection of collections) {
16107
- for (let index = 0; index < collection?.length; index++) {
15835
+ for (let index = 0; index < (collection?.length ?? 0); index++) {
16108
15836
  const dim = collection[index];
16109
15837
  if (this.isDateDimension(dim)) {
16110
15838
  this.restoreDateDimension(dim);
@@ -16179,7 +15907,7 @@ class IgxGridStateBaseDirective {
16179
15907
  return null;
16180
15908
  }
16181
15909
  if (this.currGrid.type === 'pivot') {
16182
- return recreateTreeFromFields(exprTreeObject, this.currGrid.allDimensions.map(d => ({ dataType: d.dataType, field: d.memberName })));
15910
+ return recreateTreeFromFields(exprTreeObject, this.currGrid.allDimensions.map((d) => ({ dataType: d.dataType, field: d.memberName })));
16183
15911
  }
16184
15912
  return recreateTreeFromFields(exprTreeObject, this.currGrid.columns);
16185
15913
  }
@@ -16499,7 +16227,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
16499
16227
  /* wcElementTag: igc-grid-toolbar */
16500
16228
  /* blazorIndirectRender */
16501
16229
  /* singleInstanceIdentifier */
16502
- /* contentParent: GridBaseDirective */
16230
+ /* contentParent: Grid */
16231
+ /* contentParent: TreeGrid */
16503
16232
  /* contentParent: RowIsland */
16504
16233
  /* contentParent: HierarchicalGrid */
16505
16234
  /* jsonAPIManageItemInMarkup */
@@ -16663,7 +16392,7 @@ class BaseToolbarDirective {
16663
16392
  ? actions.columnsAreaMaxHeight :
16664
16393
  this.columnListHeight ??
16665
16394
  `${Math.max(this.grid.calcHeight * 0.5, 200)}px`;
16666
- toggleRef.opening.pipe(first$1()).subscribe(setHeight);
16395
+ toggleRef.opening.pipe(first()).subscribe(setHeight);
16667
16396
  }
16668
16397
  toggleRef.toggle({
16669
16398
  ...this.overlaySettings, ...{
@@ -16684,12 +16413,12 @@ class BaseToolbarDirective {
16684
16413
  }
16685
16414
  /** The if statement prevents emitting open and close events twice */
16686
16415
  if (toggleRef.collapsed) {
16687
- toggleRef.opening.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.opening.emit(event));
16688
- toggleRef.opened.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.opened.emit(event));
16416
+ toggleRef.opening.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.opening.emit(event));
16417
+ toggleRef.opened.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.opened.emit(event));
16689
16418
  }
16690
16419
  else {
16691
- toggleRef.closing.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.closing.emit(event));
16692
- toggleRef.closed.pipe(first$1(), takeUntil(this.$destroy)).subscribe((event) => this.closed.emit(event));
16420
+ toggleRef.closing.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.closing.emit(event));
16421
+ toggleRef.closed.pipe(first(), takeUntil(this.$destroy)).subscribe((event) => this.closed.emit(event));
16693
16422
  }
16694
16423
  }
16695
16424
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: BaseToolbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -17546,7 +17275,7 @@ class IgxBaseExporter {
17546
17275
  this.pivotGridColumns = [];
17547
17276
  this.isPivotGridExport = true;
17548
17277
  this.pivotGridRowDimensionsMap = new Map();
17549
- grid.visibleRowDimensions.filter(r => r.enabled).forEach(rowDimension => {
17278
+ grid.visibleRowDimensions.filter(r => r.enabled).forEach((rowDimension) => {
17550
17279
  this.addToRowDimensionsMap(rowDimension, rowDimension.memberName);
17551
17280
  });
17552
17281
  this._ownersMap.set(DEFAULT_OWNER, columnList);
@@ -17559,8 +17288,10 @@ class IgxBaseExporter {
17559
17288
  this.addLevelColumns();
17560
17289
  this.prepareData(grid);
17561
17290
  this.addLevelData();
17562
- this.addPivotGridColumns(grid);
17563
- this.addPivotRowHeaders(grid);
17291
+ if (grid.type === 'pivot') {
17292
+ this.addPivotGridColumns(grid);
17293
+ this.addPivotRowHeaders(grid);
17294
+ }
17564
17295
  this.exportGridRecordsData(this.flatRecords, grid);
17565
17296
  }
17566
17297
  /**
@@ -17687,7 +17418,7 @@ class IgxBaseExporter {
17687
17418
  }
17688
17419
  const targetCol = mapRecord.columns.filter(c => column.columnGroupParent !== null && column.columnGroupParent !== undefined && c.columnGroup === column.columnGroupParent)[0];
17689
17420
  if (targetCol !== undefined) {
17690
- targetCol.columnSpan -= span;
17421
+ targetCol.columnSpan = targetCol.columnSpan - span;
17691
17422
  if (targetCol.columnGroupParent !== null) {
17692
17423
  this.calculateColumnSpans(targetCol, mapRecord, span);
17693
17424
  }
@@ -17878,7 +17609,7 @@ class IgxBaseExporter {
17878
17609
  hierarchicalOwner: GRID_PARENT
17879
17610
  };
17880
17611
  this.flatRecords.push(hierarchicalGridRecord);
17881
- for (const island of childLayoutList) {
17612
+ for (const island of childLayoutList ?? []) {
17882
17613
  const path = {
17883
17614
  rowID: grid.primaryKey ? entry[grid.primaryKey] : entry,
17884
17615
  rowKey: grid.primaryKey ? entry[grid.primaryKey] : entry,
@@ -18337,7 +18068,7 @@ class IgxBaseExporter {
18337
18068
  let keyData;
18338
18069
  if (island.autoGenerate) {
18339
18070
  keyData = gridData && gridData[island.key] ? gridData[island.key] : undefined;
18340
- const islandKeys = island.children && island.children.length > 0 ? island.children.map(i => i.key) : [];
18071
+ const islandKeys = island.children && island.children.length > 0 ? island.children.map((i) => i.key) : [];
18341
18072
  if (keyData && Array.isArray(keyData) && keyData.length > 0) {
18342
18073
  const islandData = keyData.map(i => {
18343
18074
  const newItem = {};
@@ -18397,9 +18128,9 @@ class IgxBaseExporter {
18397
18128
  addPivotRowHeaders(grid) {
18398
18129
  if (grid?.pivotUI?.showRowHeaders) {
18399
18130
  const headersList = this._ownersMap.get(DEFAULT_OWNER);
18400
- const enabledRows = grid.visibleRowDimensions.filter(r => r.enabled).map((r, index) => ({ name: r.displayName || r.memberName, level: index }));
18131
+ const enabledRows = grid.visibleRowDimensions.filter((r) => r.enabled).map((r, index) => ({ name: r.displayName || r.memberName, level: index }));
18401
18132
  let startIndex = 0;
18402
- enabledRows.forEach(x => {
18133
+ enabledRows.forEach((x) => {
18403
18134
  headersList.columns.unshift({
18404
18135
  rowSpan: headersList.maxLevel + 1,
18405
18136
  field: x.name,
@@ -18417,9 +18148,6 @@ class IgxBaseExporter {
18417
18148
  }
18418
18149
  }
18419
18150
  addPivotGridColumns(grid) {
18420
- if (grid.type !== 'pivot') {
18421
- return;
18422
- }
18423
18151
  const enabledRows = grid.visibleRowDimensions.map((r, i) => ({ name: r.memberName, level: i }));
18424
18152
  this.preparePivotGridColumns(enabledRows);
18425
18153
  this.pivotGridFilterFieldsCount = enabledRows.length;
@@ -19033,6 +18761,7 @@ class WorksheetFile {
19033
18761
  // TODO: get date format from locale
19034
18762
  return `"Latest: "&amp;_xlfn.TEXT(_xlfn.MAX(_xlfn.IF(${levelDimensions.startCoordinate}:${levelDimensions.endCoordinate}=${recordLevel}, ${dimensions.startCoordinate}:${dimensions.endCoordinate})), "m/d/yyyy")`;
19035
18763
  }
18764
+ return undefined;
19036
18765
  }
19037
18766
  setRootSummaryStartCoordinate(column, key) {
19038
18767
  const firstDataRecordColName = ExcelStrings.getExcelColumn(column) + (this.firstDataRow);
@@ -20928,7 +20657,7 @@ class IgxGridToolbarExporterComponent extends BaseToolbarDirective {
20928
20657
  }
20929
20658
  this.isExporting = true;
20930
20659
  this.toolbar.showProgress = true;
20931
- exporter.exportEnded.pipe(first$1()).subscribe(() => {
20660
+ exporter.exportEnded.pipe(first()).subscribe(() => {
20932
20661
  this.exportEnded.emit();
20933
20662
  this.isExporting = false;
20934
20663
  this.toolbar.showProgress = false;
@@ -20980,11 +20709,11 @@ class IgxGridToolbarHidingComponent extends BaseToolbarColumnActionsDirective {
20980
20709
  this.columnActionsUI = content;
20981
20710
  }
20982
20711
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarHidingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20983
- 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 }); }
20712
+ 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 }); }
20984
20713
  }
20985
20714
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarHidingComponent, decorators: [{
20986
20715
  type: Component,
20987
- 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" }]
20716
+ 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" }]
20988
20717
  }], propDecorators: { content: [{
20989
20718
  type: ViewChild,
20990
20719
  args: [IgxColumnHidingDirective, { read: IgxColumnActionsComponent }]
@@ -21012,11 +20741,11 @@ class IgxGridToolbarPinningComponent extends BaseToolbarColumnActionsDirective {
21012
20741
  this.columnActionsUI = content;
21013
20742
  }
21014
20743
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarPinningComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21015
- 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 }); }
20744
+ 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 }); }
21016
20745
  }
21017
20746
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridToolbarPinningComponent, decorators: [{
21018
20747
  type: Component,
21019
- 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" }]
20748
+ 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" }]
21020
20749
  }], propDecorators: { content: [{
21021
20750
  type: ViewChild,
21022
20751
  args: [IgxColumnPinningDirective, { read: IgxColumnActionsComponent }]
@@ -21136,12 +20865,14 @@ class IgxRowEditTabStopDirective {
21136
20865
  move(event) {
21137
20866
  event.preventDefault();
21138
20867
  this.currentCellIndex = event.shiftKey ? this.grid.lastEditableColumnIndex : this.grid.firstEditableColumnIndex;
21139
- this.grid.navigation.activeNode.row = this.grid.crudService.rowInEditMode.index;
20868
+ this.grid.navigation.activeNode.row = this.grid.crudService.rowInEditMode?.index;
21140
20869
  this.grid.navigation.activeNode.column = this.currentCellIndex;
21141
- this.grid.navigateTo(this.grid.crudService.rowInEditMode.index, this.currentCellIndex, (obj) => {
21142
- obj.target.activate(event);
21143
- this.grid.cdr.detectChanges();
21144
- });
20870
+ if (this.grid.crudService.rowInEditMode) {
20871
+ this.grid.navigateTo(this.grid.crudService.rowInEditMode.index, this.currentCellIndex, (obj) => {
20872
+ obj.target.activate(event);
20873
+ this.grid.cdr.detectChanges();
20874
+ });
20875
+ }
21145
20876
  }
21146
20877
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxRowEditTabStopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21147
20878
  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 }); }
@@ -21166,12 +20897,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
21166
20897
  args: ['keydown.enter', ['$event']]
21167
20898
  }] } });
21168
20899
 
21169
- /**
21170
- * Injection token for accessing the grid transaction object.
21171
- * This allows injecting the grid transaction object into components or services.
21172
- */
21173
- const IgxGridTransaction = /*@__PURE__*/ new InjectionToken('IgxGridTransaction');
21174
-
21175
20900
  /* csSuppress */
21176
20901
  class NoopPivotDimensionsStrategy {
21177
20902
  static { this._instance = null; }
@@ -21278,14 +21003,17 @@ class DimensionValuesFilteringStrategy extends FilteringStrategy {
21278
21003
  const allDimensions = grid.allDimensions;
21279
21004
  const enabledDimensions = allDimensions.filter(x => x && x.enabled);
21280
21005
  const dim = PivotUtil.flatten(enabledDimensions).find(x => x.memberName === fieldName);
21006
+ if (!dim) {
21007
+ return undefined;
21008
+ }
21281
21009
  const value = dim.childLevel ? this._getDimensionValueHierarchy(dim, rec).map(x => `[` + x + `]`).join('.') : PivotUtil.extractValueFromDimension(dim, rec);
21282
21010
  return value;
21283
21011
  }
21284
21012
  getFilterItems(column, tree) {
21285
21013
  const grid = column.grid;
21286
- const enabledDimensions = grid.allDimensions.filter(x => x && x.enabled);
21014
+ const enabledDimensions = grid.allDimensions.filter((x) => x && x.enabled);
21287
21015
  const data = column.grid.gridAPI.filterDataByExpressions(tree);
21288
- const dim = enabledDimensions.find(x => x.memberName === column.field);
21016
+ const dim = enabledDimensions.find((x) => x.memberName === column.field);
21289
21017
  const allValuesHierarchy = PivotUtil.getFieldsHierarchy(data, [dim], PivotDimensionType.Column, grid.pivotKeys, grid.pivotValueCloneStrategy);
21290
21018
  const isNoop = grid.pivotConfiguration.columnStrategy instanceof NoopPivotDimensionsStrategy || grid.pivotConfiguration.rowStrategy instanceof NoopPivotDimensionsStrategy;
21291
21019
  const items = !isNoop ? this._getFilterItems(allValuesHierarchy, grid.pivotKeys) : [{ value: '' }];
@@ -21296,7 +21024,7 @@ class DimensionValuesFilteringStrategy extends FilteringStrategy {
21296
21024
  hierarchy.forEach((value) => {
21297
21025
  const val = value.value;
21298
21026
  const path = val.split(pivotKeys.columnDimensionSeparator);
21299
- const hierarchicalValue = path.length > 1 ? path.map(x => `[` + x + `]`).join('.') : val;
21027
+ const hierarchicalValue = path.length > 1 ? path.map((x) => `[` + x + `]`).join('.') : val;
21300
21028
  const text = path[path.length - 1];
21301
21029
  items.push({
21302
21030
  value: hierarchicalValue,
@@ -21344,12 +21072,12 @@ class IgxGridSummaryService {
21344
21072
  }
21345
21073
  return;
21346
21074
  }
21347
- if (args.data) {
21348
- const rowID = this.grid.primaryKey ? args.data[this.grid.primaryKey] : args.data;
21075
+ if (args.rowData) {
21076
+ const rowID = this.grid.primaryKey ? args.rowData[this.grid.primaryKey] : args.rowData;
21349
21077
  this.removeSummaries(rowID);
21350
21078
  }
21351
21079
  if (args.rowID !== undefined && args.rowID !== null) {
21352
- let columnName = args.cellID ? this.grid.columns.find(col => col.index === args.cellID.columnID).field : undefined;
21080
+ let columnName = args.cellID ? this.grid.columns.find(col => col.index === args.cellID.columnID)?.field : undefined;
21353
21081
  if (columnName && this.grid.rowEditable) {
21354
21082
  return;
21355
21083
  }
@@ -21409,7 +21137,7 @@ class IgxGridSummaryService {
21409
21137
  this.grid.columns.filter((col) => col.hasSummary && !col.hidden).forEach((column) => {
21410
21138
  const getCurrentSummary = column.summaries.operate([], [], column.field);
21411
21139
  const getCurrentSummaryColumn = column.disabledSummaries.length > 0
21412
- ? getCurrentSummary.filter(s => !column.disabledSummaries.includes(s.key)).length
21140
+ ? getCurrentSummary.filter((s) => !column.disabledSummaries.includes(s.key)).length
21413
21141
  : getCurrentSummary.length;
21414
21142
  if (maxSummaryLength < getCurrentSummaryColumn) {
21415
21143
  maxSummaryLength = getCurrentSummaryColumn;
@@ -21432,7 +21160,7 @@ class IgxGridSummaryService {
21432
21160
  const columnPathParts = columns.map(col => columnFieldPath(col.field));
21433
21161
  for (const [idx, column] of columns.entries()) {
21434
21162
  if (!rowSummaries.get(column.field)) {
21435
- let summaryResult = column.summaries.operate(data.map(r => resolveNestedPath(r, columnPathParts[idx])), data, column.field, groupRecord, this.grid.locale, column.pipeArgs);
21163
+ let summaryResult = column.summaries.operate(data.map((r) => resolveNestedPath(r, columnPathParts[idx])), data, column.field, groupRecord);
21436
21164
  summaryResult = column.disabledSummaries.length > 0
21437
21165
  ? summaryResult.filter(s => !column.disabledSummaries.includes(s.key))
21438
21166
  : summaryResult;
@@ -21456,16 +21184,16 @@ class IgxGridSummaryService {
21456
21184
  return;
21457
21185
  }
21458
21186
  if (this.groupingExpressions.length === 0) {
21459
- this.groupingExpressions = groupingArgs.expressions.map(record => record.fieldName);
21187
+ this.groupingExpressions = groupingArgs.expressions instanceof Array ? groupingArgs.expressions.map((record) => record.fieldName) : [];
21460
21188
  return;
21461
21189
  }
21462
- if (groupingArgs.length === 0) {
21190
+ if (groupingArgs.expressions instanceof Array && groupingArgs.expressions.length === 0) {
21463
21191
  this.groupingExpressions = [];
21464
21192
  this.clearSummaryCache();
21465
21193
  return;
21466
21194
  }
21467
21195
  this.compareGroupingExpressions(this.groupingExpressions, groupingArgs);
21468
- this.groupingExpressions = groupingArgs.expressions.map(record => record.fieldName);
21196
+ this.groupingExpressions = groupingArgs.expressions instanceof Array ? groupingArgs.expressions.map((record) => record.fieldName) : [];
21469
21197
  }
21470
21198
  get hasSummarizedColumns() {
21471
21199
  const summarizedColumns = this.grid.columns.filter(col => col.hasSummary && !col.hidden);
@@ -21523,7 +21251,7 @@ class IgxGridSummaryService {
21523
21251
  // private removeChildRowSummaries(rowID, columnName?) {
21524
21252
  // }
21525
21253
  compareGroupingExpressions(current, groupingArgs) {
21526
- const newExpressions = groupingArgs.expressions.map(record => record.fieldName);
21254
+ const newExpressions = groupingArgs.expressions instanceof Array ? groupingArgs.expressions.map((record) => record.fieldName) : [];
21527
21255
  const removedCols = groupingArgs.ungroupedColumns;
21528
21256
  if (current.length <= newExpressions.length) {
21529
21257
  const newExpr = newExpressions.slice(0, current.length).toString();
@@ -21537,7 +21265,7 @@ class IgxGridSummaryService {
21537
21265
  this.clearSummaryCache();
21538
21266
  return;
21539
21267
  }
21540
- removedCols.map(col => col.field).forEach(colName => {
21268
+ removedCols instanceof Array && removedCols.map(col => col.field).forEach(colName => {
21541
21269
  this.summaryCacheMap.forEach((_cache, id) => {
21542
21270
  if (id.indexOf(colName) !== -1) {
21543
21271
  this.summaryCacheMap.delete(id);
@@ -21766,11 +21494,11 @@ class IgxSummaryRowComponent {
21766
21494
  };
21767
21495
  }
21768
21496
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxSummaryRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21769
- 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 }); }
21497
+ 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 }); }
21770
21498
  }
21771
21499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxSummaryRowComponent, decorators: [{
21772
21500
  type: Component,
21773
- 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"] }]
21501
+ 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"] }]
21774
21502
  }], propDecorators: { summaries: [{
21775
21503
  type: Input
21776
21504
  }], gridID: [{
@@ -22245,7 +21973,7 @@ class IgxGridNavigationService {
22245
21973
  // this is workaround: endTopOffset - containerHeight > 5 and should be replaced with: containerHeight < endTopOffset
22246
21974
  // when the page is zoomed the grid does not scroll the row completely in the view
22247
21975
  return !targetRow || targetRow.offsetTop < Math.abs(this.containerTopOffset)
22248
- || containerHeight && endTopOffset - containerHeight > 5;
21976
+ || (containerHeight && endTopOffset - containerHeight > 5);
22249
21977
  }
22250
21978
  shouldNotifyVirtualizedKeyboardSelection(key, rowIndex, visibleColIndex) {
22251
21979
  // Any navigation key that ends up scrolling activates the target cell from the
@@ -22269,7 +21997,7 @@ class IgxGridNavigationService {
22269
21997
  rowIndex - this.grid.pinnedDataView.length : rowIndex;
22270
21998
  this.grid.verticalScrollContainer.scrollTo(scrollRowIndex);
22271
21999
  this.grid.verticalScrollContainer.chunkLoad
22272
- .pipe(first$1()).subscribe(() => {
22000
+ .pipe(first()).subscribe(() => {
22273
22001
  this.pendingNavigation = false;
22274
22002
  if (cb) {
22275
22003
  cb();
@@ -22277,7 +22005,7 @@ class IgxGridNavigationService {
22277
22005
  });
22278
22006
  }
22279
22007
  performHorizontalScrollToCell(visibleColumnIndex, cb) {
22280
- if (this.grid.rowList < 1 && this.grid.summariesRowList.length < 1 && this.grid.hasColumnGroups) {
22008
+ if (this.grid.rowList.length < 1 && this.grid.summariesRowList.length < 1 && this.grid.hasColumnGroups) {
22281
22009
  let column = this.grid.getColumnByVisibleIndex(visibleColumnIndex);
22282
22010
  while (column.parent) {
22283
22011
  column = column.parent;
@@ -22289,7 +22017,7 @@ class IgxGridNavigationService {
22289
22017
  }
22290
22018
  this.pendingNavigation = true;
22291
22019
  this.grid.parentVirtDir.chunkLoad
22292
- .pipe(first$1())
22020
+ .pipe(first())
22293
22021
  .subscribe(() => {
22294
22022
  this.pendingNavigation = false;
22295
22023
  if (cb) {
@@ -22400,7 +22128,7 @@ class IgxGridNavigationService {
22400
22128
  }
22401
22129
  const editCell = this.grid.crudService.cell;
22402
22130
  this.grid.verticalScrollContainer.chunkLoad
22403
- .pipe(first$1()).subscribe(() => {
22131
+ .pipe(first()).subscribe(() => {
22404
22132
  if (editCell && this.grid.rowList.map(r => r.index).indexOf(editCell.rowIndex) < 0) {
22405
22133
  this.grid.tbody.nativeElement.focus({ preventScroll: true });
22406
22134
  }
@@ -22628,7 +22356,7 @@ class IgxGridNavigationService {
22628
22356
  this.grid.navigateTo(rowIndex, visibleColIndex, cb);
22629
22357
  }
22630
22358
  emitKeyDown(type, rowIndex, event) {
22631
- const row = this.grid.summariesRowList.toArray().concat(this.grid.rowList.toArray()).find(r => r.index === rowIndex);
22359
+ const row = this.grid.summariesRowList.find((r) => r.index === rowIndex) || this.grid.rowList.find((r) => r.index === rowIndex);
22632
22360
  if (!row) {
22633
22361
  return;
22634
22362
  }
@@ -22660,6 +22388,7 @@ class IgxGridNavigationService {
22660
22388
  return i;
22661
22389
  }
22662
22390
  }
22391
+ return undefined;
22663
22392
  }
22664
22393
  getRowElementByIndex(index) {
22665
22394
  if (this.grid.hasDetails) {
@@ -22668,7 +22397,7 @@ class IgxGridNavigationService {
22668
22397
  return detail;
22669
22398
  }
22670
22399
  }
22671
- return this.grid.rowList.toArray().concat(this.grid.summariesRowList.toArray()).find(r => r.index === index)?.nativeElement;
22400
+ return this.grid.rowList.find((r) => r.index === index)?.nativeElement || this.grid.summariesRowList.find((r) => r.index === index)?.nativeElement || null;
22672
22401
  }
22673
22402
  isValidPosition(rowIndex, colIndex) {
22674
22403
  const length = this.grid.totalItemCount ?? this.grid.dataView.length;
@@ -22734,7 +22463,7 @@ class IgxGridNavigationService {
22734
22463
  this.grid.visibleColumns.sort((c1, c2) => c1.visibleIndex - c2.visibleIndex)
22735
22464
  .find(c => this.isColumnFullyVisible(c.visibleIndex))?.visibleIndex;
22736
22465
  const column = this.grid.visibleColumns.find((col) => !col.columnLayout && col.visibleIndex === colIndex);
22737
- const rowInd = rowIndex ? rowIndex : this.grid.rowList.find(r => !this.shouldPerformVerticalScroll(r.index, colIndex))?.index;
22466
+ const rowInd = rowIndex ? rowIndex : this.grid.rowList.find((r) => !this.shouldPerformVerticalScroll(r.index, colIndex))?.index;
22738
22467
  const node = {
22739
22468
  row: rowInd ?? 0,
22740
22469
  column: column?.visibleIndex ?? 0, level: column?.level ?? 0,
@@ -22801,7 +22530,7 @@ class IgxGridNavigationService {
22801
22530
  }
22802
22531
  const clearSelection = this.grid.columnSelection === GridSelectionMode.single;
22803
22532
  const columnsToSelect = !column.children ? [column.field] :
22804
- column.allChildren.filter(c => !c.hidden && c.selectable && !c.columnGroup).map(c => c.field);
22533
+ column.allChildren.filter((c) => !c.hidden && c.selectable && !c.columnGroup).map((c) => c.field);
22805
22534
  if (column.selected) {
22806
22535
  this.grid.selectionService.deselectColumns(columnsToSelect, event);
22807
22536
  }
@@ -22929,14 +22658,14 @@ class IgxGridValidationService {
22929
22658
  */
22930
22659
  isFieldInvalid(formGroup, fieldName) {
22931
22660
  const path = this.getFormControlPath(fieldName);
22932
- return formGroup.get(path)?.invalid && formGroup.get(path)?.touched;
22661
+ return (formGroup.get(path)?.invalid && formGroup.get(path)?.touched);
22933
22662
  }
22934
22663
  /**
22935
22664
  * Checks the validity of the native ngControl after edit
22936
22665
  */
22937
22666
  isFieldValidAfterEdit(formGroup, fieldName) {
22938
22667
  const path = this.getFormControlPath(fieldName);
22939
- return !formGroup.get(path)?.invalid && formGroup.get(path)?.dirty;
22668
+ return (!formGroup.get(path)?.invalid && formGroup.get(path)?.dirty);
22940
22669
  }
22941
22670
  /**
22942
22671
  * @hidden
@@ -23274,9 +23003,9 @@ class IgxGridCellComponent {
23274
23003
  const scrollOffset = this.grid.verticalScrollContainer.scrollPosition + (event.y - this.grid.tbody.nativeElement.getBoundingClientRect().y);
23275
23004
  const targetRowIndex = this.grid.verticalScrollContainer.getIndexAtScroll(scrollOffset);
23276
23005
  if (targetRowIndex != this.rowIndex) {
23277
- const row = this.grid.rowList.toArray().find(x => x.index === targetRowIndex);
23278
- const actualTarget = row.cells.find(x => x.column === this.column);
23279
- actualTarget.pointerdown(event);
23006
+ const row = this.grid.rowList.find((x) => x.index === targetRowIndex);
23007
+ const actualTarget = row?.cells?.find((x) => x.column === this.column);
23008
+ actualTarget?.pointerdown(event);
23280
23009
  return;
23281
23010
  }
23282
23011
  }
@@ -23939,7 +23668,7 @@ class IgxGridCellComponent {
23939
23668
  if (this.isInvalid && !isTargetErrorIcon) {
23940
23669
  this.cdr.detectChanges();
23941
23670
  this.openErrorTooltip();
23942
- this.grid.activeNodeChange.pipe(first$1()).subscribe(() => {
23671
+ this.grid.activeNodeChange.pipe(first()).subscribe(() => {
23943
23672
  this.closeErrorTooltip();
23944
23673
  });
23945
23674
  }
@@ -24020,7 +23749,7 @@ class IgxGridCellComponent {
24020
23749
  * Also we need to keep the notifyChanges below, because of the current
24021
23750
  * change detection cycle when we have editing with enabled transactions
24022
23751
  */
24023
- if (this.grid.sortingExpressions.length && this.grid.sortingExpressions.indexOf(editableCell.column.field)) {
23752
+ if (this.grid.sortingExpressions.length && this.grid.sortingExpressions.indexOf(editableCell.column.field) !== -1) {
24024
23753
  this.grid.cdr.detectChanges();
24025
23754
  }
24026
23755
  if (editableArgs && editableArgs.cancel) {
@@ -24061,7 +23790,7 @@ class IgxGridCellComponent {
24061
23790
  return new IgxGridCell(this.grid, rowID, this.column);
24062
23791
  }
24063
23792
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24064
- 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 }); }
23793
+ 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 }); }
24065
23794
  }
24066
23795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxGridCellComponent, decorators: [{
24067
23796
  type: Component,
@@ -24091,7 +23820,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
24091
23820
  IgxGridCellImageAltPipe,
24092
23821
  IgxStringReplacePipe,
24093
23822
  IgxColumnFormatterPipe
24094
- ], 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" }]
23823
+ ], 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" }]
24095
23824
  }], propDecorators: { isEmptyAddRowCell: [{
24096
23825
  type: HostBinding,
24097
23826
  args: ['class.igx-grid__td--new']
@@ -24292,7 +24021,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
24292
24021
  scrollPos.leftScroll : scrollPos.rightScroll - this.displayContainerWidth;
24293
24022
  this.forOfDir().getScroll().scrollLeft = nextScroll;
24294
24023
  this.grid.parentVirtDir.chunkLoad
24295
- .pipe(first$1())
24024
+ .pipe(first())
24296
24025
  .subscribe(() => {
24297
24026
  if (cb) {
24298
24027
  cb();
@@ -24319,7 +24048,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
24319
24048
  this.grid.verticalScrollContainer.addScrollTop(Math.abs(pos.rowBottom - this.scrollTop - containerHeight));
24320
24049
  }
24321
24050
  this.grid.verticalScrollContainer.chunkLoad
24322
- .pipe(first$1()).subscribe(() => {
24051
+ .pipe(first()).subscribe(() => {
24323
24052
  if (cb) {
24324
24053
  cb();
24325
24054
  }
@@ -24380,7 +24109,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
24380
24109
  this.activeNode.column = col.visibleIndex;
24381
24110
  const layout = this.layout(this.activeNode.column);
24382
24111
  const nextLayout = { ...this.activeNode.layout, rowStart: layout.rowStart, rowEnd: layout.rowEnd };
24383
- this.setActiveNode({ row: this.activeNode.row, layout: nextLayout });
24112
+ this.setActiveNode({ row: this.activeNode.row, column: this.activeNode.column, layout: nextLayout });
24384
24113
  return;
24385
24114
  }
24386
24115
  this.horizontalNav(event, key, -1, 'headerCell');
@@ -24637,7 +24366,7 @@ class GridBaseAPIService {
24637
24366
  }
24638
24367
  }
24639
24368
  get_row_by_index(rowIndex) {
24640
- return this.grid.rowList.find((row) => row.index === rowIndex);
24369
+ return this.grid.rowList.find(row => row.index === rowIndex);
24641
24370
  }
24642
24371
  /**
24643
24372
  * Gets the rowID of the record at the specified data view index
@@ -24658,6 +24387,7 @@ class GridBaseAPIService {
24658
24387
  if (row && row.cells) {
24659
24388
  return row.cells.find((cell) => cell.column.field === field);
24660
24389
  }
24390
+ return undefined;
24661
24391
  }
24662
24392
  get_cell_by_index(rowIndex, columnID) {
24663
24393
  const row = this.get_row_by_index(rowIndex);
@@ -24668,16 +24398,18 @@ class GridBaseAPIService {
24668
24398
  if (hasCells && typeof columnID === 'string') {
24669
24399
  return row.cells.find((cell) => cell.column.field === columnID);
24670
24400
  }
24401
+ return undefined;
24671
24402
  }
24672
24403
  get_cell_by_visible_index(rowIndex, columnIndex) {
24673
24404
  const row = this.get_row_by_index(rowIndex);
24674
24405
  if (row && row.cells) {
24675
24406
  return row.cells.find((cell) => cell.visibleColumnIndex === columnIndex);
24676
24407
  }
24408
+ return undefined;
24677
24409
  }
24678
24410
  update_cell(cell) {
24679
24411
  if (!cell) {
24680
- return;
24412
+ return undefined;
24681
24413
  }
24682
24414
  const args = cell.createCellEditEventArgs(true);
24683
24415
  if (!this.grid.crudService.row) { // should not recalculate summaries when there is row in edit mode
@@ -25070,7 +24802,7 @@ class GridBaseAPIService {
25070
24802
  if (index === -1) {
25071
24803
  return;
25072
24804
  }
25073
- const eventArgs = this.get_pin_row_event_args(rowID, null, row, false);
24805
+ const eventArgs = this.get_pin_row_event_args(rowID, undefined, row, false);
25074
24806
  grid.rowPinning.emit(eventArgs);
25075
24807
  if (eventArgs.cancel) {
25076
24808
  return;
@@ -25223,5 +24955,5 @@ const IGX_GRID_COMMON_DIRECTIVES = [
25223
24955
  * Generated bundle index. Do not edit.
25224
24956
  */
25225
24957
 
25226
- 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 };
24958
+ 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 };
25227
24959
  //# sourceMappingURL=igniteui-angular-grids-core.mjs.map