igniteui-angular 18.2.24 → 18.2.26

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 (39) hide show
  1. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +9 -8
  2. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +20 -1
  3. package/esm2022/lib/services/excel/excel-files.mjs +5 -3
  4. package/esm2022/lib/services/exporter-common/base-export-service.mjs +47 -33
  5. package/fesm2022/igniteui-angular.mjs +79 -44
  6. package/fesm2022/igniteui-angular.mjs.map +1 -1
  7. package/lib/core/styles/components/input/_input-group-component.scss +2 -1
  8. package/lib/core/styles/components/input/_input-group-theme.scss +53 -5
  9. package/lib/core/styles/components/stepper/_stepper-theme.scss +8 -1
  10. package/lib/core/styles/components/tabs/_tabs-theme.scss +17 -14
  11. package/lib/directives/tooltip/tooltip.directive.d.ts +11 -2
  12. package/lib/services/exporter-common/base-export-service.d.ts +3 -0
  13. package/package.json +2 -2
  14. package/styles/igniteui-angular-dark.css +1 -1
  15. package/styles/igniteui-angular.css +1 -1
  16. package/styles/igniteui-bootstrap-dark.css +1 -1
  17. package/styles/igniteui-bootstrap-light.css +1 -1
  18. package/styles/igniteui-dark-green.css +1 -1
  19. package/styles/igniteui-fluent-dark-excel.css +1 -1
  20. package/styles/igniteui-fluent-dark-word.css +1 -1
  21. package/styles/igniteui-fluent-dark.css +1 -1
  22. package/styles/igniteui-fluent-light-excel.css +1 -1
  23. package/styles/igniteui-fluent-light-word.css +1 -1
  24. package/styles/igniteui-fluent-light.css +1 -1
  25. package/styles/igniteui-indigo-dark.css +1 -1
  26. package/styles/igniteui-indigo-light.css +1 -1
  27. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  28. package/styles/maps/igniteui-angular.css.map +1 -1
  29. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  30. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  31. package/styles/maps/igniteui-dark-green.css.map +1 -1
  32. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  33. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  34. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  35. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  36. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  37. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  38. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  39. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -51,7 +51,7 @@
51
51
 
52
52
  @include e(input) {
53
53
  @extend %form-group-input !optional;
54
- @extend %chrome-autofill-fix !optional;
54
+ @extend %autofill-background-fix !optional;
55
55
  @extend %edge-clear-icon-fix !optional;
56
56
 
57
57
  &:hover {
@@ -403,6 +403,7 @@
403
403
 
404
404
  // Type border START
405
405
  @include m(border) {
406
+ @extend %form-group-display--border !optional;
406
407
  @extend %form-group-display--no-margin !optional;
407
408
 
408
409
  @include e(bundle) {
@@ -393,6 +393,25 @@
393
393
  }
394
394
  }
395
395
 
396
+ @if $variant == 'material' {
397
+ %form-group-display--border {
398
+ &:has(input:-webkit-autofill, input:autofill) {
399
+ %igx-input-group__notch--border {
400
+ border-block-start-color: transparent;
401
+ }
402
+
403
+ %form-group-label {
404
+ --label-position: #{sizable(18px, 22px, 26px)};
405
+
406
+ transform: translateY(calc(var(--label-position) * -1));
407
+ margin-top: 0;
408
+ overflow: hidden;
409
+ will-change: font-size, color, transform;
410
+ }
411
+ }
412
+ }
413
+ }
414
+
396
415
  %form-group-display--box {
397
416
  %form-group-border {
398
417
  margin-bottom: 0;
@@ -463,6 +482,20 @@
463
482
  --size: var(--input-icon) !important;
464
483
  }
465
484
  }
485
+
486
+ @if $variant == 'material' {
487
+ &:not(%form-group-display--border) {
488
+ &:has(input:-webkit-autofill, input:autofill) {
489
+ %form-group-label {
490
+ --floating-label-position: -73%;
491
+
492
+ @include type-style('caption');
493
+
494
+ transform: translateY(var(--floating-label-position));
495
+ }
496
+ }
497
+ }
498
+ }
466
499
  }
467
500
 
468
501
  %form-group-placeholder {
@@ -1179,13 +1212,20 @@
1179
1212
  }
1180
1213
  }
1181
1214
 
1182
- %chrome-autofill-fix {
1215
+ // This is a hack that removes the autofill background and it's essential,
1216
+ // otherwise the background is on top of the floating label in material theme.
1217
+ // The !important flag is because bootstrap theme(and potentially feature themes) is overriding the transition delay.
1218
+ %autofill-background-fix {
1183
1219
  &:-webkit-autofill,
1184
1220
  &:-webkit-autofill:hover,
1185
1221
  &:-webkit-autofill:focus,
1186
- &:-webkit-autofill:active {
1187
- -webkit-transition-delay: 99999s;
1188
- transition-delay: 99999s;
1222
+ &:-webkit-autofill:active,
1223
+ &:autofill,
1224
+ &:autofill:hover,
1225
+ &:autofill:focus,
1226
+ &:autofill:active, {
1227
+ -webkit-transition-delay: 99999s !important;
1228
+ transition-delay: 99999s !important;
1189
1229
  }
1190
1230
  }
1191
1231
 
@@ -1980,7 +2020,15 @@
1980
2020
  map.get($bootstrap-inline-padding, 'cosy'),
1981
2021
  map.get($bootstrap-inline-padding, 'comfortable')
1982
2022
  );
1983
- transition: box-shadow .15s ease-out, border .15s ease-out;
2023
+ }
2024
+
2025
+ // The :not selector is needed otherwise bootstrap will override the %autofill-background-fix
2026
+ %form-group-display--bootstrap {
2027
+ :not(:has(input:-webkit-autofill, input:autofill)) {
2028
+ %bootstrap-input {
2029
+ transition: box-shadow .15s ease-out, border .15s ease-out;
2030
+ }
2031
+ }
1984
2032
  }
1985
2033
 
1986
2034
  %bootstrap-input,
@@ -502,7 +502,14 @@
502
502
 
503
503
  &:hover {
504
504
  background: var-get($theme, 'step-hover-background');
505
- color: var-get($theme, 'title-hover-color');
505
+
506
+ %igx-stepper__step-title {
507
+ color: var-get($theme, 'title-hover-color');
508
+ }
509
+
510
+ %igx-stepper__step-subtitle {
511
+ color: var-get($theme, 'subtitle-hover-color');
512
+ }
506
513
  }
507
514
 
508
515
  @if $variant != material {
@@ -187,6 +187,7 @@
187
187
  button-ripple-color: $button-ripple-color,
188
188
  border-color: $border-color,
189
189
  border-radius: $border-radius,
190
+ border-color--hover: $border-color--hover,
190
191
  theme: map.get($schema, '_meta', 'theme'),
191
192
  _meta: map.merge(if($meta, $meta, ()), (
192
193
  variant: map.get($schema, '_meta', 'theme'),
@@ -267,6 +268,21 @@
267
268
  }
268
269
  }
269
270
  }
271
+
272
+ @if $bootstrap-theme {
273
+ position: relative;
274
+
275
+ &::after {
276
+ content: '';
277
+ position: absolute;
278
+ bottom: 0;
279
+ inset-inline-start: 0;
280
+ width: 100%;
281
+ height: rem(1px);
282
+ background: var-get($theme, 'border-color');
283
+ z-index: 0;
284
+ }
285
+ }
270
286
  }
271
287
 
272
288
  %tabs-header-content {
@@ -278,19 +294,6 @@
278
294
  %tabs-header-wrapper {
279
295
  position: relative;
280
296
  flex-grow: 1;
281
-
282
- @if $bootstrap-theme {
283
- &::after {
284
- content: '';
285
- position: absolute;
286
- bottom: 0;
287
- inset-inline-start: 0;
288
- width: 100%;
289
- height: rem(1px);
290
- background: var-get($theme, 'border-color');
291
- z-index: 0;
292
- }
293
- }
294
297
  }
295
298
 
296
299
  %tabs-header-scroll {
@@ -454,7 +457,7 @@
454
457
  &:focus {
455
458
  border-top: rem(1px) solid transparent;
456
459
  border-inline: none;
457
- border-bottom: rem(1px) solid var-get($theme, 'border-color');
460
+ border-bottom: rem(1px) solid var-get($theme, 'border-color--hover');
458
461
  }
459
462
 
460
463
  igx-icon {
@@ -1,8 +1,9 @@
1
- import { ElementRef, ChangeDetectorRef } from '@angular/core';
1
+ import { ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { IgxOverlayService } from '../../services/overlay/overlay';
3
3
  import { OverlaySettings } from '../../services/public_api';
4
4
  import { IgxNavigationService } from '../../core/navigation';
5
5
  import { IgxToggleDirective } from '../toggle/toggle.directive';
6
+ import { IgxTooltipTargetDirective } from './tooltip-target.directive';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * **Ignite UI for Angular Tooltip** -
@@ -18,7 +19,7 @@ import * as i0 from "@angular/core";
18
19
  * <span #tooltipRef="tooltip" igxTooltip>Hello there, I am a tooltip!</span>
19
20
  * ```
20
21
  */
21
- export declare class IgxTooltipDirective extends IgxToggleDirective {
22
+ export declare class IgxTooltipDirective extends IgxToggleDirective implements OnDestroy {
22
23
  /**
23
24
  * @hidden
24
25
  */
@@ -74,8 +75,15 @@ export declare class IgxTooltipDirective extends IgxToggleDirective {
74
75
  * Returns whether open time out has started
75
76
  */
76
77
  toBeShown: boolean;
78
+ /**
79
+ * @hidden
80
+ */
81
+ tooltipTarget: IgxTooltipTargetDirective;
82
+ private _destroy$;
77
83
  /** @hidden */
78
84
  constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, overlayService: IgxOverlayService, navigationService: IgxNavigationService);
85
+ /** @hidden */
86
+ ngOnDestroy(): void;
79
87
  /**
80
88
  * If there is open animation in progress this method will finish is.
81
89
  * If there is no open animation in progress this method will open the toggle with no animation.
@@ -90,6 +98,7 @@ export declare class IgxTooltipDirective extends IgxToggleDirective {
90
98
  * @param overlaySettings settings to use for closing the toggle
91
99
  */
92
100
  protected forceClose(overlaySettings?: OverlaySettings): void;
101
+ private onDocumentTouchStart;
93
102
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxTooltipDirective, [null, null, null, { optional: true; }]>;
94
103
  static ɵdir: i0.ɵɵDirectiveDeclaration<IgxTooltipDirective, "[igxTooltip]", ["tooltip"], { "context": { "alias": "context"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never>;
95
104
  }
@@ -199,6 +199,9 @@ export declare abstract class IgxBaseExporter {
199
199
  private addPivotRowHeaders;
200
200
  private addPivotGridColumns;
201
201
  private preparePivotGridColumns;
202
+ private groupByKeys;
203
+ private calculateRowSpan;
204
+ private createRowDimension;
202
205
  private addLevelColumns;
203
206
  private addLevelData;
204
207
  private resetDefaults;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "18.2.24",
3
+ "version": "18.2.26",
4
4
  "description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
5
5
  "author": "Infragistics",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -74,7 +74,7 @@
74
74
  "igniteui-trial-watermark": "^3.0.2",
75
75
  "lodash-es": "^4.17.21",
76
76
  "uuid": "^9.0.0",
77
- "igniteui-theming": "^14.2.0",
77
+ "igniteui-theming": "^14.2.1",
78
78
  "@igniteui/material-icons-extended": "^3.0.0"
79
79
  },
80
80
  "peerDependencies": {