igniteui-angular 20.2.0-alpha.2 → 20.2.0-alpha.3

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 (40) hide show
  1. package/fesm2022/igniteui-angular.mjs +62 -36
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/index.d.ts +20 -10
  4. package/lib/core/styles/components/action-strip/_action-strip-theme.scss +0 -58
  5. package/lib/core/styles/components/carousel/_carousel-theme.scss +12 -11
  6. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +4 -10
  7. package/lib/core/styles/components/combo/_combo-theme.scss +23 -1
  8. package/lib/core/styles/components/date-range-picker/_date-range-picker-theme.scss +9 -4
  9. package/lib/core/styles/components/grid/_pivot-data-selector-theme.scss +0 -25
  10. package/lib/core/styles/components/input/_file-input-theme.scss +0 -82
  11. package/lib/core/styles/components/input/_input-group-theme.scss +70 -70
  12. package/lib/core/styles/components/time-picker/_time-picker-theme.scss +15 -1
  13. package/lib/core/styles/typography/_bootstrap.scss +3 -1
  14. package/package.json +2 -2
  15. package/styles/igniteui-angular-dark.css +1 -1
  16. package/styles/igniteui-angular.css +1 -1
  17. package/styles/igniteui-bootstrap-dark.css +1 -1
  18. package/styles/igniteui-bootstrap-light.css +1 -1
  19. package/styles/igniteui-dark-green.css +1 -1
  20. package/styles/igniteui-fluent-dark-excel.css +1 -1
  21. package/styles/igniteui-fluent-dark-word.css +1 -1
  22. package/styles/igniteui-fluent-dark.css +1 -1
  23. package/styles/igniteui-fluent-light-excel.css +1 -1
  24. package/styles/igniteui-fluent-light-word.css +1 -1
  25. package/styles/igniteui-fluent-light.css +1 -1
  26. package/styles/igniteui-indigo-dark.css +1 -1
  27. package/styles/igniteui-indigo-light.css +1 -1
  28. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  29. package/styles/maps/igniteui-angular.css.map +1 -1
  30. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  31. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  32. package/styles/maps/igniteui-dark-green.css.map +1 -1
  33. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  34. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  35. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  36. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  37. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  38. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  39. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  40. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -1064,6 +1064,9 @@ class IgxSorting {
1064
1064
  prepareExpressions(expressions, grid) {
1065
1065
  const multipleSortingExpressions = [];
1066
1066
  for (const expr of expressions) {
1067
+ if (expr.dir === SortingDirection.None) {
1068
+ continue;
1069
+ }
1067
1070
  if (!expr.strategy) {
1068
1071
  expr.strategy = DefaultSortingStrategy.instance();
1069
1072
  }
@@ -10261,6 +10264,9 @@ class IgxInputDirective {
10261
10264
  const elTag = this.nativeElement.tagName.toLowerCase();
10262
10265
  if (elTag === 'textarea') {
10263
10266
  this.isTextArea = true;
10267
+ if (this.nativeElement.getAttribute('rows') === null) {
10268
+ this.renderer.setAttribute(this.nativeElement, 'rows', '3');
10269
+ }
10264
10270
  }
10265
10271
  else {
10266
10272
  this.isInput = true;
@@ -21386,6 +21392,8 @@ class IgxTooltipDirective extends IgxToggleDirective {
21386
21392
  this._role = 'tooltip';
21387
21393
  this._destroy$ = new Subject();
21388
21394
  this._document = inject(DOCUMENT);
21395
+ this._renderer = inject(Renderer2);
21396
+ this._platformUtil = inject(PlatformUtil);
21389
21397
  this.onDocumentTouchStart = this.onDocumentTouchStart.bind(this);
21390
21398
  this.opening.pipe(takeUntil$1(this._destroy$)).subscribe(() => {
21391
21399
  this._document.addEventListener('touchstart', this.onDocumentTouchStart, { passive: true });
@@ -21393,7 +21401,12 @@ class IgxTooltipDirective extends IgxToggleDirective {
21393
21401
  this.closed.pipe(takeUntil$1(this._destroy$)).subscribe(() => {
21394
21402
  this._document.removeEventListener('touchstart', this.onDocumentTouchStart);
21395
21403
  });
21396
- this._createArrow();
21404
+ }
21405
+ /** @hidden */
21406
+ ngAfterViewInit() {
21407
+ if (this._platformUtil.isBrowser) {
21408
+ this._createArrow();
21409
+ }
21397
21410
  }
21398
21411
  /** @hidden */
21399
21412
  ngOnDestroy() {
@@ -21401,7 +21414,9 @@ class IgxTooltipDirective extends IgxToggleDirective {
21401
21414
  this._document.removeEventListener('touchstart', this.onDocumentTouchStart);
21402
21415
  this._destroy$.next(true);
21403
21416
  this._destroy$.complete();
21404
- this._removeArrow();
21417
+ if (this.arrow) {
21418
+ this._removeArrow();
21419
+ }
21405
21420
  }
21406
21421
  /**
21407
21422
  * @hidden
@@ -21417,35 +21432,48 @@ class IgxTooltipDirective extends IgxToggleDirective {
21417
21432
  }
21418
21433
  /**
21419
21434
  * If there is an animation in progress, this method will reset it to its initial state.
21420
- * Optional `force` parameter that ends the animation.
21435
+ * Allows hovering over the tooltip while an open/close animation is running.
21436
+ * Stops the animation and immediately shows the tooltip.
21421
21437
  *
21422
21438
  * @hidden
21423
- * @param force if set to `true`, the animation will be ended.
21424
21439
  */
21425
- stopAnimations(force = false) {
21440
+ stopAnimations() {
21426
21441
  const info = this.overlayService.getOverlayById(this._overlayId);
21427
21442
  if (!info)
21428
21443
  return;
21429
21444
  if (info.openAnimationPlayer) {
21430
21445
  info.openAnimationPlayer.reset();
21431
- if (force) {
21432
- info.openAnimationPlayer.finish();
21433
- info.openAnimationPlayer = null;
21434
- }
21435
21446
  }
21436
21447
  if (info.closeAnimationPlayer) {
21437
21448
  info.closeAnimationPlayer.reset();
21438
- if (force) {
21439
- info.closeAnimationPlayer.finish();
21440
- info.closeAnimationPlayer = null;
21441
- }
21449
+ }
21450
+ }
21451
+ /**
21452
+ * If there is a close animation in progress, this method will end it.
21453
+ * If there is no close animation in progress, this method will close the tooltip with no animation.
21454
+ *
21455
+ * @param overlaySettings settings to use for closing the tooltip
21456
+ * @hidden
21457
+ */
21458
+ forceClose(overlaySettings) {
21459
+ const info = this.overlayService.getOverlayById(this._overlayId);
21460
+ if (info && info.closeAnimationPlayer) {
21461
+ info.closeAnimationPlayer.finish();
21462
+ info.closeAnimationPlayer.reset();
21463
+ info.closeAnimationPlayer = null;
21464
+ }
21465
+ else if (!this.collapsed) {
21466
+ const animation = overlaySettings.positionStrategy.settings.closeAnimation;
21467
+ overlaySettings.positionStrategy.settings.closeAnimation = null;
21468
+ this.close();
21469
+ overlaySettings.positionStrategy.settings.closeAnimation = animation;
21442
21470
  }
21443
21471
  }
21444
21472
  _createArrow() {
21445
- this._arrowEl = document.createElement('span');
21446
- this._arrowEl.style.position = 'absolute';
21447
- this._arrowEl.setAttribute('data-arrow', 'true');
21448
- this.element.appendChild(this._arrowEl);
21473
+ this._arrowEl = this._renderer.createElement('span');
21474
+ this._renderer.setStyle(this._arrowEl, 'position', 'absolute');
21475
+ this._renderer.setAttribute(this._arrowEl, 'data-arrow', 'true');
21476
+ this._renderer.appendChild(this.element, this._arrowEl);
21449
21477
  }
21450
21478
  _removeArrow() {
21451
21479
  this._arrowEl.remove();
@@ -21847,7 +21875,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
21847
21875
  * ```
21848
21876
  */
21849
21877
  set hasArrow(value) {
21850
- if (this.target) {
21878
+ if (this.target && this.target.arrow) {
21851
21879
  this.target.arrow.style.display = value ? '' : 'none';
21852
21880
  }
21853
21881
  this._hasArrow = value;
@@ -22133,14 +22161,6 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
22133
22161
  this._hideOnInteraction();
22134
22162
  }
22135
22163
  }
22136
- /**
22137
- * @hidden
22138
- */
22139
- ngOnChanges(changes) {
22140
- if (changes['hasArrow']) {
22141
- this.target.arrow.style.display = changes['hasArrow'].currentValue ? '' : 'none';
22142
- }
22143
- }
22144
22164
  /**
22145
22165
  * @hidden
22146
22166
  */
@@ -22161,6 +22181,14 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
22161
22181
  });
22162
22182
  this.nativeElement.addEventListener('touchstart', this.onTouchStart = this.onTouchStart.bind(this), { passive: true });
22163
22183
  }
22184
+ /**
22185
+ * @hidden
22186
+ */
22187
+ ngAfterViewInit() {
22188
+ if (this.target && this.target.arrow) {
22189
+ this.target.arrow.style.display = this.hasArrow ? '' : 'none';
22190
+ }
22191
+ }
22164
22192
  /**
22165
22193
  * @hidden
22166
22194
  */
@@ -22268,8 +22296,6 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
22268
22296
  }
22269
22297
  /**
22270
22298
  * Used when a single tooltip is used for multiple targets.
22271
- * If the tooltip is shown for one target and the user interacts with another target,
22272
- * the tooltip is instantly hidden for the first target.
22273
22299
  */
22274
22300
  _checkTooltipForMultipleTargets() {
22275
22301
  if (!this.target.tooltipTarget) {
@@ -22281,8 +22307,10 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
22281
22307
  if (this.target.tooltipTarget.sticky) {
22282
22308
  this.target.tooltipTarget._removeCloseButtonFromTooltip();
22283
22309
  }
22310
+ // If the tooltip is shown for one target and the user interacts with another target,
22311
+ // the tooltip is instantly hidden for the first target.
22284
22312
  clearTimeout(this.target.timeoutId);
22285
- this.target.stopAnimations(true);
22313
+ this.target.forceClose(this._mergedOverlaySettings);
22286
22314
  this.target.tooltipTarget = this;
22287
22315
  this._isForceClosed = true;
22288
22316
  }
@@ -22348,7 +22376,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
22348
22376
  }
22349
22377
  }
22350
22378
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxTooltipTargetDirective, deps: [{ token: i0.ElementRef }, { token: IgxNavigationService, optional: true }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Directive }); }
22351
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.6", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", hasArrow: "hasArrow", sticky: "sticky", closeTemplate: ["closeButtonTemplate", "closeTemplate"], positionSettings: "positionSettings", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, exportAs: ["tooltipTarget"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
22379
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.6", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", hasArrow: "hasArrow", sticky: "sticky", closeTemplate: ["closeButtonTemplate", "closeTemplate"], positionSettings: "positionSettings", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, exportAs: ["tooltipTarget"], usesInheritance: true, ngImport: i0 }); }
22352
22380
  }
22353
22381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxTooltipTargetDirective, decorators: [{
22354
22382
  type: Directive,
@@ -94740,12 +94768,10 @@ class IgxSplitterComponent {
94740
94768
  onMoveEnd(delta) {
94741
94769
  let [paneSize, siblingSize] = this.calcNewSizes(delta);
94742
94770
  if (paneSize + siblingSize > this.getTotalSize() && delta < 0) {
94743
- paneSize = this.getTotalSize();
94744
- siblingSize = 0;
94771
+ siblingSize = this.getTotalSize() - paneSize;
94745
94772
  }
94746
94773
  else if (paneSize + siblingSize > this.getTotalSize() && delta > 0) {
94747
- paneSize = 0;
94748
- siblingSize = this.getTotalSize();
94774
+ paneSize = this.getTotalSize() - siblingSize;
94749
94775
  }
94750
94776
  if (this.pane.isPercentageSize) {
94751
94777
  // handle % resizes
@@ -99289,11 +99315,11 @@ class IgxChatComponent {
99289
99315
  };
99290
99316
  }
99291
99317
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.6", type: IgxChatComponent, isStandalone: true, selector: "igx-chat", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, draftMessage: { classPropertyName: "draftMessage", publicName: "draftMessage", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { messageCreated: "messageCreated", attachmentClick: "attachmentClick", attachmentDrag: "attachmentDrag", attachmentDrop: "attachmentDrop", typingChange: "typingChange", inputFocus: "inputFocus", inputBlur: "inputBlur", inputChange: "inputChange" }, ngImport: i0, template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n></igc-chat>\n", styles: ["igc-chat{--igc-chat-height: calc(100vh - 32px) }\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.6", type: IgxChatComponent, isStandalone: true, selector: "igx-chat", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, draftMessage: { classPropertyName: "draftMessage", publicName: "draftMessage", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { messageCreated: "messageCreated", attachmentClick: "attachmentClick", attachmentDrag: "attachmentDrag", attachmentDrop: "attachmentDrop", typingChange: "typingChange", inputFocus: "inputFocus", inputBlur: "inputBlur", inputChange: "inputChange" }, ngImport: i0, template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n>\n <ng-content></ng-content>\n</igc-chat>\n", styles: ["igc-chat{--igc-chat-height: calc(100vh - 32px) }\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99293
99319
  }
99294
99320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgxChatComponent, decorators: [{
99295
99321
  type: Component,
99296
- args: [{ selector: 'igx-chat', changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n></igc-chat>\n", styles: ["igc-chat{--igc-chat-height: calc(100vh - 32px) }\n"] }]
99322
+ args: [{ selector: 'igx-chat', changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n>\n <ng-content></ng-content>\n</igc-chat>\n", styles: ["igc-chat{--igc-chat-height: calc(100vh - 32px) }\n"] }]
99297
99323
  }], ctorParameters: () => [], propDecorators: { messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], draftMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "draftMessage", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], templates: [{ type: i0.Input, args: [{ isSignal: true, alias: "templates", required: false }] }], messageCreated: [{ type: i0.Output, args: ["messageCreated"] }], attachmentClick: [{ type: i0.Output, args: ["attachmentClick"] }], attachmentDrag: [{ type: i0.Output, args: ["attachmentDrag"] }], attachmentDrop: [{ type: i0.Output, args: ["attachmentDrop"] }], typingChange: [{ type: i0.Output, args: ["typingChange"] }], inputFocus: [{ type: i0.Output, args: ["inputFocus"] }], inputBlur: [{ type: i0.Output, args: ["inputBlur"] }], inputChange: [{ type: i0.Output, args: ["inputChange"] }] } });
99298
99324
  class IgxChatMessageContextDirective {
99299
99325
  static ngTemplateContextGuard(_, ctx) {