igniteui-angular 19.0.1 → 19.0.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 (45) hide show
  1. package/README.md +2 -1
  2. package/fesm2022/igniteui-angular.mjs +190 -163
  3. package/fesm2022/igniteui-angular.mjs.map +1 -1
  4. package/lib/carousel/carousel.component.d.ts +2 -1
  5. package/lib/checkbox/checkbox.component.d.ts +4 -5
  6. package/lib/core/styles/components/avatar/_avatar-theme.scss +1 -31
  7. package/lib/core/styles/components/card/_card-theme.scss +1 -1
  8. package/lib/core/styles/components/combo/_combo-theme.scss +22 -8
  9. package/lib/core/styles/components/input/_input-group-theme.scss +5 -2
  10. package/lib/core/utils.d.ts +2 -0
  11. package/lib/directives/drag-drop/drag-drop.directive.d.ts +1 -0
  12. package/lib/icon/icon.component.d.ts +1 -17
  13. package/lib/icon/icon.service.d.ts +7 -4
  14. package/lib/icon/types.d.ts +3 -1
  15. package/lib/input-group/input-group.component.d.ts +8 -10
  16. package/lib/services/public_api.d.ts +1 -0
  17. package/lib/services/theme/theme.token.d.ts +24 -0
  18. package/package.json +1 -1
  19. package/styles/igniteui-angular-dark.css +1 -1
  20. package/styles/igniteui-angular.css +1 -1
  21. package/styles/igniteui-bootstrap-dark.css +1 -1
  22. package/styles/igniteui-bootstrap-light.css +1 -1
  23. package/styles/igniteui-dark-green.css +1 -1
  24. package/styles/igniteui-fluent-dark-excel.css +1 -1
  25. package/styles/igniteui-fluent-dark-word.css +1 -1
  26. package/styles/igniteui-fluent-dark.css +1 -1
  27. package/styles/igniteui-fluent-light-excel.css +1 -1
  28. package/styles/igniteui-fluent-light-word.css +1 -1
  29. package/styles/igniteui-fluent-light.css +1 -1
  30. package/styles/igniteui-indigo-dark.css +1 -1
  31. package/styles/igniteui-indigo-light.css +1 -1
  32. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  33. package/styles/maps/igniteui-angular.css.map +1 -1
  34. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  35. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  36. package/styles/maps/igniteui-dark-green.css.map +1 -1
  37. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  38. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  39. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  40. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  41. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  42. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  43. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  44. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  45. package/lib/services/theme/theme.service.d.ts +0 -27
@@ -43,6 +43,7 @@ export declare class IgxCarouselComponent extends IgxCarouselComponentBase imple
43
43
  private iterableDiffers;
44
44
  private platformUtil;
45
45
  private dir;
46
+ private document;
46
47
  /**
47
48
  * Sets the `id` of the carousel.
48
49
  * If not set, the `id` of the first carousel component will be `"igx-carousel-0"`.
@@ -418,7 +419,7 @@ export declare class IgxCarouselComponent extends IgxCarouselComponentBase imple
418
419
  * @memberof IgxCarouselComponent
419
420
  */
420
421
  set interval(value: number);
421
- constructor(cdr: ChangeDetectorRef, element: ElementRef, iterableDiffers: IterableDiffers, animationService: AnimationService, platformUtil: PlatformUtil, dir: IgxDirectionality);
422
+ constructor(cdr: ChangeDetectorRef, element: ElementRef, iterableDiffers: IterableDiffers, animationService: AnimationService, platformUtil: PlatformUtil, dir: IgxDirectionality, document: any);
422
423
  /** @hidden */
423
424
  onKeydownArrowRight(event: any): void;
424
425
  /** @hidden */
@@ -3,7 +3,7 @@ import { ControlValueAccessor, NgControl } from '@angular/forms';
3
3
  import { IBaseEventArgs } from '../core/utils';
4
4
  import { EditorProvider } from '../core/edit-provider';
5
5
  import { Subject } from 'rxjs';
6
- import { IgxTheme, ThemeService } from '../services/theme/theme.service';
6
+ import { IgxTheme, ThemeToken } from '../services/theme/theme.token';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare const LabelPosition: {
9
9
  BEFORE: "before";
@@ -39,7 +39,7 @@ export interface IChangeCheckboxEventArgs extends IBaseEventArgs {
39
39
  export declare class IgxCheckboxComponent implements EditorProvider, AfterViewInit, ControlValueAccessor {
40
40
  protected cdr: ChangeDetectorRef;
41
41
  protected renderer: Renderer2;
42
- protected themeService: ThemeService;
42
+ protected themeToken: ThemeToken;
43
43
  ngControl: NgControl;
44
44
  /**
45
45
  * An event that is emitted after the checkbox state is changed.
@@ -380,10 +380,9 @@ export declare class IgxCheckboxComponent implements EditorProvider, AfterViewIn
380
380
  */
381
381
  private _required;
382
382
  private elRef;
383
- private _theme$;
384
- private _subscription;
385
383
  private destroyRef;
386
- constructor(cdr: ChangeDetectorRef, renderer: Renderer2, themeService: ThemeService, ngControl: NgControl);
384
+ constructor(cdr: ChangeDetectorRef, renderer: Renderer2, themeToken: ThemeToken, ngControl: NgControl);
385
+ private setComponentTheme;
387
386
  /**
388
387
  * @hidden
389
388
  * @internal
@@ -68,23 +68,7 @@
68
68
  @include css-vars($theme);
69
69
 
70
70
  $variant: map.get($theme, '_meta', 'variant');
71
- $bootstrap-theme: $variant == 'bootstrap';
72
- $box-shadow: map.get((
73
- 'material': null,
74
- 'fluent': null,
75
- 'bootstrap': 0 0 0 rem(3px) var-get($theme, 'background'),
76
- 'indigo': null,
77
- ), $variant);
78
-
79
- %igx-avatar-outline {
80
- position: absolute;
81
- content: '';
82
- width: 100%;
83
- height: 100%;
84
- border-radius: inherit;
85
- opacity: .5;
86
- }
87
-
71
+
88
72
  %igx-avatar-display {
89
73
  @include sizable();
90
74
 
@@ -114,20 +98,6 @@
114
98
  --component-size: 1;
115
99
  }
116
100
  }
117
-
118
- &::after {
119
- box-shadow: none;
120
-
121
- @if $bootstrap-theme {
122
- @extend %igx-avatar-outline;
123
- }
124
-
125
- transition: box-shadow .15s $in-out-quad;
126
- }
127
-
128
- &:focus::after {
129
- box-shadow: $box-shadow;
130
- }
131
101
  }
132
102
 
133
103
  %igx-avatar-image {
@@ -450,7 +450,7 @@
450
450
  }
451
451
  }
452
452
 
453
- %igx-card-content > * {
453
+ %igx-card-content > *:not(igx-icon) {
454
454
  @include type-style($content) {
455
455
  margin: 0;
456
456
  }
@@ -95,6 +95,20 @@
95
95
 
96
96
  $variant: map.get($theme, '_meta', 'variant');
97
97
 
98
+ $search-input-inline-padding: map.get((
99
+ 'material': pad-inline(rem(4px), rem(8px), rem(16px)),
100
+ 'fluent': pad-inline(rem(2px), rem(4px), rem(8px)),
101
+ 'bootstrap': pad-inline(rem(4px), rem(8px), rem(16px)),
102
+ 'indigo': pad-inline(rem(12px))
103
+ ), $variant);
104
+
105
+ $search-input-block-padding: map.get((
106
+ 'material': pad-inline(rem(8px)),
107
+ 'fluent': pad-inline(rem(2px), rem(4px), rem(8px)),
108
+ 'bootstrap': pad-inline(rem(8px)),
109
+ 'indigo': pad-inline(rem(12px))
110
+ ), $variant);
111
+
98
112
  %igx-combo {
99
113
  position: relative;
100
114
  display: block;
@@ -122,8 +136,8 @@
122
136
  }
123
137
 
124
138
  %igx-combo__search {
125
- padding-inline: if($variant == 'indigo', pad-inline(rem(12px)), pad-inline(rem(16px)));
126
- padding-block: if($variant == 'indigo', pad-block(rem(12px)), pad-block(rem(8px)));
139
+ padding-inline: $search-input-inline-padding;
140
+ padding-block: $search-input-block-padding;
127
141
  margin: 0 !important;
128
142
  z-index: 26;
129
143
  border-bottom: rem(1px) dashed var-get($theme, 'search-separator-border-color');
@@ -134,12 +148,12 @@
134
148
  }
135
149
 
136
150
  .igx-input-group__bundle-main {
137
- padding-inline-start: 0;
151
+ padding-inline: 0;
138
152
  }
139
153
 
140
154
  .igx-input-group__bundle-start,
141
155
  .igx-input-group__bundle-end {
142
- display: none;
156
+ min-width: 0;
143
157
  }
144
158
 
145
159
  igx-input-group {
@@ -150,10 +164,10 @@
150
164
 
151
165
  %igx-combo__case-icon,
152
166
  %igx-combo__case-icon--active {
153
- .igx-icon {
154
- width: rem(16px);
155
- height: rem(16px);
156
- font-size: rem(16px);
167
+ line-height: 0;
168
+
169
+ igx-icon {
170
+ --size: rem(18px);
157
171
  }
158
172
  }
159
173
 
@@ -422,12 +422,15 @@
422
422
  }
423
423
 
424
424
  input,
425
- textarea,
426
- span {
425
+ textarea {
427
426
  font: inherit;
428
427
  margin: 0;
429
428
  }
430
429
 
430
+ span {
431
+ font-family: inherit;
432
+ }
433
+
431
434
  input[type='file'] {
432
435
  @include hide-default();
433
436
  }
@@ -1,5 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
+ import { IgxTheme } from '../services/theme/theme.token';
3
4
  import * as i0 from "@angular/core";
4
5
  /** @hidden @internal */
5
6
  export declare const ELEMENTS_TOKEN: InjectionToken<boolean>;
@@ -314,3 +315,4 @@ export declare function getComponentCssSizeVar(size: string): "var(--ig-size, va
314
315
  * @returns string encoded using the encodeURI function.
315
316
  */
316
317
  export declare function normalizeURI(path: string): string;
318
+ export declare function getComponentTheme(el: Element): IgxTheme;
@@ -467,6 +467,7 @@ export declare class IgxDragDirective implements AfterContentInit, OnDestroy {
467
467
  protected _scrollContainerStepMs: number;
468
468
  protected _scrollContainerThreshold: number;
469
469
  protected _containerScrollIntervalId: any;
470
+ private document;
470
471
  /**
471
472
  * Sets the offset of the dragged element relative to the mouse in pixels.
472
473
  * By default it's taking the relative position to the mouse when the drag started and keeps it the same.
@@ -2,7 +2,6 @@ import { ElementRef, OnInit, OnDestroy, OnChanges, ChangeDetectorRef } from "@an
2
2
  import { IgxIconService } from "./icon.service";
3
3
  import type { IconReference } from "./types";
4
4
  import { SafeHtml } from "@angular/platform-browser";
5
- import { ThemeService } from "../services/theme/theme.service";
6
5
  import * as i0 from "@angular/core";
7
6
  /**
8
7
  * Icon provides a way to include material icons to markup
@@ -29,7 +28,6 @@ import * as i0 from "@angular/core";
29
28
  export declare class IgxIconComponent implements OnInit, OnChanges, OnDestroy {
30
29
  el: ElementRef;
31
30
  private iconService;
32
- private themeService;
33
31
  private ref;
34
32
  private _iconRef;
35
33
  private _destroy$;
@@ -38,20 +36,6 @@ export declare class IgxIconComponent implements OnInit, OnChanges, OnDestroy {
38
36
  protected get elementClasses(): string;
39
37
  private addIconClass;
40
38
  private clearIconClasses;
41
- /**
42
- * This allows you to disable the `aria-hidden` attribute. By default it's applied.
43
- *
44
- * @example
45
- * ```typescript
46
- * @ViewChild("MyIcon") public icon: IgxIconComponent;
47
- * constructor(private cdRef:ChangeDetectorRef) {}
48
- * ngAfterViewInit() {
49
- * this.icon.ariaHidden = false;
50
- * this.cdRef.detectChanges();
51
- * }
52
- * ```
53
- */
54
- ariaHidden: boolean;
55
39
  /**
56
40
  * An accessor that returns inactive property.
57
41
  *
@@ -92,7 +76,7 @@ export declare class IgxIconComponent implements OnInit, OnChanges, OnDestroy {
92
76
  * ```
93
77
  */
94
78
  active: boolean;
95
- constructor(el: ElementRef, iconService: IgxIconService, themeService: ThemeService, ref: ChangeDetectorRef);
79
+ constructor(el: ElementRef, iconService: IgxIconService, ref: ChangeDetectorRef);
96
80
  /**
97
81
  * @hidden
98
82
  * @internal
@@ -1,10 +1,11 @@
1
+ import { DestroyRef } from "@angular/core";
1
2
  import { DomSanitizer, SafeHtml } from "@angular/platform-browser";
2
3
  import { HttpClient } from "@angular/common/http";
3
4
  import { Observable } from "rxjs";
4
5
  import { PlatformUtil } from "../core/utils";
5
6
  import { IconFamily, IconMeta, FamilyMeta } from "./types";
6
7
  import type { IconType, IconReference } from './types';
7
- import { IgxTheme } from "../services/theme/theme.service";
8
+ import { IgxTheme, ThemeToken } from "../services/theme/theme.token";
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * Event emitted when a SVG icon is loaded through
@@ -34,6 +35,8 @@ export declare class IgxIconService {
34
35
  private _sanitizer;
35
36
  private _httpClient;
36
37
  private _platformUtil;
38
+ private _themeToken;
39
+ private _destroyRef;
37
40
  protected document: Document;
38
41
  /**
39
42
  * Observable that emits when an icon is successfully loaded
@@ -51,8 +54,7 @@ export declare class IgxIconService {
51
54
  private _cachedIcons;
52
55
  private _iconLoaded;
53
56
  private _domParser;
54
- private theme;
55
- constructor(_sanitizer: DomSanitizer, _httpClient: HttpClient, _platformUtil: PlatformUtil, document: Document);
57
+ constructor(_sanitizer: DomSanitizer, _httpClient: HttpClient, _platformUtil: PlatformUtil, _themeToken: ThemeToken, _destroyRef: DestroyRef, document: Document);
56
58
  /**
57
59
  * Returns the default font-family.
58
60
  * ```typescript
@@ -102,6 +104,7 @@ export declare class IgxIconService {
102
104
  * ```
103
105
  */
104
106
  addIconRef(name: string, family: string, icon: IconMeta): void;
107
+ private _setIconRef;
105
108
  /**
106
109
  * Similar to addIconRef, but always sets the icon reference meta for an icon in a meta family.
107
110
  * ```typescript
@@ -154,6 +157,6 @@ export declare class IgxIconService {
154
157
  * @hidden
155
158
  */
156
159
  private cacheSvgIcon;
157
- static ɵfac: i0.ɵɵFactoryDeclaration<IgxIconService, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
160
+ static ɵfac: i0.ɵɵFactoryDeclaration<IgxIconService, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
158
161
  static ɵprov: i0.ɵɵInjectableDeclaration<IgxIconService>;
159
162
  }
@@ -1,4 +1,4 @@
1
- import { IgxTheme } from "../services/theme/theme.service";
1
+ import { IgxTheme } from "../services/theme/theme.token";
2
2
  export type IconThemeKey = IgxTheme | 'default';
3
3
  export type IconReferencePair = {
4
4
  alias: IconMeta;
@@ -15,6 +15,8 @@ export interface IconMeta {
15
15
  name: string;
16
16
  family: string;
17
17
  type?: IconType;
18
+ /** @hidden @internal */
19
+ external?: boolean;
18
20
  }
19
21
  export interface FamilyMeta {
20
22
  className: string;
@@ -1,4 +1,4 @@
1
- import { AfterViewChecked, ChangeDetectorRef, ElementRef, OnDestroy, QueryList } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, QueryList } from '@angular/core';
2
2
  import { IInputResourceStrings } from '../core/i18n/input-resources';
3
3
  import { PlatformUtil } from '../core/utils';
4
4
  import { IgxHintDirective } from '../directives/hint/hint.directive';
@@ -7,15 +7,15 @@ import { IgxPrefixDirective } from '../directives/prefix/prefix.directive';
7
7
  import { IgxSuffixDirective } from '../directives/suffix/suffix.directive';
8
8
  import { IgxInputGroupBase } from './input-group.common';
9
9
  import { IgxInputGroupType } from './inputGroupType';
10
- import { IgxTheme, ThemeService } from '../services/theme/theme.service';
10
+ import { IgxTheme, ThemeToken } from '../services/theme/theme.token';
11
11
  import * as i0 from "@angular/core";
12
- export declare class IgxInputGroupComponent implements IgxInputGroupBase, AfterViewChecked, OnDestroy {
12
+ export declare class IgxInputGroupComponent implements IgxInputGroupBase, AfterViewInit {
13
13
  element: ElementRef<HTMLElement>;
14
14
  private _inputGroupType;
15
15
  private document;
16
16
  private platform;
17
17
  private cdr;
18
- private themeService;
18
+ private themeToken;
19
19
  /**
20
20
  * Sets the resource strings.
21
21
  * By default it uses EN resources.
@@ -71,11 +71,10 @@ export declare class IgxInputGroupComponent implements IgxInputGroupBase, AfterV
71
71
  protected _suffixes: QueryList<IgxSuffixDirective>;
72
72
  /** @hidden */
73
73
  protected input: IgxInputDirective;
74
+ private _destroyRef;
74
75
  private _type;
75
76
  private _filled;
76
77
  private _theme;
77
- private _theme$;
78
- private _subscription;
79
78
  private _resourceStrings;
80
79
  /** @hidden */
81
80
  get validClass(): boolean;
@@ -127,7 +126,7 @@ export declare class IgxInputGroupComponent implements IgxInputGroupBase, AfterV
127
126
  * }
128
127
  */
129
128
  get theme(): IgxTheme;
130
- constructor(element: ElementRef<HTMLElement>, _inputGroupType: IgxInputGroupType, document: any, platform: PlatformUtil, cdr: ChangeDetectorRef, themeService: ThemeService);
129
+ constructor(element: ElementRef<HTMLElement>, _inputGroupType: IgxInputGroupType, document: any, platform: PlatformUtil, cdr: ChangeDetectorRef, themeToken: ThemeToken);
131
130
  /** @hidden */
132
131
  onClick(event: MouseEvent): void;
133
132
  /** @hidden */
@@ -253,10 +252,9 @@ export declare class IgxInputGroupComponent implements IgxInputGroupBase, AfterV
253
252
  get filled(): boolean;
254
253
  /** @hidden */
255
254
  set filled(val: boolean);
255
+ private setComponentTheme;
256
256
  /** @hidden @internal */
257
- ngAfterViewChecked(): void;
258
- /** @hidden @internal */
259
- ngOnDestroy(): void;
257
+ ngAfterViewInit(): void;
260
258
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxInputGroupComponent, [null, { optional: true; }, null, null, null, null]>;
261
259
  static ɵcmp: i0.ɵɵComponentDeclaration<IgxInputGroupComponent, "igx-input-group", never, { "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "suppressInputAutofocus": { "alias": "suppressInputAutofocus"; "required": false; }; "type": { "alias": "type"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, ["input", "hints", "_prefixes", "_suffixes"], ["igx-hint, [igxHint]", "[igxLabel]", "[igxInput]", "igx-prefix, [igxPrefix]", "igx-suffix, [igxSuffix]"], true, never>;
262
260
  static ngAcceptInputType_suppressInputAutofocus: unknown;
@@ -15,3 +15,4 @@ export * from './transaction/igx-hierarchical-transaction';
15
15
  export * from './transaction/igx-transaction';
16
16
  export * from './transaction/transaction';
17
17
  export * from './transaction/transaction-factory.service';
18
+ export * from './theme/theme.token';
@@ -0,0 +1,24 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ import { BehaviorSubject } from "rxjs";
3
+ export declare class ThemeToken {
4
+ private t?;
5
+ private document;
6
+ subject: BehaviorSubject<IgxTheme>;
7
+ constructor(t?: IgxTheme);
8
+ onChange(callback: (theme: IgxTheme) => void): import("rxjs").Subscription;
9
+ set(theme: IgxTheme): void;
10
+ get theme(): IgxTheme;
11
+ get preferToken(): boolean;
12
+ }
13
+ export declare const THEME_TOKEN: InjectionToken<ThemeToken>;
14
+ declare const Theme: {
15
+ Material: "material";
16
+ Fluent: "fluent";
17
+ Bootstrap: "bootstrap";
18
+ IndigoDesign: "indigo";
19
+ };
20
+ /**
21
+ * Determines the component theme.
22
+ */
23
+ export type IgxTheme = (typeof Theme)[keyof typeof Theme];
24
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "19.0.1",
3
+ "version": "19.0.3",
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",