@progress/kendo-angular-icons 25.0.0-develop.3 → 25.0.0-develop.31

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.
@@ -13,6 +13,7 @@ exports.writeInstructionMarker = writeInstructionMarker;
13
13
  exports.isApiChangeTarget = isApiChangeTarget;
14
14
  exports.isRenderingChangeTarget = isRenderingChangeTarget;
15
15
  exports.executeCodemodTest = executeCodemodTest;
16
+ exports.removeAttributeFromDirectiveHost = removeAttributeFromDirectiveHost;
16
17
  const tslib_1 = require("tslib");
17
18
  /// <reference types="node" />
18
19
  const fs = tslib_1.__importStar(require("fs"));
@@ -1486,3 +1487,17 @@ function executeCodemodTest(codemod, testDir, exampleFileName = 'example.ts', ex
1486
1487
  catch { }
1487
1488
  }
1488
1489
  }
1490
+ function removeAttributeFromDirectiveHost(templateContent, directiveAttr, attrToRemove) {
1491
+ const escapedDirective = directiveAttr.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
1492
+ const escapedAttr = attrToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
1493
+ const boundPattern = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*${escapedDirective}[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
1494
+ const staticPattern = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*${escapedDirective}[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
1495
+ // Also match when the attribute appears before the directive
1496
+ const boundPatternBefore = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*${escapedDirective}[^>]*?>)`, 'gi');
1497
+ const staticPatternBefore = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*${escapedDirective}[^>]*?>)`, 'gi');
1498
+ let result = templateContent.replace(boundPattern, '$1$3');
1499
+ result = result.replace(staticPattern, '$1$3');
1500
+ result = result.replace(boundPatternBefore, '$1$3');
1501
+ result = result.replace(staticPatternBefore, '$1$3');
1502
+ return result;
1503
+ }
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
6
  import { Input, HostBinding, Directive, signal, ChangeDetectionStrategy, Component, computed, isDevMode, Injectable, InjectionToken, Optional, Inject, NgModule } from '@angular/core';
7
- import { isDocumentAvailable, areObjectsEqual } from '@progress/kendo-angular-common';
7
+ import { isDocumentAvailable, areObjectsEqual, KENDO_COMPONENT_NAME } from '@progress/kendo-angular-common';
8
8
  import { validatePackage } from '@progress/kendo-licensing';
9
9
  import * as i1_1 from '@angular/platform-browser';
10
10
  import { Subject, BehaviorSubject, Subscription } from 'rxjs';
@@ -19,8 +19,8 @@ const packageMetadata = {
19
19
  productName: 'Kendo UI for Angular',
20
20
  productCode: 'KENDOUIANGULAR',
21
21
  productCodes: ['KENDOUIANGULAR'],
22
- publishDate: 1783692363,
23
- version: '25.0.0-develop.3',
22
+ publishDate: 1786459506,
23
+ version: '25.0.0-develop.31',
24
24
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
25
25
  };
26
26
 
@@ -91,10 +91,10 @@ class IconBaseDirective {
91
91
  this.renderer = renderer;
92
92
  validatePackage(packageMetadata);
93
93
  }
94
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
95
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: IconBaseDirective, isStandalone: true, selector: "[kendoIconBase]", inputs: { flip: "flip", themeColor: "themeColor", size: "size" }, host: { properties: { "class.k-flip-h": "this.horizontalFlip", "class.k-flip-v": "this.verticalFlip" } }, ngImport: i0 });
94
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
95
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: IconBaseDirective, isStandalone: true, selector: "[kendoIconBase]", inputs: { flip: "flip", themeColor: "themeColor", size: "size" }, host: { properties: { "class.k-flip-h": "this.horizontalFlip", "class.k-flip-v": "this.verticalFlip" } }, ngImport: i0 });
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconBaseDirective, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconBaseDirective, decorators: [{
98
98
  type: Directive,
99
99
  args: [{
100
100
  selector: '[kendoIconBase]'
@@ -150,10 +150,10 @@ class IconComponent extends IconBaseDirective {
150
150
  this.element = element;
151
151
  this.renderer = renderer;
152
152
  }
153
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
154
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: IconComponent, isStandalone: true, selector: "kendo-icon", inputs: { name: "name" }, host: { properties: { "class.k-icon": "this.hostClass", "class.k-font-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoIcon"], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: IconComponent, isStandalone: true, selector: "kendo-icon", inputs: { name: "name" }, host: { properties: { "class.k-icon": "this.hostClass", "class.k-font-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoIcon"], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconComponent, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconComponent, decorators: [{
157
157
  type: Component,
158
158
  args: [{
159
159
  selector: 'kendo-icon',
@@ -275,15 +275,15 @@ class SVGIconComponent extends IconBaseDirective {
275
275
  `);
276
276
  }
277
277
  }
278
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconComponent, deps: [{ token: i1_1.DomSanitizer }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
279
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SVGIconComponent, isStandalone: true, selector: "kendo-svg-icon, kendo-svgicon", inputs: { icon: "icon", variant: "variant" }, host: { properties: { "class.k-svg-icon": "this.hostClass", "class.k-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoSVGIcon"], usesInheritance: true, ngImport: i0, template: `
278
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconComponent, deps: [{ token: i1_1.DomSanitizer }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
279
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: SVGIconComponent, isStandalone: true, selector: "kendo-svg-icon, kendo-svgicon", inputs: { icon: "icon", variant: "variant" }, host: { properties: { "class.k-svg-icon": "this.hostClass", "class.k-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoSVGIcon"], usesInheritance: true, ngImport: i0, template: `
280
280
  @if (visible) {
281
281
  <svg [style.pointerEvents]="'none'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
282
282
  [attr.viewBox]="icon.viewBox" [innerHTML]="content" aria-hidden="true">
283
283
  </svg>
284
284
  }`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
285
285
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconComponent, decorators: [{
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconComponent, decorators: [{
287
287
  type: Component,
288
288
  args: [{
289
289
  exportAs: 'kendoSVGIcon',
@@ -349,25 +349,27 @@ class IconSettingsService {
349
349
  /**
350
350
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
351
351
  * Override in a custom service to provide custom SVG icons.
352
+ * The optional `_component` parameter carries the host component identity (e.g. `'dateinput'`, `'grid'`)
353
+ * so subclasses can return different icons for the same name depending on the requesting component.
352
354
  *
353
- * @hidden
354
355
  */
355
- getSvgIcon(_name) {
356
+ getSvgIcon(_name, _component) {
356
357
  return null;
357
358
  }
358
359
  /**
359
360
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
360
361
  * Override in a custom service to provide classes for custom font icons.
362
+ * The optional `_component` parameter carries the host component identity so subclasses can
363
+ * return different classes for the same key depending on the requesting component.
361
364
  *
362
- * @hidden
363
365
  */
364
- getCustomFontIconClass(_key) {
366
+ getCustomFontIconClass(_key, _component) {
365
367
  return null;
366
368
  }
367
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
368
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService });
369
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
370
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService });
369
371
  }
370
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService, decorators: [{
372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService, decorators: [{
371
373
  type: Injectable
372
374
  }] });
373
375
 
@@ -439,25 +441,45 @@ class IconsService {
439
441
  /**
440
442
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
441
443
  * Override in a custom service to provide custom SVG icons.
444
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
445
+ * falling back to a global (no component) lookup when no level in the chain matches.
442
446
  * @hidden
443
447
  */
444
- getSvgIcon(name) {
445
- const customIcon = this.iconSettingsService && this.iconSettingsService.getSvgIcon(name);
446
- return customIcon;
448
+ getSvgIcon(name, componentChain) {
449
+ if (!this.iconSettingsService) {
450
+ return null;
451
+ }
452
+ for (const component of componentChain ?? []) {
453
+ const scoped = this.iconSettingsService.getSvgIcon(name, component.toLowerCase());
454
+ if (scoped) {
455
+ return scoped;
456
+ }
457
+ }
458
+ return this.iconSettingsService.getSvgIcon(name);
447
459
  }
448
460
  /**
449
461
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
450
462
  * Override in a custom service to provide classes for custom font icons.
463
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
464
+ * falling back to a global (no component) lookup when no level in the chain matches.
451
465
  * @hidden
452
466
  */
453
- getCustomFontIconClass(key) {
454
- const customClass = this.iconSettingsService && this.iconSettingsService.getCustomFontIconClass(key);
455
- return customClass;
467
+ getCustomFontIconClass(key, componentChain) {
468
+ if (!this.iconSettingsService) {
469
+ return null;
470
+ }
471
+ for (const component of componentChain ?? []) {
472
+ const scoped = this.iconSettingsService.getCustomFontIconClass(key, component.toLowerCase());
473
+ if (scoped) {
474
+ return scoped;
475
+ }
476
+ }
477
+ return this.iconSettingsService.getCustomFontIconClass(key);
456
478
  }
457
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, deps: [{ token: ICON_SETTINGS, optional: true }, { token: IconSettingsService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
458
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, providedIn: 'root' });
479
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, deps: [{ token: ICON_SETTINGS, optional: true }, { token: IconSettingsService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
480
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, providedIn: 'root' });
459
481
  }
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, decorators: [{
461
483
  type: Injectable,
462
484
  args: [{
463
485
  providedIn: 'root'
@@ -477,6 +499,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
477
499
  class IconWrapperComponent {
478
500
  iconsService;
479
501
  element;
502
+ componentChain;
480
503
  hostClass = true;
481
504
  /**
482
505
  * Sets the name for an existing font icon in a Kendo UI theme to render.
@@ -518,7 +541,7 @@ class IconWrapperComponent {
518
541
  get iconSettings() { return this._iconSettings(); }
519
542
  // Resolves the effective SVG icon: prefer service-provided icon, then fall back to the svgIcon input.
520
543
  // Extracted from hasSvgIcon getter to avoid writing to a signal inside a reactive context.
521
- _resolvedSvgIcon = computed(() => this.iconsService.getSvgIcon(this._name()) || this._svgIcon(), ...(ngDevMode ? [{ debugName: "_resolvedSvgIcon" }] : []));
544
+ _resolvedSvgIcon = computed(() => this.iconsService.getSvgIcon(this._name(), this.componentChain) || this._svgIcon(), ...(ngDevMode ? [{ debugName: "_resolvedSvgIcon" }] : []));
522
545
  get resolvedSvgIcon() { return this._resolvedSvgIcon(); }
523
546
  get hasSvgIcon() {
524
547
  if (this._resolvedSvgIcon()) {
@@ -545,12 +568,13 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
545
568
  return false;
546
569
  }
547
570
  get customFontIconClass() {
548
- return this.iconsService.getCustomFontIconClass(this.name) || this.customFontClass;
571
+ return this.iconsService.getCustomFontIconClass(this.name, this.componentChain) || this.customFontClass;
549
572
  }
550
573
  subs = new Subscription();
551
- constructor(iconsService, element) {
574
+ constructor(iconsService, element, componentChain) {
552
575
  this.iconsService = iconsService;
553
576
  this.element = element;
577
+ this.componentChain = componentChain;
554
578
  this.subs = iconsService.changes.subscribe(iconSettings => {
555
579
  this._iconSettings.set(iconSettings);
556
580
  });
@@ -558,14 +582,15 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
558
582
  ngOnDestroy() {
559
583
  this.subs.unsubscribe();
560
584
  }
561
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconWrapperComponent, deps: [{ token: IconsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
562
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: IconWrapperComponent, isStandalone: true, selector: "kendo-icon-wrapper", inputs: { name: "name", svgIcon: "svgIcon", innerCssClass: "innerCssClass", customFontClass: "customFontClass", size: "size" }, host: { properties: { "class.k-icon-wrapper-host": "this.hostClass" } }, exportAs: ["kendoIconWrapper"], ngImport: i0, template: `
585
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconWrapperComponent, deps: [{ token: IconsService }, { token: i0.ElementRef }, { token: KENDO_COMPONENT_NAME, optional: true }], target: i0.ɵɵFactoryTarget.Component });
586
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: IconWrapperComponent, isStandalone: true, selector: "kendo-icon-wrapper", inputs: { name: "name", svgIcon: "svgIcon", innerCssClass: "innerCssClass", customFontClass: "customFontClass", size: "size" }, host: { properties: { "class.k-icon-wrapper-host": "this.hostClass" } }, exportAs: ["kendoIconWrapper"], ngImport: i0, template: `
563
587
  @if (iconSettings?.type === 'svg' && hasSvgIcon) {
564
588
  <kendo-svgicon
565
589
  [ngClass]="innerCssClass"
566
590
  [icon]="resolvedSvgIcon"
567
591
  [size]="size || iconSettings?.size"
568
592
  [themeColor]="iconSettings?.themeColor"
593
+ [variant]="iconSettings?.variant"
569
594
  [flip]="iconSettings?.flip"></kendo-svgicon>
570
595
  } @else {
571
596
  @if (!customFontIconClass) {
@@ -581,7 +606,7 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
581
606
  }
582
607
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }, { kind: "component", type: SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon", "variant"], exportAs: ["kendoSVGIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
583
608
  }
584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconWrapperComponent, decorators: [{
609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconWrapperComponent, decorators: [{
585
610
  type: Component,
586
611
  args: [{
587
612
  selector: 'kendo-icon-wrapper',
@@ -593,6 +618,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
593
618
  [icon]="resolvedSvgIcon"
594
619
  [size]="size || iconSettings?.size"
595
620
  [themeColor]="iconSettings?.themeColor"
621
+ [variant]="iconSettings?.variant"
596
622
  [flip]="iconSettings?.flip"></kendo-svgicon>
597
623
  } @else {
598
624
  @if (!customFontIconClass) {
@@ -611,7 +637,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
611
637
  changeDetection: ChangeDetectionStrategy.OnPush,
612
638
  imports: [NgClass, IconComponent, SVGIconComponent]
613
639
  }]
614
- }], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
640
+ }], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
641
+ type: Optional
642
+ }, {
643
+ type: Inject,
644
+ args: [KENDO_COMPONENT_NAME]
645
+ }] }], propDecorators: { hostClass: [{
615
646
  type: HostBinding,
616
647
  args: ['class.k-icon-wrapper-host']
617
648
  }], name: [{
@@ -646,11 +677,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
646
677
  * ```
647
678
  */
648
679
  class IconModule {
649
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
650
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: IconModule, imports: [IconComponent], exports: [IconComponent] });
651
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule });
680
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
681
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: IconModule, imports: [IconComponent], exports: [IconComponent] });
682
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule });
652
683
  }
653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule, decorators: [{
684
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule, decorators: [{
654
685
  type: NgModule,
655
686
  args: [{
656
687
  exports: [IconComponent],
@@ -678,11 +709,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
678
709
  * ```
679
710
  */
680
711
  class SVGIconModule {
681
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
682
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, imports: [SVGIconComponent], exports: [SVGIconComponent] });
683
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule });
712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
713
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, imports: [SVGIconComponent], exports: [SVGIconComponent] });
714
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule });
684
715
  }
685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, decorators: [{
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, decorators: [{
686
717
  type: NgModule,
687
718
  args: [{
688
719
  exports: [SVGIconComponent],
@@ -772,11 +803,11 @@ const KENDO_ICONS = [
772
803
  * ```
773
804
  */
774
805
  class IconsModule {
775
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
776
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, imports: [IconComponent, SVGIconComponent], exports: [IconComponent, SVGIconComponent] });
777
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, providers: [IconsService] });
806
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
807
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, imports: [IconComponent, SVGIconComponent], exports: [IconComponent, SVGIconComponent] });
808
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, providers: [IconsService] });
778
809
  }
779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, decorators: [{
810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, decorators: [{
780
811
  type: NgModule,
781
812
  args: [{
782
813
  imports: [
package/index.d.ts CHANGED
@@ -183,7 +183,8 @@ type IconType = 'font' | 'svg';
183
183
  * type: 'svg',
184
184
  * themeColor: 'primary',
185
185
  * size: 'large',
186
- * flip: 'horizontal'
186
+ * flip: 'horizontal',
187
+ * variant: 'outline'
187
188
  * };
188
189
  * ```
189
190
  */
@@ -204,6 +205,11 @@ interface IconSettings {
204
205
  * Sets the `flip` direction of the icon.
205
206
  */
206
207
  flip?: IconFlip;
208
+ /**
209
+ * Sets the `variant` of the SVG icon.
210
+ * Requires `@progress/kendo-svg-icons` version `5.0.0` or later.
211
+ */
212
+ variant?: IconVariant;
207
213
  }
208
214
 
209
215
  /**
@@ -235,17 +241,19 @@ declare class IconSettingsService {
235
241
  /**
236
242
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
237
243
  * Override in a custom service to provide custom SVG icons.
244
+ * The optional `_component` parameter carries the host component identity (e.g. `'dateinput'`, `'grid'`)
245
+ * so subclasses can return different icons for the same name depending on the requesting component.
238
246
  *
239
- * @hidden
240
247
  */
241
- getSvgIcon(_name: string): SVGIcon;
248
+ getSvgIcon(_name: string, _component?: string): SVGIcon;
242
249
  /**
243
250
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
244
251
  * Override in a custom service to provide classes for custom font icons.
252
+ * The optional `_component` parameter carries the host component identity so subclasses can
253
+ * return different classes for the same key depending on the requesting component.
245
254
  *
246
- * @hidden
247
255
  */
248
- getCustomFontIconClass(_key: string): string;
256
+ getCustomFontIconClass(_key: string, _component?: string): string;
249
257
  static ɵfac: i0.ɵɵFactoryDeclaration<IconSettingsService, never>;
250
258
  static ɵprov: i0.ɵɵInjectableDeclaration<IconSettingsService>;
251
259
  }
@@ -286,15 +294,19 @@ declare class IconsService implements OnDestroy {
286
294
  /**
287
295
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
288
296
  * Override in a custom service to provide custom SVG icons.
297
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
298
+ * falling back to a global (no component) lookup when no level in the chain matches.
289
299
  * @hidden
290
300
  */
291
- getSvgIcon(name: string): SVGIcon;
301
+ getSvgIcon(name: string, componentChain?: string[]): SVGIcon;
292
302
  /**
293
303
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
294
304
  * Override in a custom service to provide classes for custom font icons.
305
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
306
+ * falling back to a global (no component) lookup when no level in the chain matches.
295
307
  * @hidden
296
308
  */
297
- getCustomFontIconClass(key: string): string;
309
+ getCustomFontIconClass(key: string, componentChain?: string[]): string;
298
310
  static ɵfac: i0.ɵɵFactoryDeclaration<IconsService, [{ optional: true; }, { optional: true; }]>;
299
311
  static ɵprov: i0.ɵɵInjectableDeclaration<IconsService>;
300
312
  }
@@ -305,6 +317,7 @@ declare class IconsService implements OnDestroy {
305
317
  declare class IconWrapperComponent implements OnDestroy {
306
318
  private iconsService;
307
319
  element: ElementRef;
320
+ private componentChain;
308
321
  hostClass: boolean;
309
322
  /**
310
323
  * Sets the name for an existing font icon in a Kendo UI theme to render.
@@ -345,9 +358,9 @@ declare class IconWrapperComponent implements OnDestroy {
345
358
  get hasSvgIcon(): boolean;
346
359
  get customFontIconClass(): string;
347
360
  private subs;
348
- constructor(iconsService: IconsService, element: ElementRef);
361
+ constructor(iconsService: IconsService, element: ElementRef, componentChain: string[]);
349
362
  ngOnDestroy(): void;
350
- static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, never>;
363
+ static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, [null, null, { optional: true; }]>;
351
364
  static ɵcmp: i0.ɵɵComponentDeclaration<IconWrapperComponent, "kendo-icon-wrapper", ["kendoIconWrapper"], { "name": { "alias": "name"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "innerCssClass": { "alias": "innerCssClass"; "required": false; }; "customFontClass": { "alias": "customFontClass"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
352
365
  }
353
366
 
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1783692363,
11
- "version": "25.0.0-develop.3",
10
+ "publishDate": 1786459506,
11
+ "version": "25.0.0-develop.31",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-icons",
3
- "version": "25.0.0-develop.3",
3
+ "version": "25.0.0-develop.31",
4
4
  "description": "Kendo UI Angular component starter template",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -31,7 +31,7 @@
31
31
  "package": {
32
32
  "productName": "Kendo UI for Angular",
33
33
  "productCode": "KENDOUIANGULAR",
34
- "publishDate": 1783692363,
34
+ "publishDate": 1786459506,
35
35
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
36
36
  }
37
37
  },
@@ -42,7 +42,7 @@
42
42
  "@angular/platform-browser": "20 - 22",
43
43
  "@progress/kendo-licensing": "^1.11.0",
44
44
  "@progress/kendo-svg-icons": "^4.9.0 || ^5.0.0",
45
- "@progress/kendo-angular-common": "25.0.0-develop.3",
45
+ "@progress/kendo-angular-common": "25.0.0-develop.31",
46
46
  "rxjs": "^6.5.3 || ^7.0.0"
47
47
  },
48
48
  "peerDependenciesMeta": {
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "tslib": "^2.3.1",
55
- "@progress/kendo-angular-schematics": "25.0.0-develop.3"
55
+ "@progress/kendo-angular-schematics": "25.0.0-develop.31"
56
56
  },
57
57
  "schematics": "./schematics/collection.json",
58
58
  "module": "fesm2022/progress-kendo-angular-icons.mjs",