igniteui-angular 21.2.16 → 21.2.18

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 (74) hide show
  1. package/fesm2022/igniteui-angular-action-strip.mjs +5 -2
  2. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-banner.mjs +5 -2
  4. package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-calendar.mjs +12 -5
  6. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-carousel.mjs +5 -2
  8. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-chips.mjs +5 -2
  10. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-combo.mjs +5 -2
  12. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  13. package/fesm2022/igniteui-angular-date-picker.mjs +5 -2
  14. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  15. package/fesm2022/igniteui-angular-directives.mjs +30 -2
  16. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-grids-core.mjs +13 -2
  18. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-grids-grid.mjs +12 -5
  20. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-input-group.mjs +5 -2
  22. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-list.mjs +5 -2
  24. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-paginator.mjs +5 -2
  26. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-query-builder.mjs +21 -8
  28. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  29. package/fesm2022/igniteui-angular-splitter.mjs +24 -14
  30. package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
  31. package/fesm2022/igniteui-angular-time-picker.mjs +5 -2
  32. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-tree.mjs +5 -2
  34. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  35. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +11 -9
  36. package/package.json +1 -1
  37. package/styles/igniteui-fluent-dark-excel.css +1 -1
  38. package/styles/igniteui-fluent-dark-word.css +1 -1
  39. package/styles/igniteui-fluent-dark.css +1 -1
  40. package/styles/igniteui-fluent-light-excel.css +1 -1
  41. package/styles/igniteui-fluent-light-word.css +1 -1
  42. package/styles/igniteui-fluent-light.css +1 -1
  43. package/styles/igniteui-indigo-dark.css +1 -1
  44. package/styles/igniteui-indigo-light.css +1 -1
  45. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  46. package/styles/maps/igniteui-angular.css.map +1 -1
  47. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  48. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  49. package/styles/maps/igniteui-dark-green.css.map +1 -1
  50. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  51. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  52. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  53. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  54. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  55. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  56. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  57. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  58. package/types/igniteui-angular-action-strip.d.ts +1 -0
  59. package/types/igniteui-angular-banner.d.ts +1 -0
  60. package/types/igniteui-angular-calendar.d.ts +2 -0
  61. package/types/igniteui-angular-carousel.d.ts +1 -0
  62. package/types/igniteui-angular-chips.d.ts +1 -0
  63. package/types/igniteui-angular-combo.d.ts +1 -0
  64. package/types/igniteui-angular-date-picker.d.ts +1 -0
  65. package/types/igniteui-angular-directives.d.ts +12 -1
  66. package/types/igniteui-angular-grids-core.d.ts +2 -0
  67. package/types/igniteui-angular-grids-grid.d.ts +3 -1
  68. package/types/igniteui-angular-input-group.d.ts +1 -0
  69. package/types/igniteui-angular-list.d.ts +1 -0
  70. package/types/igniteui-angular-paginator.d.ts +1 -0
  71. package/types/igniteui-angular-query-builder.d.ts +4 -0
  72. package/types/igniteui-angular-splitter.d.ts +6 -1
  73. package/types/igniteui-angular-time-picker.d.ts +1 -0
  74. package/types/igniteui-angular-tree.d.ts +1 -0
@@ -4063,7 +4063,26 @@ class IgxForOfDirective extends IgxForOfToken {
4063
4063
  });
4064
4064
  }
4065
4065
  }
4066
+ /**
4067
+ * @hidden
4068
+ * Resolves the element a view is tracked by.
4069
+ *
4070
+ * The view's root nodes are not always elements: when the template's root is
4071
+ * a control flow block they are comment anchors, and the rendered element
4072
+ * follows the first of them. Both lookups can come up empty - the view may
4073
+ * hold no element at all, or be torn down before its content is rendered -
4074
+ * in which case there is nothing to observe and null is returned.
4075
+ */
4076
+ getViewObservedNode(view) {
4077
+ const rootNodes = view?.rootNodes ?? [];
4078
+ const elementNode = rootNodes.find(node => node?.nodeType === Node.ELEMENT_NODE);
4079
+ const candidate = elementNode ?? rootNodes[0]?.nextElementSibling;
4080
+ return candidate?.nodeType === Node.ELEMENT_NODE ? candidate : null;
4081
+ }
4066
4082
  subscribeToViewObserver(target) {
4083
+ if (!target) {
4084
+ return;
4085
+ }
4067
4086
  if (this.igxForScrollOrientation === 'vertical' && this.viewObserver) {
4068
4087
  this._zone.runOutsideAngular(() => {
4069
4088
  if (this.platformUtil.isBrowser) {
@@ -4934,7 +4953,16 @@ class IgxForOfDirective extends IgxForOfToken {
4934
4953
  removeLastElem() {
4935
4954
  const oldElem = this._embeddedViews.pop();
4936
4955
  this.beforeViewDestroyed.emit(oldElem);
4937
- this.viewObserver?.unobserve(oldElem.rootNodes.find(node => node.nodeType === Node.ELEMENT_NODE) || oldElem.rootNodes[0].nextElementSibling);
4956
+ // The observed node is not necessarily a root node of the view: when the
4957
+ // template's root is a control flow block the root nodes are comment
4958
+ // anchors, and the rendered element follows the first of them. Either
4959
+ // lookup can come up empty - the view may hold no element at all, or be
4960
+ // torn down before its content is rendered - and ResizeObserver throws
4961
+ // on anything that is not an Element.
4962
+ const observedNode = this.getViewObservedNode(oldElem);
4963
+ if (observedNode) {
4964
+ this.viewObserver?.unobserve(observedNode);
4965
+ }
4938
4966
  // also detach from ViewContainerRef to make absolutely sure this is removed from the view container.
4939
4967
  this.dc.instance._vcr.detach(this.dc.instance._vcr.length - 1);
4940
4968
  oldElem.destroy();
@@ -5388,7 +5416,7 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5388
5416
  const input = this.igxForOf[elemIndex];
5389
5417
  const embeddedView = this.dc.instance._vcr.createEmbeddedView(this._template, new IgxGridForOfContext(input, this.igxForOf, this.getContextIndex(input), this.igxForOf.length));
5390
5418
  this._embeddedViews.push(embeddedView);
5391
- this.subscribeToViewObserver(embeddedView.rootNodes.find(node => node.nodeType === Node.ELEMENT_NODE) || embeddedView.rootNodes[0].nextElementSibling);
5419
+ this.subscribeToViewObserver(this.getViewObservedNode(embeddedView));
5392
5420
  this.state.chunkSize++;
5393
5421
  }
5394
5422
  _updateViews(prevChunkSize) {