igniteui-angular 17.2.4 → 17.2.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 (53) hide show
  1. package/esm2022/lib/card/card.component.mjs +17 -26
  2. package/esm2022/lib/directives/for-of/for_of.directive.mjs +12 -1
  3. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +3 -2
  4. package/esm2022/lib/grids/grid-base.directive.mjs +5 -8
  5. package/esm2022/lib/grids/selection/selection.service.mjs +12 -16
  6. package/esm2022/lib/simple-combo/simple-combo.component.mjs +7 -6
  7. package/esm2022/lib/slider/slider.component.mjs +10 -8
  8. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +6 -2
  9. package/fesm2022/igniteui-angular.mjs +63 -60
  10. package/fesm2022/igniteui-angular.mjs.map +1 -1
  11. package/lib/card/card.component.d.ts +2 -8
  12. package/lib/core/styles/components/bottom-nav/_bottom-nav-theme.scss +24 -12
  13. package/lib/core/styles/components/button/_button-theme.scss +9 -3
  14. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +20 -0
  15. package/lib/core/styles/components/input/_input-group-component.scss +4 -0
  16. package/lib/core/styles/components/input/_input-group-theme.scss +17 -4
  17. package/lib/core/styles/components/overlay/_overlay-theme.scss +6 -0
  18. package/lib/core/styles/components/slider/_slider-theme.scss +27 -2
  19. package/lib/core/styles/components/tree/_tree-theme.scss +4 -0
  20. package/lib/directives/for-of/for_of.directive.d.ts +5 -0
  21. package/lib/slider/slider.component.d.ts +1 -1
  22. package/lib/slider/thumb/thumb-slider.component.d.ts +2 -1
  23. package/migrations/migration-collection.json +5 -0
  24. package/migrations/update-17_2_6/changes/theme-changes.json +11 -0
  25. package/migrations/update-17_2_6/index.d.ts +3 -0
  26. package/migrations/update-17_2_6/index.js +31 -0
  27. package/package.json +1 -1
  28. package/styles/igniteui-angular-dark.css +1 -1
  29. package/styles/igniteui-angular.css +1 -1
  30. package/styles/igniteui-bootstrap-dark.css +1 -1
  31. package/styles/igniteui-bootstrap-light.css +1 -1
  32. package/styles/igniteui-dark-green.css +1 -1
  33. package/styles/igniteui-fluent-dark-excel.css +1 -1
  34. package/styles/igniteui-fluent-dark-word.css +1 -1
  35. package/styles/igniteui-fluent-dark.css +1 -1
  36. package/styles/igniteui-fluent-light-excel.css +1 -1
  37. package/styles/igniteui-fluent-light-word.css +1 -1
  38. package/styles/igniteui-fluent-light.css +1 -1
  39. package/styles/igniteui-indigo-dark.css +1 -1
  40. package/styles/igniteui-indigo-light.css +1 -1
  41. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  42. package/styles/maps/igniteui-angular.css.map +1 -1
  43. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  44. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  45. package/styles/maps/igniteui-dark-green.css.map +1 -1
  46. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  47. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  48. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  49. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  50. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  51. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  52. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  53. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -138,7 +138,6 @@ export declare class IgxCardFooterDirective {
138
138
  * ```
139
139
  */
140
140
  export declare class IgxCardComponent {
141
- private static ngAcceptInputType_elevated;
142
141
  /**
143
142
  * Sets/gets the `id` of the card.
144
143
  * If not set, `id` will have value `"igx-card-0"`;
@@ -181,8 +180,7 @@ export declare class IgxCardComponent {
181
180
  * let cardElevation = this.card.elevated;
182
181
  * ```
183
182
  */
184
- get elevated(): boolean;
185
- set elevated(value: boolean);
183
+ elevated: boolean;
186
184
  /**
187
185
  * Sets the value of the `horizontal` attribute of the card.
188
186
  * Setting this to `true` will make the different card sections align horizontally,
@@ -194,13 +192,9 @@ export declare class IgxCardComponent {
194
192
  * ```
195
193
  */
196
194
  horizontal: boolean;
197
- /**
198
- * @hidden
199
- * @internal
200
- */
201
- private _elevated;
202
195
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxCardComponent, never>;
203
196
  static ɵcmp: i0.ɵɵComponentDeclaration<IgxCardComponent, "igx-card", never, { "id": { "alias": "id"; "required": false; }; "role": { "alias": "role"; "required": false; }; "elevated": { "alias": "elevated"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; }, {}, never, ["*"], true, never>;
197
+ static ngAcceptInputType_elevated: unknown;
204
198
  static ngAcceptInputType_horizontal: unknown;
205
199
  }
206
200
  export declare const IgxCardActionsLayout: {
@@ -61,33 +61,45 @@
61
61
  }
62
62
  }
63
63
 
64
+ @if not($icon-color) and $background {
65
+ @if meta.type-of($background) == 'color' {
66
+ $icon-color: text-contrast($background);
67
+ }
68
+ }
69
+
64
70
  @if not($icon-color) and $label-color {
65
71
  @if meta.type-of($label-color) == 'color' {
66
72
  $icon-color: $label-color;
67
73
  }
68
74
  }
69
75
 
70
- @if not($icon-disabled-color) and $label-disabled-color {
71
- @if meta.type-of($label-disabled-color) == 'color' {
72
- $icon-disabled-color: $label-disabled-color;
76
+ @if not($label-color) and $icon-color {
77
+ @if meta.type-of($icon-color) == 'color' {
78
+ $label-color: $icon-color;
73
79
  }
74
80
  }
75
81
 
76
- @if not($label-disabled-color) and $icon-disabled-color {
77
- @if meta.type-of($icon-disabled-color) == 'color' {
78
- $label-disabled-color: $icon-disabled-color;
82
+ @if not($icon-selected-color) and $label-selected-color {
83
+ @if meta.type-of($label-selected-color) == 'color' {
84
+ $icon-selected-color: $label-selected-color;
79
85
  }
80
86
  }
81
87
 
82
- @if not($icon-selected-color) and $label-selected-color {
83
- @if meta.type-of($background) == 'color' {
84
- $icon-selected-color: $label-selected-color;
88
+ @if not($label-selected-color) and $icon-selected-color {
89
+ @if meta.type-of($icon-selected-color) == 'color' {
90
+ $label-selected-color: $icon-selected-color;
85
91
  }
86
92
  }
87
93
 
88
- @if not($icon-color) and $background {
89
- @if meta.type-of($background) == 'color' {
90
- $icon-color: text-contrast($background);
94
+ @if not($icon-disabled-color) and $label-disabled-color {
95
+ @if meta.type-of($label-disabled-color) == 'color' {
96
+ $icon-disabled-color: $label-disabled-color;
97
+ }
98
+ }
99
+
100
+ @if not($label-disabled-color) and $icon-disabled-color {
101
+ @if meta.type-of($icon-disabled-color) == 'color' {
102
+ $label-disabled-color: $icon-disabled-color;
91
103
  }
92
104
  }
93
105
 
@@ -139,6 +139,12 @@
139
139
  }
140
140
  }
141
141
 
142
+ @if not($icon-color) and $background {
143
+ @if meta.type-of($background) == 'color' {
144
+ $icon-color: text-contrast($background);
145
+ }
146
+ }
147
+
142
148
  @if not($icon-color-hover) and $hover-foreground {
143
149
  @if meta.type-of($hover-background) == 'color' {
144
150
  $icon-color-hover: $hover-foreground;
@@ -577,7 +583,7 @@
577
583
  background: var-get($flat-theme, 'focus-visible-background');
578
584
  color: var-get($flat-theme, 'focus-visible-foreground');
579
585
  border-color: var-get($flat-theme, 'focus-visible-border-color');
580
-
586
+
581
587
  igx-icon {
582
588
  color: var-get($flat-theme, 'icon-color');
583
589
  }
@@ -599,7 +605,7 @@
599
605
  color: var-get($flat-theme, 'focus-foreground');
600
606
  }
601
607
  }
602
-
608
+
603
609
  @if ($variant == 'bootstrap') {
604
610
  box-shadow: 0 0 0 rem(4px) var-get($flat-theme, 'shadow-color');
605
611
  }
@@ -780,7 +786,7 @@
780
786
  map.get($items-gap, 'cosy'),
781
787
  $items-gap-indigo-comfortable
782
788
  );
783
-
789
+
784
790
  &:active {
785
791
  igx-icon {
786
792
  color: var-get($outlined-theme, 'icon-color-hover');
@@ -98,15 +98,35 @@
98
98
  --item-hover-background: #{color($color: 'gray', $variant: 100)};
99
99
  --item-selected-background: #{color($color: 'gray', $variant: 100)};
100
100
  --item-text-color: #{color($color: 'gray', $variant: 700)};
101
+ --item-icon-color: #{color($color: 'gray', $variant: 700)};
101
102
  --item-hover-text-color: #{color($color: 'gray', $variant: 800)};
103
+ --item-hover-icon-color: #{color($color: 'gray', $variant: 800)};
102
104
  --item-selected-text-color: #{if(
103
105
  $variant == 'indigo-design',
104
106
  contrast-color($color: 'surface'),
105
107
  color($color: 'secondary', $variant: 500)
106
108
  )};
109
+ --item-selected-icon-color: #{if(
110
+ $variant == 'indigo-design',
111
+ contrast-color($color: 'surface'),
112
+ color($color: 'secondary', $variant: 500)
113
+ )};
114
+ --item-selected-hover-icon-color: #{if(
115
+ $variant == 'fluent',
116
+ color($color: 'secondary', $variant: 500),
117
+ contrast-color($color: 'gray', $variant: 50)
118
+ )};
107
119
  --item-border-color: transparent;
120
+ --item-hover-border-color: transparent;
121
+ --item-focused-border-color: #{if(
122
+ $variant == 'fluent',
123
+ color($color: 'gray', $variant: 700),
124
+ transparent
125
+ )};
108
126
  --item-selected-border-color: transparent;
127
+ --item-selected-hover-border-color: transparent;
109
128
  --item-disabled-border: transparent;
129
+ --disabled-selected-border-color: transparent;
110
130
  }
111
131
 
112
132
  @include tree(tree-theme(
@@ -137,6 +137,10 @@
137
137
  @extend %textarea-group--outlined !optional;
138
138
  }
139
139
 
140
+ @include mx(textarea-group, box) {
141
+ @extend %textarea-group--box !optional;
142
+ }
143
+
140
144
  @include mx(textarea-group, focused) {
141
145
  @include e(label) {
142
146
  @extend %textarea-group-label--focused !optional;
@@ -1014,11 +1014,24 @@
1014
1014
  }
1015
1015
  }
1016
1016
 
1017
- %form-group-textarea-label {
1018
- transition-duration: 0ms;
1019
- }
1020
-
1021
1017
  @if $material-theme {
1018
+ %form-group-textarea-label {
1019
+ top: calc($input-top-padding - #{rem(1px)});
1020
+ margin-block-end: auto;
1021
+ }
1022
+
1023
+ %textarea-group--outlined {
1024
+ %form-group-textarea-label {
1025
+ top: calc($input-top-padding - #{rem(3px)});
1026
+ }
1027
+ }
1028
+
1029
+ %textarea-group--box {
1030
+ %form-group-textarea-label {
1031
+ top: calc($input-top-padding - #{rem(2px)});
1032
+ }
1033
+ }
1034
+
1022
1035
  %textarea-group-label--focused {
1023
1036
  transform: translateY(0);
1024
1037
  top: calc(#{$input-top-padding} / 4);
@@ -102,6 +102,12 @@
102
102
  // WARN: This is a workaround around a bug in Safari.
103
103
  position: absolute;
104
104
  visibility: hidden;
105
+ // width/height/min-width to 0 needed for bug #14303
106
+ width: 0;
107
+ min-width: 0;
108
+ height: 0;
109
+ // needed for bug #14302
110
+ padding: 0 !important;
105
111
  top: 0;
106
112
  left: 0;
107
113
  margin: -1px;
@@ -237,7 +237,7 @@
237
237
  border-radius: border-radius(rem(32px));
238
238
 
239
239
  @if $variant == 'indigo-design' {
240
- border-radius: initial;
240
+ border-radius: border-radius(rem(4px));
241
241
  }
242
242
  }
243
243
 
@@ -290,6 +290,14 @@
290
290
  top: 0;
291
291
  align-items: flex-end;
292
292
  }
293
+
294
+ @if $variant == 'indigo-design' {
295
+ bottom: rem(3px);
296
+
297
+ &%igx-slider__ticks--top {
298
+ top: rem(3px);
299
+ }
300
+ }
293
301
  }
294
302
 
295
303
  %igx-slider__ticks-group {
@@ -303,7 +311,7 @@
303
311
  }
304
312
 
305
313
  &:last-of-type {
306
- margin-inline-start: rem(-1px);
314
+ margin-inline-end: rem(-1px);
307
315
  }
308
316
  }
309
317
 
@@ -330,6 +338,10 @@
330
338
  %igx-slider__ticks--tall {
331
339
  %igx-slider__ticks-label {
332
340
  top: calc(#{$tick-height--tall} + #{$tick-height});
341
+
342
+ @if $variant == 'indigo-design' {
343
+ top: calc(#{$tick-height--tall} + (#{$tick-height} / 2));
344
+ }
333
345
  }
334
346
  }
335
347
 
@@ -348,6 +360,10 @@
348
360
 
349
361
  %igx-slider__ticks-label {
350
362
  top: calc(#{$tick-height--tall} + #{$tick-height});
363
+
364
+ @if $variant == 'indigo-design' {
365
+ top: calc(#{$tick-height--tall} + (#{$tick-height} / 2));
366
+ }
351
367
  }
352
368
  }
353
369
 
@@ -535,6 +551,10 @@
535
551
  display: flex;
536
552
  top: calc(((#{$thumb-label-height}) + rem(20px)) * -1);
537
553
  height: $thumb-label-height;
554
+
555
+ @if $variant == 'indigo-design' {
556
+ top: calc(((#{$thumb-label-height}) + rem(18px)) * -1);
557
+ }
538
558
  }
539
559
 
540
560
  %igx-slider-thumb-label__container {
@@ -561,6 +581,11 @@
561
581
  border-inline-start: rem(10px) solid transparent;
562
582
  border-inline-end: rem(10px) solid transparent;
563
583
  border-top: rem(10px) solid var-get($theme, 'label-background-color');
584
+
585
+ @if $variant == 'indigo-design' {
586
+ top: rem(16px);
587
+ border-top: rem(12px) solid var-get($theme, 'label-background-color');
588
+ }
564
589
  }
565
590
  }
566
591
 
@@ -363,6 +363,10 @@
363
363
  %node-spacer {
364
364
  --component-size: var(--tree-size);
365
365
  --spacer: #{sizable(#{map.get($node-indent, 'compact')}, #{map.get($node-indent, 'cosy')}, #{map.get($node-indent, 'comfortable')})};
366
+
367
+ @if $variant == 'indigo-design' {
368
+ --spacer: #{sizable(24px)};
369
+ }
366
370
  width: var(--spacer);
367
371
  display: inline-block;
368
372
  }
@@ -404,6 +404,11 @@ export declare class IgxForOfDirective<T, U extends T[] = T[]> extends IgxForOfT
404
404
  * Function that is called when scrolling vertically
405
405
  */
406
406
  protected onScroll(event: any): void;
407
+ /**
408
+ * @hidden
409
+ * @internal
410
+ */
411
+ updateScroll(): void;
407
412
  protected updateSizes(): void;
408
413
  /**
409
414
  * @hidden
@@ -640,7 +640,7 @@ export declare class IgxSliderComponent implements ControlValueAccessor, EditorP
640
640
  */
641
641
  private normalizeByStep;
642
642
  private updateTrack;
643
- private subscribeTo;
643
+ private subscribeToEvents;
644
644
  private unsubscriber;
645
645
  private hasValueChanged;
646
646
  private emitValueChange;
@@ -22,6 +22,7 @@ export declare class IgxSliderThumbComponent implements OnInit, OnDestroy {
22
22
  deactiveState: boolean;
23
23
  thumbValueChange: EventEmitter<number>;
24
24
  thumbChange: EventEmitter<any>;
25
+ thumbBlur: EventEmitter<void>;
25
26
  hoverChange: EventEmitter<boolean>;
26
27
  tabindex: number;
27
28
  zIndex: number;
@@ -73,7 +74,7 @@ export declare class IgxSliderThumbComponent implements OnInit, OnDestroy {
73
74
  private stepToProceed;
74
75
  private toggleThumbIndicators;
75
76
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxSliderThumbComponent, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<IgxSliderThumbComponent, "igx-thumb", never, { "value": { "alias": "value"; "required": false; }; "continuous": { "alias": "continuous"; "required": false; }; "thumbLabelVisibilityDuration": { "alias": "thumbLabelVisibilityDuration"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "onPan": { "alias": "onPan"; "required": false; }; "stepDistance": { "alias": "stepDistance"; "required": false; }; "step": { "alias": "step"; "required": false; }; "templateRef": { "alias": "templateRef"; "required": false; }; "context": { "alias": "context"; "required": false; }; "type": { "alias": "type"; "required": false; }; "deactiveState": { "alias": "deactiveState"; "required": false; }; }, { "thumbValueChange": "thumbValueChange"; "thumbChange": "thumbChange"; "hoverChange": "hoverChange"; }, never, never, true, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<IgxSliderThumbComponent, "igx-thumb", never, { "value": { "alias": "value"; "required": false; }; "continuous": { "alias": "continuous"; "required": false; }; "thumbLabelVisibilityDuration": { "alias": "thumbLabelVisibilityDuration"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "onPan": { "alias": "onPan"; "required": false; }; "stepDistance": { "alias": "stepDistance"; "required": false; }; "step": { "alias": "step"; "required": false; }; "templateRef": { "alias": "templateRef"; "required": false; }; "context": { "alias": "context"; "required": false; }; "type": { "alias": "type"; "required": false; }; "deactiveState": { "alias": "deactiveState"; "required": false; }; }, { "thumbValueChange": "thumbValueChange"; "thumbChange": "thumbChange"; "thumbBlur": "thumbBlur"; "hoverChange": "hoverChange"; }, never, never, true, never>;
77
78
  static ngAcceptInputType_continuous: unknown;
78
79
  static ngAcceptInputType_disabled: unknown;
79
80
  static ngAcceptInputType_deactiveState: unknown;
@@ -186,6 +186,11 @@
186
186
  "version": "17.2.3",
187
187
  "description": "Updates Ignite UI for Angular from v17.2.2 to v17.2.3",
188
188
  "factory": "./update-17_2_3"
189
+ },
190
+ "migration-38": {
191
+ "version": "17.2.6",
192
+ "description": "Updates Ignite UI for Angular from v17.2.3 to v17.2.6",
193
+ "factory": "./update-17_2_6"
189
194
  }
190
195
  }
191
196
  }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "../../common/schema/theme-changes.schema.json",
3
+ "changes": [
4
+ {
5
+ "name": "$active-item-color",
6
+ "replaceWith": "$icon-selected-color",
7
+ "owner": "bottom-nav-theme",
8
+ "type": "property"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ import { Rule } from "@angular-devkit/schematics";
2
+ declare const _default: () => Rule;
3
+ export default _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const UpdateChanges_1 = require("../common/UpdateChanges");
13
+ const version = "17.2.6";
14
+ exports.default = () => (host, context) => __awaiter(void 0, void 0, void 0, function* () {
15
+ context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
16
+ const update = new UpdateChanges_1.UpdateChanges(__dirname, host, context);
17
+ update.addValueTransform('vertical_to_orientation', (args) => {
18
+ args.bindingType = UpdateChanges_1.InputPropertyType.STRING;
19
+ switch (args.value) {
20
+ case 'true':
21
+ args.value = 'vertical';
22
+ break;
23
+ case 'false':
24
+ args.value = 'horizontal';
25
+ break;
26
+ default:
27
+ args.value += ` ? 'vertical' : 'horizontal' `;
28
+ }
29
+ });
30
+ update.applyChanges();
31
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "17.2.4",
3
+ "version": "17.2.6",
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",