@progress/kendo-angular-icons 25.0.0-develop.2 → 25.0.0-develop.20
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.
- package/fesm2022/progress-kendo-angular-icons.mjs +140 -83
- package/index.d.ts +43 -15
- package/package-metadata.mjs +2 -2
- package/package.json +4 -4
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Input, HostBinding, Directive, Component,
|
|
7
|
-
import { isDocumentAvailable, areObjectsEqual } from '@progress/kendo-angular-common';
|
|
6
|
+
import { Input, HostBinding, Directive, signal, ChangeDetectionStrategy, Component, computed, isDevMode, Injectable, InjectionToken, Optional, Inject, NgModule } from '@angular/core';
|
|
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:
|
|
23
|
-
version: '25.0.0-develop.
|
|
22
|
+
publishDate: 1785763254,
|
|
23
|
+
version: '25.0.0-develop.20',
|
|
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.
|
|
95
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", 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.26", 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.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconBaseDirective, decorators: [{
|
|
98
98
|
type: Directive,
|
|
99
99
|
args: [{
|
|
100
100
|
selector: '[kendoIconBase]'
|
|
@@ -132,34 +132,35 @@ class IconComponent extends IconBaseDirective {
|
|
|
132
132
|
*/
|
|
133
133
|
set name(name) {
|
|
134
134
|
if (isDocumentAvailable()) {
|
|
135
|
-
const newName = name !== this._name;
|
|
135
|
+
const newName = name !== this._name();
|
|
136
136
|
if (newName) {
|
|
137
137
|
const element = this.element.nativeElement;
|
|
138
138
|
this.renderer.removeClass(element, `k-i-${this.name}`);
|
|
139
139
|
this.renderer.addClass(element, `k-i-${name}`);
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
this._name
|
|
142
|
+
this._name.set(name);
|
|
143
143
|
}
|
|
144
144
|
get name() {
|
|
145
|
-
return this._name;
|
|
145
|
+
return this._name();
|
|
146
146
|
}
|
|
147
|
-
_name;
|
|
147
|
+
_name = signal(undefined, ...(ngDevMode ? [{ debugName: "_name" }] : []));
|
|
148
148
|
constructor(element, renderer) {
|
|
149
149
|
super(element, renderer);
|
|
150
150
|
this.element = element;
|
|
151
151
|
this.renderer = renderer;
|
|
152
152
|
}
|
|
153
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
154
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
153
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", 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.26", 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.
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
158
158
|
args: [{
|
|
159
|
-
exportAs: 'kendoIcon',
|
|
160
159
|
selector: 'kendo-icon',
|
|
160
|
+
exportAs: 'kendoIcon',
|
|
161
161
|
template: '',
|
|
162
|
-
standalone: true
|
|
162
|
+
standalone: true,
|
|
163
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
163
164
|
}]
|
|
164
165
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { hostClass: [{
|
|
165
166
|
type: HostBinding,
|
|
@@ -209,19 +210,19 @@ class SVGIconComponent extends IconBaseDirective {
|
|
|
209
210
|
set icon(icon) {
|
|
210
211
|
const element = this.element.nativeElement;
|
|
211
212
|
const hasDocument = isDocumentAvailable();
|
|
212
|
-
const newName = icon?.name && icon.name !== this._icon?.name;
|
|
213
|
-
if (this._icon
|
|
214
|
-
this.renderer.removeClass(element, `k-svg-i-${this._icon.name}`);
|
|
213
|
+
const newName = icon?.name && icon.name !== this._icon()?.name;
|
|
214
|
+
if (this._icon()?.name && newName && hasDocument) {
|
|
215
|
+
this.renderer.removeClass(element, `k-svg-i-${this._icon().name}`);
|
|
215
216
|
}
|
|
216
|
-
if (!areSame(icon, this._icon)) {
|
|
217
|
-
this._icon
|
|
217
|
+
if (!areSame(icon, this._icon())) {
|
|
218
|
+
this._icon.set(icon);
|
|
218
219
|
}
|
|
219
220
|
if (hasDocument && newName) {
|
|
220
|
-
this.renderer.addClass(element, `k-svg-i-${this._icon.name}`);
|
|
221
|
+
this.renderer.addClass(element, `k-svg-i-${this._icon().name}`);
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
224
|
get icon() {
|
|
224
|
-
return this._icon;
|
|
225
|
+
return this._icon();
|
|
225
226
|
}
|
|
226
227
|
/**
|
|
227
228
|
* Sets the style variant of the icon.
|
|
@@ -229,21 +230,30 @@ class SVGIconComponent extends IconBaseDirective {
|
|
|
229
230
|
* > Requires `@progress/kendo-svg-icons` v5 or later for the `variants` property to be available on icons.
|
|
230
231
|
*/
|
|
231
232
|
set variant(variant) {
|
|
232
|
-
this._variant
|
|
233
|
+
this._variant.set(variant);
|
|
233
234
|
}
|
|
234
235
|
get variant() {
|
|
235
|
-
return this._variant;
|
|
236
|
+
return this._variant();
|
|
236
237
|
}
|
|
237
238
|
get content() {
|
|
238
|
-
|
|
239
|
-
const svgContent = variantContent || this.icon.content;
|
|
240
|
-
return this.domSanitizer.bypassSecurityTrustHtml(svgContent);
|
|
239
|
+
return this._content();
|
|
241
240
|
}
|
|
242
241
|
get visible() {
|
|
243
|
-
return this.
|
|
244
|
-
}
|
|
245
|
-
_icon;
|
|
246
|
-
_variant;
|
|
242
|
+
return this._visible();
|
|
243
|
+
}
|
|
244
|
+
_icon = signal(undefined, ...(ngDevMode ? [{ debugName: "_icon" }] : []));
|
|
245
|
+
_variant = signal(undefined, ...(ngDevMode ? [{ debugName: "_variant" }] : []));
|
|
246
|
+
_content = computed(() => {
|
|
247
|
+
const icon = this._icon();
|
|
248
|
+
if (!icon) {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
const variant = this._variant();
|
|
252
|
+
const variantContent = variant && icon.variants?.[variant];
|
|
253
|
+
const svgContent = variantContent || icon.content;
|
|
254
|
+
return this.domSanitizer.bypassSecurityTrustHtml(svgContent);
|
|
255
|
+
}, ...(ngDevMode ? [{ debugName: "_content" }] : []));
|
|
256
|
+
_visible = computed(() => !!this._icon() && isDocumentAvailable(), ...(ngDevMode ? [{ debugName: "_visible" }] : []));
|
|
247
257
|
constructor(domSanitizer, element, renderer) {
|
|
248
258
|
super(element, renderer);
|
|
249
259
|
this.domSanitizer = domSanitizer;
|
|
@@ -257,7 +267,7 @@ class SVGIconComponent extends IconBaseDirective {
|
|
|
257
267
|
if (!isDevMode()) {
|
|
258
268
|
return;
|
|
259
269
|
}
|
|
260
|
-
if (!this._icon) {
|
|
270
|
+
if (!this._icon()) {
|
|
261
271
|
throw new Error(`
|
|
262
272
|
Invalid configuration.
|
|
263
273
|
The input [icon] is required for the Kendo UI SVG Icon component for Angular.
|
|
@@ -265,15 +275,15 @@ class SVGIconComponent extends IconBaseDirective {
|
|
|
265
275
|
`);
|
|
266
276
|
}
|
|
267
277
|
}
|
|
268
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
269
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
278
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", 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.26", 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: `
|
|
270
280
|
@if (visible) {
|
|
271
281
|
<svg [style.pointerEvents]="'none'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
272
282
|
[attr.viewBox]="icon.viewBox" [innerHTML]="content" aria-hidden="true">
|
|
273
283
|
</svg>
|
|
274
284
|
}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
275
285
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: SVGIconComponent, decorators: [{
|
|
277
287
|
type: Component,
|
|
278
288
|
args: [{
|
|
279
289
|
exportAs: 'kendoSVGIcon',
|
|
@@ -339,25 +349,27 @@ class IconSettingsService {
|
|
|
339
349
|
/**
|
|
340
350
|
* Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
|
|
341
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.
|
|
342
354
|
*
|
|
343
|
-
* @hidden
|
|
344
355
|
*/
|
|
345
|
-
getSvgIcon(_name) {
|
|
356
|
+
getSvgIcon(_name, _component) {
|
|
346
357
|
return null;
|
|
347
358
|
}
|
|
348
359
|
/**
|
|
349
360
|
* Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
|
|
350
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.
|
|
351
364
|
*
|
|
352
|
-
* @hidden
|
|
353
365
|
*/
|
|
354
|
-
getCustomFontIconClass(_key) {
|
|
366
|
+
getCustomFontIconClass(_key, _component) {
|
|
355
367
|
return null;
|
|
356
368
|
}
|
|
357
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
358
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
369
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
370
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconSettingsService });
|
|
359
371
|
}
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconSettingsService, decorators: [{
|
|
361
373
|
type: Injectable
|
|
362
374
|
}] });
|
|
363
375
|
|
|
@@ -429,25 +441,45 @@ class IconsService {
|
|
|
429
441
|
/**
|
|
430
442
|
* Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
|
|
431
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.
|
|
432
446
|
* @hidden
|
|
433
447
|
*/
|
|
434
|
-
getSvgIcon(name) {
|
|
435
|
-
|
|
436
|
-
|
|
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);
|
|
437
459
|
}
|
|
438
460
|
/**
|
|
439
461
|
* Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
|
|
440
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.
|
|
441
465
|
* @hidden
|
|
442
466
|
*/
|
|
443
|
-
getCustomFontIconClass(key) {
|
|
444
|
-
|
|
445
|
-
|
|
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);
|
|
446
478
|
}
|
|
447
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
448
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
479
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", 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.26", ngImport: i0, type: IconsService, providedIn: 'root' });
|
|
449
481
|
}
|
|
450
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconsService, decorators: [{
|
|
451
483
|
type: Injectable,
|
|
452
484
|
args: [{
|
|
453
485
|
providedIn: 'root'
|
|
@@ -467,36 +499,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
467
499
|
class IconWrapperComponent {
|
|
468
500
|
iconsService;
|
|
469
501
|
element;
|
|
502
|
+
componentChain;
|
|
470
503
|
hostClass = true;
|
|
471
504
|
/**
|
|
472
505
|
* Sets the name for an existing font icon in a Kendo UI theme to render.
|
|
473
506
|
* Supports all [Kendo UI Icons](https://www.telerik.com/kendo-angular-ui/components/styling/icons#icons-list).
|
|
474
507
|
*/
|
|
475
|
-
name;
|
|
508
|
+
set name(value) { this._name.set(value); }
|
|
509
|
+
get name() { return this._name(); }
|
|
476
510
|
/**
|
|
477
511
|
* Sets the [SVGIcon](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) to render.
|
|
478
512
|
*/
|
|
479
|
-
svgIcon;
|
|
513
|
+
set svgIcon(value) { this._svgIcon.set(value); }
|
|
514
|
+
get svgIcon() { return this._svgIcon(); }
|
|
480
515
|
/**
|
|
481
516
|
* Sets an additional class on the internal Icon component.
|
|
482
517
|
*/
|
|
483
|
-
innerCssClass
|
|
518
|
+
set innerCssClass(value) { this._innerCssClass.set(value); }
|
|
519
|
+
get innerCssClass() { return this._innerCssClass(); }
|
|
484
520
|
/**
|
|
485
521
|
* Sets a custom font icon class using the API of the consuming component.
|
|
486
522
|
*/
|
|
487
|
-
customFontClass
|
|
523
|
+
set customFontClass(value) { this._customFontClass.set(value); }
|
|
524
|
+
get customFontClass() { return this._customFontClass(); }
|
|
488
525
|
/**
|
|
489
526
|
* Sets the `IconSize` for the icon.
|
|
490
527
|
*/
|
|
491
|
-
size;
|
|
528
|
+
set size(value) { this._size.set(value); }
|
|
529
|
+
get size() { return this._size(); }
|
|
492
530
|
get customClasses() {
|
|
493
531
|
const classes = [this.customFontClass, this.innerCssClass, this.customFontIconClass].filter(cl => !!cl).join(' ');
|
|
494
532
|
return classes;
|
|
495
533
|
}
|
|
496
|
-
|
|
534
|
+
_name = signal(undefined, ...(ngDevMode ? [{ debugName: "_name" }] : []));
|
|
535
|
+
_svgIcon = signal(undefined, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : []));
|
|
536
|
+
_innerCssClass = signal('', ...(ngDevMode ? [{ debugName: "_innerCssClass" }] : []));
|
|
537
|
+
_customFontClass = signal('', ...(ngDevMode ? [{ debugName: "_customFontClass" }] : []));
|
|
538
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
|
|
539
|
+
// iconSettings is set from a subscription — must be a signal so changes trigger CD in zoneless apps
|
|
540
|
+
_iconSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_iconSettings" }] : []));
|
|
541
|
+
get iconSettings() { return this._iconSettings(); }
|
|
542
|
+
// Resolves the effective SVG icon: prefer service-provided icon, then fall back to the svgIcon input.
|
|
543
|
+
// Extracted from hasSvgIcon getter to avoid writing to a signal inside a reactive context.
|
|
544
|
+
_resolvedSvgIcon = computed(() => this.iconsService.getSvgIcon(this._name(), this.componentChain) || this._svgIcon(), ...(ngDevMode ? [{ debugName: "_resolvedSvgIcon" }] : []));
|
|
545
|
+
get resolvedSvgIcon() { return this._resolvedSvgIcon(); }
|
|
497
546
|
get hasSvgIcon() {
|
|
498
|
-
|
|
499
|
-
if (this.svgIcon) {
|
|
547
|
+
if (this._resolvedSvgIcon()) {
|
|
500
548
|
return true;
|
|
501
549
|
}
|
|
502
550
|
if (isDevMode()) {
|
|
@@ -520,27 +568,29 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
|
|
|
520
568
|
return false;
|
|
521
569
|
}
|
|
522
570
|
get customFontIconClass() {
|
|
523
|
-
return this.iconsService.getCustomFontIconClass(this.name) || this.customFontClass;
|
|
571
|
+
return this.iconsService.getCustomFontIconClass(this.name, this.componentChain) || this.customFontClass;
|
|
524
572
|
}
|
|
525
573
|
subs = new Subscription();
|
|
526
|
-
constructor(iconsService, element) {
|
|
574
|
+
constructor(iconsService, element, componentChain) {
|
|
527
575
|
this.iconsService = iconsService;
|
|
528
576
|
this.element = element;
|
|
577
|
+
this.componentChain = componentChain;
|
|
529
578
|
this.subs = iconsService.changes.subscribe(iconSettings => {
|
|
530
|
-
this.iconSettings
|
|
579
|
+
this._iconSettings.set(iconSettings);
|
|
531
580
|
});
|
|
532
581
|
}
|
|
533
582
|
ngOnDestroy() {
|
|
534
583
|
this.subs.unsubscribe();
|
|
535
584
|
}
|
|
536
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
537
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
585
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", 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.26", 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: `
|
|
538
587
|
@if (iconSettings?.type === 'svg' && hasSvgIcon) {
|
|
539
588
|
<kendo-svgicon
|
|
540
589
|
[ngClass]="innerCssClass"
|
|
541
|
-
[icon]="
|
|
590
|
+
[icon]="resolvedSvgIcon"
|
|
542
591
|
[size]="size || iconSettings?.size"
|
|
543
592
|
[themeColor]="iconSettings?.themeColor"
|
|
593
|
+
[variant]="iconSettings?.variant"
|
|
544
594
|
[flip]="iconSettings?.flip"></kendo-svgicon>
|
|
545
595
|
} @else {
|
|
546
596
|
@if (!customFontIconClass) {
|
|
@@ -554,20 +604,21 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
|
|
|
554
604
|
<span [ngClass]="customClasses"></span>
|
|
555
605
|
}
|
|
556
606
|
}
|
|
557
|
-
`, 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"] }] });
|
|
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 });
|
|
558
608
|
}
|
|
559
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconWrapperComponent, decorators: [{
|
|
560
610
|
type: Component,
|
|
561
611
|
args: [{
|
|
562
|
-
exportAs: 'kendoIconWrapper',
|
|
563
612
|
selector: 'kendo-icon-wrapper',
|
|
613
|
+
exportAs: 'kendoIconWrapper',
|
|
564
614
|
template: `
|
|
565
615
|
@if (iconSettings?.type === 'svg' && hasSvgIcon) {
|
|
566
616
|
<kendo-svgicon
|
|
567
617
|
[ngClass]="innerCssClass"
|
|
568
|
-
[icon]="
|
|
618
|
+
[icon]="resolvedSvgIcon"
|
|
569
619
|
[size]="size || iconSettings?.size"
|
|
570
620
|
[themeColor]="iconSettings?.themeColor"
|
|
621
|
+
[variant]="iconSettings?.variant"
|
|
571
622
|
[flip]="iconSettings?.flip"></kendo-svgicon>
|
|
572
623
|
} @else {
|
|
573
624
|
@if (!customFontIconClass) {
|
|
@@ -583,9 +634,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
583
634
|
}
|
|
584
635
|
`,
|
|
585
636
|
standalone: true,
|
|
637
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
586
638
|
imports: [NgClass, IconComponent, SVGIconComponent]
|
|
587
639
|
}]
|
|
588
|
-
}], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }
|
|
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: [{
|
|
589
646
|
type: HostBinding,
|
|
590
647
|
args: ['class.k-icon-wrapper-host']
|
|
591
648
|
}], name: [{
|
|
@@ -620,11 +677,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
620
677
|
* ```
|
|
621
678
|
*/
|
|
622
679
|
class IconModule {
|
|
623
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
624
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
625
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
680
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
681
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.26", ngImport: i0, type: IconModule, imports: [IconComponent], exports: [IconComponent] });
|
|
682
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconModule });
|
|
626
683
|
}
|
|
627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconModule, decorators: [{
|
|
628
685
|
type: NgModule,
|
|
629
686
|
args: [{
|
|
630
687
|
exports: [IconComponent],
|
|
@@ -652,11 +709,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
652
709
|
* ```
|
|
653
710
|
*/
|
|
654
711
|
class SVGIconModule {
|
|
655
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
656
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
657
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
712
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: SVGIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
713
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.26", ngImport: i0, type: SVGIconModule, imports: [SVGIconComponent], exports: [SVGIconComponent] });
|
|
714
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: SVGIconModule });
|
|
658
715
|
}
|
|
659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
716
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: SVGIconModule, decorators: [{
|
|
660
717
|
type: NgModule,
|
|
661
718
|
args: [{
|
|
662
719
|
exports: [SVGIconComponent],
|
|
@@ -746,11 +803,11 @@ const KENDO_ICONS = [
|
|
|
746
803
|
* ```
|
|
747
804
|
*/
|
|
748
805
|
class IconsModule {
|
|
749
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
750
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
751
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
806
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
807
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.26", ngImport: i0, type: IconsModule, imports: [IconComponent, SVGIconComponent], exports: [IconComponent, SVGIconComponent] });
|
|
808
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconsModule, providers: [IconsService] });
|
|
752
809
|
}
|
|
753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
810
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: IconsModule, decorators: [{
|
|
754
811
|
type: NgModule,
|
|
755
812
|
args: [{
|
|
756
813
|
imports: [
|
package/index.d.ts
CHANGED
|
@@ -158,6 +158,8 @@ declare class SVGIconComponent extends IconBaseDirective implements OnInit {
|
|
|
158
158
|
get visible(): boolean;
|
|
159
159
|
private _icon;
|
|
160
160
|
private _variant;
|
|
161
|
+
private readonly _content;
|
|
162
|
+
private readonly _visible;
|
|
161
163
|
constructor(domSanitizer: DomSanitizer, element: ElementRef, renderer: Renderer2);
|
|
162
164
|
ngOnInit(): void;
|
|
163
165
|
private verifyIconProperty;
|
|
@@ -181,7 +183,8 @@ type IconType = 'font' | 'svg';
|
|
|
181
183
|
* type: 'svg',
|
|
182
184
|
* themeColor: 'primary',
|
|
183
185
|
* size: 'large',
|
|
184
|
-
* flip: 'horizontal'
|
|
186
|
+
* flip: 'horizontal',
|
|
187
|
+
* variant: 'outline'
|
|
185
188
|
* };
|
|
186
189
|
* ```
|
|
187
190
|
*/
|
|
@@ -202,6 +205,11 @@ interface IconSettings {
|
|
|
202
205
|
* Sets the `flip` direction of the icon.
|
|
203
206
|
*/
|
|
204
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;
|
|
205
213
|
}
|
|
206
214
|
|
|
207
215
|
/**
|
|
@@ -233,17 +241,19 @@ declare class IconSettingsService {
|
|
|
233
241
|
/**
|
|
234
242
|
* Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
|
|
235
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.
|
|
236
246
|
*
|
|
237
|
-
* @hidden
|
|
238
247
|
*/
|
|
239
|
-
getSvgIcon(_name: string): SVGIcon;
|
|
248
|
+
getSvgIcon(_name: string, _component?: string): SVGIcon;
|
|
240
249
|
/**
|
|
241
250
|
* Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
|
|
242
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.
|
|
243
254
|
*
|
|
244
|
-
* @hidden
|
|
245
255
|
*/
|
|
246
|
-
getCustomFontIconClass(_key: string): string;
|
|
256
|
+
getCustomFontIconClass(_key: string, _component?: string): string;
|
|
247
257
|
static ɵfac: i0.ɵɵFactoryDeclaration<IconSettingsService, never>;
|
|
248
258
|
static ɵprov: i0.ɵɵInjectableDeclaration<IconSettingsService>;
|
|
249
259
|
}
|
|
@@ -284,15 +294,19 @@ declare class IconsService implements OnDestroy {
|
|
|
284
294
|
/**
|
|
285
295
|
* Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
|
|
286
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.
|
|
287
299
|
* @hidden
|
|
288
300
|
*/
|
|
289
|
-
getSvgIcon(name: string): SVGIcon;
|
|
301
|
+
getSvgIcon(name: string, componentChain?: string[]): SVGIcon;
|
|
290
302
|
/**
|
|
291
303
|
* Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
|
|
292
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.
|
|
293
307
|
* @hidden
|
|
294
308
|
*/
|
|
295
|
-
getCustomFontIconClass(key: string): string;
|
|
309
|
+
getCustomFontIconClass(key: string, componentChain?: string[]): string;
|
|
296
310
|
static ɵfac: i0.ɵɵFactoryDeclaration<IconsService, [{ optional: true; }, { optional: true; }]>;
|
|
297
311
|
static ɵprov: i0.ɵɵInjectableDeclaration<IconsService>;
|
|
298
312
|
}
|
|
@@ -303,36 +317,50 @@ declare class IconsService implements OnDestroy {
|
|
|
303
317
|
declare class IconWrapperComponent implements OnDestroy {
|
|
304
318
|
private iconsService;
|
|
305
319
|
element: ElementRef;
|
|
320
|
+
private componentChain;
|
|
306
321
|
hostClass: boolean;
|
|
307
322
|
/**
|
|
308
323
|
* Sets the name for an existing font icon in a Kendo UI theme to render.
|
|
309
324
|
* Supports all [Kendo UI Icons](https://www.telerik.com/kendo-angular-ui/components/styling/icons#icons-list).
|
|
310
325
|
*/
|
|
311
|
-
name: string;
|
|
326
|
+
set name(value: string);
|
|
327
|
+
get name(): string;
|
|
312
328
|
/**
|
|
313
329
|
* Sets the [SVGIcon](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) to render.
|
|
314
330
|
*/
|
|
315
|
-
svgIcon: SVGIcon;
|
|
331
|
+
set svgIcon(value: SVGIcon);
|
|
332
|
+
get svgIcon(): SVGIcon;
|
|
316
333
|
/**
|
|
317
334
|
* Sets an additional class on the internal Icon component.
|
|
318
335
|
*/
|
|
319
|
-
innerCssClass: string;
|
|
336
|
+
set innerCssClass(value: string);
|
|
337
|
+
get innerCssClass(): string;
|
|
320
338
|
/**
|
|
321
339
|
* Sets a custom font icon class using the API of the consuming component.
|
|
322
340
|
*/
|
|
323
|
-
customFontClass: string;
|
|
341
|
+
set customFontClass(value: string);
|
|
342
|
+
get customFontClass(): string;
|
|
324
343
|
/**
|
|
325
344
|
* Sets the `IconSize` for the icon.
|
|
326
345
|
*/
|
|
327
|
-
size: IconSize;
|
|
346
|
+
set size(value: IconSize);
|
|
347
|
+
get size(): IconSize;
|
|
328
348
|
get customClasses(): string;
|
|
329
|
-
|
|
349
|
+
private _name;
|
|
350
|
+
private _svgIcon;
|
|
351
|
+
private _innerCssClass;
|
|
352
|
+
private _customFontClass;
|
|
353
|
+
private _size;
|
|
354
|
+
private _iconSettings;
|
|
355
|
+
get iconSettings(): IconSettings;
|
|
356
|
+
private readonly _resolvedSvgIcon;
|
|
357
|
+
get resolvedSvgIcon(): SVGIcon;
|
|
330
358
|
get hasSvgIcon(): boolean;
|
|
331
359
|
get customFontIconClass(): string;
|
|
332
360
|
private subs;
|
|
333
|
-
constructor(iconsService: IconsService, element: ElementRef);
|
|
361
|
+
constructor(iconsService: IconsService, element: ElementRef, componentChain: string[]);
|
|
334
362
|
ngOnDestroy(): void;
|
|
335
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent,
|
|
363
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, [null, null, { optional: true; }]>;
|
|
336
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>;
|
|
337
365
|
}
|
|
338
366
|
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = {
|
|
|
7
7
|
"productCodes": [
|
|
8
8
|
"KENDOUIANGULAR"
|
|
9
9
|
],
|
|
10
|
-
"publishDate":
|
|
11
|
-
"version": "25.0.0-develop.
|
|
10
|
+
"publishDate": 1785763254,
|
|
11
|
+
"version": "25.0.0-develop.20",
|
|
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
|
+
"version": "25.0.0-develop.20",
|
|
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":
|
|
34
|
+
"publishDate": 1785763254,
|
|
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.
|
|
45
|
+
"@progress/kendo-angular-common": "25.0.0-develop.20",
|
|
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.
|
|
55
|
+
"@progress/kendo-angular-schematics": "25.0.0-develop.20"
|
|
56
56
|
},
|
|
57
57
|
"schematics": "./schematics/collection.json",
|
|
58
58
|
"module": "fesm2022/progress-kendo-angular-icons.mjs",
|