igniteui-angular 19.2.13 → 19.2.14

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 (34) hide show
  1. package/fesm2022/igniteui-angular.mjs +52 -14
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/lib/core/styles/components/calendar/_calendar-theme.scss +2 -1
  4. package/lib/core/styles/components/date-picker/_date-picker-theme.scss +8 -1
  5. package/lib/core/styles/components/drop-down/_drop-down-theme.scss +1 -1
  6. package/lib/core/styles/components/query-builder/_query-builder-theme.scss +22 -8
  7. package/lib/directives/for-of/base.helper.component.d.ts +6 -1
  8. package/package.json +1 -1
  9. package/styles/igniteui-angular-dark.css +1 -1
  10. package/styles/igniteui-angular.css +1 -1
  11. package/styles/igniteui-bootstrap-dark.css +1 -1
  12. package/styles/igniteui-bootstrap-light.css +1 -1
  13. package/styles/igniteui-dark-green.css +1 -1
  14. package/styles/igniteui-fluent-dark-excel.css +1 -1
  15. package/styles/igniteui-fluent-dark-word.css +1 -1
  16. package/styles/igniteui-fluent-dark.css +1 -1
  17. package/styles/igniteui-fluent-light-excel.css +1 -1
  18. package/styles/igniteui-fluent-light-word.css +1 -1
  19. package/styles/igniteui-fluent-light.css +1 -1
  20. package/styles/igniteui-indigo-dark.css +1 -1
  21. package/styles/igniteui-indigo-light.css +1 -1
  22. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  23. package/styles/maps/igniteui-angular.css.map +1 -1
  24. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  25. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  26. package/styles/maps/igniteui-dark-green.css.map +1 -1
  27. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  28. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  29. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  30. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  31. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  32. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  33. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  34. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, HostListener, Input, Directive, EventEmitter, InjectionToken, isDevMode, inject, PLATFORM_ID, Inject, ElementRef, ViewContainerRef, createComponent, HostBinding, Output, Self, Optional, booleanAttribute, SecurityContext, DestroyRef, Component, ContentChild, ContentChildren, RendererStyleFlags2, Pipe, ViewChild, contentChildren, QueryList, signal, effect, LOCALE_ID, forwardRef, Host, ViewChildren, TemplateRef, ChangeDetectionStrategy, SimpleChange, ChangeDetectorRef, NgZone, SkipSelf, CUSTOM_ELEMENTS_SCHEMA, reflectComponentType, NgModule } from '@angular/core';
2
+ import { Injectable, HostListener, Input, Directive, EventEmitter, InjectionToken, isDevMode, inject, PLATFORM_ID, Inject, ElementRef, ViewContainerRef, createComponent, HostBinding, Output, Self, Optional, booleanAttribute, SecurityContext, DestroyRef, Component, ContentChild, ContentChildren, RendererStyleFlags2, Pipe, ViewChild, Renderer2, NgZone, contentChildren, QueryList, signal, effect, LOCALE_ID, forwardRef, Host, ViewChildren, TemplateRef, ChangeDetectionStrategy, SimpleChange, ChangeDetectorRef, SkipSelf, CUSTOM_ELEMENTS_SCHEMA, reflectComponentType, NgModule } from '@angular/core';
3
3
  import * as i4 from '@angular/forms';
4
4
  import { NgModel, NgControl, FormControlName, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS, FormGroup, FormsModule, RequiredValidator, MinValidator, MaxValidator, EmailValidator, MinLengthValidator, MaxLengthValidator, PatternValidator, FormControl, ReactiveFormsModule } from '@angular/forms';
5
5
  import { Observable, NEVER, Subject, fromEvent, BehaviorSubject, interval, animationFrameScheduler, noop, takeUntil as takeUntil$1, merge, Subscription, timer, sampleTime, filter as filter$1, pipe, take as take$1 } from 'rxjs';
@@ -15586,6 +15586,9 @@ class VirtualHelperBaseDirective {
15586
15586
  this.destroy$ = new Subject();
15587
15587
  this._afterViewInit = false;
15588
15588
  this._detached = false;
15589
+ this.renderer = inject(Renderer2);
15590
+ this.platformId = inject(PLATFORM_ID);
15591
+ this.ngZone = inject(NgZone);
15589
15592
  this._scrollNativeSize = this.calculateScrollNativeSize();
15590
15593
  }
15591
15594
  onScroll(event) {
@@ -15641,6 +15644,30 @@ class VirtualHelperBaseDirective {
15641
15644
  get isAttachedToDom() {
15642
15645
  return this.document.body.contains(this.nativeElement);
15643
15646
  }
15647
+ toggleClass(element, className, shouldHaveClass) {
15648
+ if (shouldHaveClass) {
15649
+ this.renderer.addClass(element, className);
15650
+ }
15651
+ else {
15652
+ this.renderer.removeClass(element, className);
15653
+ }
15654
+ }
15655
+ updateScrollbarClass() {
15656
+ if (!isPlatformBrowser(this.platformId)) {
15657
+ return;
15658
+ }
15659
+ this.ngZone.runOutsideAngular(() => {
15660
+ requestAnimationFrame(() => {
15661
+ const el = this.nativeElement;
15662
+ const hasScrollbar = el.scrollHeight > el.clientHeight;
15663
+ const prevSibling = el.previousElementSibling;
15664
+ const scrollbarClass = 'igx-display-container--scrollbar';
15665
+ if (prevSibling?.tagName.toLowerCase() === 'igx-display-container') {
15666
+ this.toggleClass(prevSibling, scrollbarClass, hasScrollbar);
15667
+ }
15668
+ });
15669
+ });
15670
+ }
15644
15671
  handleMutations(event) {
15645
15672
  const hasSize = !(event[0].contentRect.height === 0 && event[0].contentRect.width === 0);
15646
15673
  if (!hasSize && !this.isAttachedToDom) {
@@ -15651,6 +15678,7 @@ class VirtualHelperBaseDirective {
15651
15678
  // attached back now.
15652
15679
  this.restoreScroll();
15653
15680
  }
15681
+ this.updateScrollbarClass();
15654
15682
  }
15655
15683
  restoreScroll() { }
15656
15684
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: VirtualHelperBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: PlatformUtil }], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -47186,19 +47214,20 @@ class IgxSelectComponent extends IgxDropDownComponent {
47186
47214
  }
47187
47215
  manageRequiredAsterisk() {
47188
47216
  const hasRequiredHTMLAttribute = this.elementRef.nativeElement.hasAttribute('required');
47217
+ let isRequired = false;
47189
47218
  if (this.ngControl && this.ngControl.control.validator) {
47190
- // Run the validation with empty object to check if required is enabled.
47191
47219
  const error = this.ngControl.control.validator({});
47192
- this.inputGroup.isRequired = error && error.required;
47193
- this.cdr.markForCheck();
47194
- // If validator is dynamically cleared and no required HTML attribute is set,
47195
- // reset label's required class(asterisk) and IgxInputState #6896
47220
+ isRequired = !!(error && error.required);
47196
47221
  }
47197
- else if (this.inputGroup.isRequired && this.ngControl && !this.ngControl.control.validator && !hasRequiredHTMLAttribute) {
47222
+ this.inputGroup.isRequired = isRequired;
47223
+ if (this.input?.nativeElement) {
47224
+ this.input.nativeElement.setAttribute('aria-required', isRequired.toString());
47225
+ }
47226
+ // Handle validator removal case
47227
+ if (!isRequired && !hasRequiredHTMLAttribute) {
47198
47228
  this.input.valid = IgxInputState.INITIAL;
47199
- this.inputGroup.isRequired = false;
47200
- this.cdr.markForCheck();
47201
47229
  }
47230
+ this.cdr.markForCheck();
47202
47231
  }
47203
47232
  setSelection(item) {
47204
47233
  if (item && item.value !== undefined && item.value !== null) {
@@ -68353,7 +68382,7 @@ class IgxGridBaseDirective {
68353
68382
  let sum = 0;
68354
68383
  for (const col of fc) {
68355
68384
  if (col.level === 0) {
68356
- sum += parseInt(col.calcWidth, 10);
68385
+ sum += parseFloat(col.calcWidth);
68357
68386
  }
68358
68387
  }
68359
68388
  if (this.isPinningToStart) {
@@ -69023,7 +69052,7 @@ class IgxGridBaseDirective {
69023
69052
  * @hidden @internal
69024
69053
  */
69025
69054
  hasHorizontalScroll() {
69026
- return this.totalWidth - this.unpinnedWidth > 0 && this.width !== null;
69055
+ return Math.round(this.totalWidth - this.unpinnedWidth) > 0 && this.width !== null;
69027
69056
  }
69028
69057
  /**
69029
69058
  * @hidden @internal
@@ -69059,6 +69088,9 @@ class IgxGridBaseDirective {
69059
69088
  // TODO: do not remove this, as it is used in rowEditTemplate, but mark is as internal and hidden
69060
69089
  /* blazorCSSuppress */
69061
69090
  endEdit(commit = true, event) {
69091
+ if (!this.crudService.cellInEditMode && !this.crudService.rowInEditMode) {
69092
+ return;
69093
+ }
69062
69094
  const document = this.nativeElement?.getRootNode();
69063
69095
  const focusWithin = this.nativeElement?.contains(document.activeElement);
69064
69096
  const success = this.crudService.endEdit(commit, event);
@@ -73337,7 +73369,9 @@ class IgxGridCellComponent {
73337
73369
  modal: false,
73338
73370
  positionStrategy: new AutoPositionStrategy({
73339
73371
  horizontalStartPoint: HorizontalAlignment.Center,
73340
- horizontalDirection: HorizontalAlignment.Center
73372
+ horizontalDirection: HorizontalAlignment.Center,
73373
+ openAnimation: useAnimation(scaleInCenter, { params: { duration: '150ms' } }),
73374
+ closeAnimation: useAnimation(fadeOut, { params: { duration: '75ms' } })
73341
73375
  })
73342
73376
  });
73343
73377
  }
@@ -73377,6 +73411,10 @@ class IgxGridCellComponent {
73377
73411
  this.highlight.lastSearchInfo.caseSensitive = this.grid.lastSearchInfo.caseSensitive;
73378
73412
  this.highlight.lastSearchInfo.exactMatch = this.grid.lastSearchInfo.exactMatch;
73379
73413
  }
73414
+ const isInEdit = this.grid.rowEditable ? this.row.inEditMode : this.editMode;
73415
+ if (this.formControl && this.formControl.value !== changes.value.currentValue && !isInEdit) {
73416
+ this.formControl.setValue(changes.value.currentValue);
73417
+ }
73380
73418
  }
73381
73419
  }
73382
73420
  /**
@@ -77637,8 +77675,8 @@ class IgxPivotRowComponent extends IgxRowDirective {
77637
77675
  keyValueMap.set(dim.memberName, path.shift());
77638
77676
  }
77639
77677
  let pivotValue;
77640
- if (this.grid.hasMultipleValues) {
77641
- pivotValue = this.grid.values.find(x => x.member === path.shift());
77678
+ if (this.grid.hasMultipleValues && path.length) {
77679
+ pivotValue = this.grid.values.find(x => x.member === path[0]);
77642
77680
  }
77643
77681
  else {
77644
77682
  pivotValue = this.grid.values ? this.grid.values[0] : undefined;