@ng-icons/core 20.0.0 → 21.0.2
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/README.md +8 -8
- package/esm2020/lib/icon.component.mjs +7 -8
- package/esm2020/lib/utils/format.mjs +1 -13
- package/fesm2015/ng-icons-core.mjs +4 -17
- package/fesm2015/ng-icons-core.mjs.map +1 -1
- package/fesm2020/ng-icons-core.mjs +4 -17
- package/fesm2020/ng-icons-core.mjs.map +1 -1
- package/lib/icon.component.d.ts +1 -3
- package/lib/utils/format.d.ts +0 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Got suggestions for additional iconsets? Create an issue and we can consider add
|
|
|
32
32
|
| 11.x.x | 12.x.x |
|
|
33
33
|
| 12.x.x | 12.x.x - 13.x.x |
|
|
34
34
|
| 13.x.x | 13.x.x - 17.x.x |
|
|
35
|
-
| 14.x.x | 17.x.x -
|
|
35
|
+
| 14.x.x | 17.x.x - 21.x.x |
|
|
36
36
|
|
|
37
37
|
> Note: Ng Icons relies on modern browser features and is designed to work on evergreen browsers. We do not support older browsers such as IE11.
|
|
38
38
|
|
|
@@ -81,13 +81,13 @@ Import the `NgIconsModule` and register the icons you wish to use:
|
|
|
81
81
|
|
|
82
82
|
```ts
|
|
83
83
|
import { NgIconsModule } from '@ng-icons/core';
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
84
|
+
import { featherAirplay } from '@ng-icons/feather-icons';
|
|
85
|
+
import { heroUsers } from '@ng-icons/heroicons/outline';
|
|
86
86
|
|
|
87
87
|
@NgModule({
|
|
88
88
|
imports: [
|
|
89
89
|
BrowserModule,
|
|
90
|
-
NgIconsModule.withIcons({
|
|
90
|
+
NgIconsModule.withIcons({ featherAirplay, heroUsers }),
|
|
91
91
|
],
|
|
92
92
|
})
|
|
93
93
|
export class AppModule {}
|
|
@@ -98,7 +98,7 @@ You can register icons in multiple modules, this allows icons to be lazy loaded
|
|
|
98
98
|
You can then use the icon in your templates:
|
|
99
99
|
|
|
100
100
|
```html
|
|
101
|
-
<ng-icon name="
|
|
101
|
+
<ng-icon name="featherAirplay"></ng-icon>
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
| Name | Type | Description |
|
|
@@ -116,13 +116,13 @@ You can also import the component directly by importing `NgIconComponent` or the
|
|
|
116
116
|
|
|
117
117
|
```ts
|
|
118
118
|
import { NgIconComponent, provideIcons } from '@ng-icons/core';
|
|
119
|
-
import {
|
|
120
|
-
import {
|
|
119
|
+
import { featherAirplay } from '@ng-icons/feather-icons';
|
|
120
|
+
import { heroUsers } from '@ng-icons/heroicons/outline';
|
|
121
121
|
|
|
122
122
|
@Component({
|
|
123
123
|
standalone: true,
|
|
124
124
|
imports: [NgIconComponent],
|
|
125
|
-
providers: [provideIcons({
|
|
125
|
+
providers: [provideIcons({ featherAirplay, heroUsers })],
|
|
126
126
|
})
|
|
127
127
|
export class AppComponent {}
|
|
128
128
|
```
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, } from '@angular/core';
|
|
2
2
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
3
|
import { IconService } from './icon.service';
|
|
4
|
-
import {
|
|
4
|
+
import { toPropertyName } from './utils/format';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/platform-browser";
|
|
7
7
|
import * as i2 from "./icon.service";
|
|
8
8
|
export class NgIconComponent {
|
|
9
|
-
constructor(
|
|
10
|
-
this.elementRef = elementRef;
|
|
9
|
+
constructor(sanitizer, iconService) {
|
|
11
10
|
this.sanitizer = sanitizer;
|
|
12
11
|
this.iconService = iconService;
|
|
13
12
|
this._size = '1em';
|
|
14
13
|
}
|
|
15
14
|
/** Define the name of the icon to display */
|
|
16
15
|
set name(name) {
|
|
17
|
-
name =
|
|
16
|
+
name = toPropertyName(name);
|
|
18
17
|
// if there is no icon with this name warn the user as they probably forgot to import it
|
|
19
18
|
if (!this.iconService.icons.hasOwnProperty(name)) {
|
|
20
19
|
console.warn(`No icon named ${name} was found. You may need to import it using the withIcons function.`);
|
|
@@ -32,12 +31,12 @@ export class NgIconComponent {
|
|
|
32
31
|
return this._size;
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
|
-
NgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, deps: [{ token:
|
|
34
|
+
NgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
35
|
NgIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NgIconComponent, isStandalone: true, selector: "ng-icon", inputs: { name: "name", size: "size", strokeWidth: "strokeWidth", color: "color" }, host: { properties: { "innerHTML": "this.template", "style.--ng-icon__size": "this.size", "style.--ng-icon__stroke-width": "this.strokeWidth", "style.color": "this.color" } }, ngImport: i0, template: '', isInline: true, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, decorators: [{
|
|
38
37
|
type: Component,
|
|
39
38
|
args: [{ selector: 'ng-icon', template: '', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"] }]
|
|
40
|
-
}], ctorParameters: function () { return [{ type:
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.IconService }]; }, propDecorators: { name: [{
|
|
41
40
|
type: Input
|
|
42
41
|
}], template: [{
|
|
43
42
|
type: HostBinding,
|
|
@@ -64,4 +63,4 @@ function coerceCssPixelValue(value) {
|
|
|
64
63
|
}
|
|
65
64
|
return /^\d+$/.test(value) ? `${value}px` : value;
|
|
66
65
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVNoRCxNQUFNLE9BQU8sZUFBZTtJQThDMUIsWUFDbUIsU0FBdUIsRUFDdkIsV0FBd0I7UUFEeEIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWRuQyxVQUFLLEdBQVcsS0FBSyxDQUFDO0lBZTNCLENBQUM7SUFoREosNkNBQTZDO0lBQzdDLElBQWEsSUFBSSxDQUFDLElBQXVCO1FBQ3ZDLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUIsd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxDQUFDLElBQUksQ0FDVixpQkFBaUIsSUFBSSxxRUFBcUUsQ0FDM0YsQ0FBQztZQUNGLE9BQU87U0FDUjtRQUVELG1DQUFtQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUM3QixDQUFDO0lBQ0osQ0FBQztJQUtELGtDQUFrQztJQUNsQyxJQUVJLElBQUksQ0FBQyxJQUFZO1FBQ25CLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7NEdBaENVLGVBQWU7Z0dBQWYsZUFBZSx1VUFMaEIsRUFBRTsyRkFLRCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFNBQVMsWUFDVCxFQUFFLGNBQ0EsSUFBSSxtQkFFQyx1QkFBdUIsQ0FBQyxNQUFNOzZIQUlsQyxJQUFJO3NCQUFoQixLQUFLO2dCQWtCb0IsUUFBUTtzQkFBakMsV0FBVzt1QkFBQyxXQUFXO2dCQUtwQixJQUFJO3NCQUZQLFdBQVc7dUJBQUMsdUJBQXVCOztzQkFDbkMsS0FBSztnQkFlTixXQUFXO3NCQUZWLFdBQVc7dUJBQUMsK0JBQStCOztzQkFDM0MsS0FBSztnQkFNTixLQUFLO3NCQUZKLFdBQVc7dUJBQUMsYUFBYTs7c0JBQ3pCLEtBQUs7O0FBU1IsU0FBUyxtQkFBbUIsQ0FBQyxLQUFhO0lBQ3hDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtRQUNqQixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJY29uTmFtZSB9IGZyb20gJy4vaWNvbi1uYW1lJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi9pY29uLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9Qcm9wZXJ0eU5hbWUgfSBmcm9tICcuL3V0aWxzL2Zvcm1hdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWljb24nLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5nSWNvbkNvbXBvbmVudCB7XG4gIC8qKiBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGljb24gdG8gZGlzcGxheSAqL1xuICBASW5wdXQoKSBzZXQgbmFtZShuYW1lOiBJY29uTmFtZSB8IHN0cmluZykge1xuICAgIG5hbWUgPSB0b1Byb3BlcnR5TmFtZShuYW1lKTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIG5vIGljb24gd2l0aCB0aGlzIG5hbWUgd2FybiB0aGUgdXNlciBhcyB0aGV5IHByb2JhYmx5IGZvcmdvdCB0byBpbXBvcnQgaXRcbiAgICBpZiAoIXRoaXMuaWNvblNlcnZpY2UuaWNvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYE5vIGljb24gbmFtZWQgJHtuYW1lfSB3YXMgZm91bmQuIFlvdSBtYXkgbmVlZCB0byBpbXBvcnQgaXQgdXNpbmcgdGhlIHdpdGhJY29ucyBmdW5jdGlvbi5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpbnNlcnQgdGhlIFNWRyBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcbiAgICAgIHRoaXMuaWNvblNlcnZpY2UuaWNvbnNbbmFtZV0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBTdG9yZSB0aGUgZm9ybWF0dGVkIGljb24gbmFtZSAqL1xuICBASG9zdEJpbmRpbmcoJ2lubmVySFRNTCcpIHRlbXBsYXRlPzogU2FmZUh0bWw7XG5cbiAgLyoqIERlZmluZSB0aGUgc2l6ZSBvZiB0aGUgaWNvbiAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tbmctaWNvbl9fc2l6ZScpXG4gIEBJbnB1dCgpXG4gIHNldCBzaXplKHNpemU6IHN0cmluZykge1xuICAgIC8vIGlmIHRoZSBzaXplIG9ubHkgY29udGFpbnMgbnVtYmVycywgYXNzdW1lIGl0IGlzIGluIHBpeGVsc1xuICAgIHRoaXMuX3NpemUgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKHNpemUpO1xuICB9XG5cbiAgZ2V0IHNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3NpemU6IHN0cmluZyA9ICcxZW0nO1xuXG4gIC8qKiBEZWZpbmUgdGhlIHN0cm9rZS13aWR0aCBvZiB0aGUgaWNvbiAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tbmctaWNvbl9fc3Ryb2tlLXdpZHRoJylcbiAgQElucHV0KClcbiAgc3Ryb2tlV2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgLyoqIERlZmluZSB0aGUgY29sb3Igb2YgdGhlIGljb24gKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5jb2xvcicpXG4gIEBJbnB1dCgpXG4gIGNvbG9yPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICkge31cbn1cblxuZnVuY3Rpb24gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gL15cXGQrJC8udGVzdCh2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiB2YWx1ZTtcbn1cbiJdfQ==
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hyphenated to UpperCamelCase
|
|
3
|
-
*/
|
|
4
|
-
export function toUpperCamelCase(str) {
|
|
5
|
-
return toCapitalCase(toPropertyName(str));
|
|
6
|
-
}
|
|
7
1
|
/**
|
|
8
2
|
* Hyphenated to lowerCamelCase
|
|
9
3
|
*/
|
|
@@ -13,10 +7,4 @@ export function toPropertyName(str) {
|
|
|
13
7
|
.replace(/[^a-zA-Z\d]/g, '')
|
|
14
8
|
.replace(/^([A-Z])/, m => m.toLowerCase());
|
|
15
9
|
}
|
|
16
|
-
|
|
17
|
-
* Capitalizes the first letter of a string
|
|
18
|
-
*/
|
|
19
|
-
export function toCapitalCase(str) {
|
|
20
|
-
return str.charAt(0).toUpperCase() + str.substr(1);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFXO0lBQzFDLE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUc7U0FDUCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCO1NBQ0EsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVztJQUN2QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIeXBoZW5hdGVkIHRvIFVwcGVyQ2FtZWxDYXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VwcGVyQ2FtZWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRvQ2FwaXRhbENhc2UodG9Qcm9wZXJ0eU5hbWUoc3RyKSk7XG59XG5cbi8qKlxuICogSHlwaGVuYXRlZCB0byBsb3dlckNhbWVsQ2FzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qcm9wZXJ0eU5hbWUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyXG4gICAgLnJlcGxhY2UoLyhbXmEtekEtWjAtOV0pKyguKT8vZywgKF8sIF9fLCBjaHIpID0+XG4gICAgICBjaHIgPyBjaHIudG9VcHBlckNhc2UoKSA6ICcnLFxuICAgIClcbiAgICAucmVwbGFjZSgvW15hLXpBLVpcXGRdL2csICcnKVxuICAgIC5yZXBsYWNlKC9eKFtBLVpdKS8sIG0gPT4gbS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBDYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0NhcGl0YWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHIoMSk7XG59XG4iXX0=
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUc7U0FDUCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCO1NBQ0EsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEh5cGhlbmF0ZWQgdG8gbG93ZXJDYW1lbENhc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHJvcGVydHlOYW1lKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC8oW15hLXpBLVowLTldKSsoLik/L2csIChfLCBfXywgY2hyKSA9PlxuICAgICAgY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAnJyxcbiAgICApXG4gICAgLnJlcGxhY2UoL1teYS16QS1aXFxkXS9nLCAnJylcbiAgICAucmVwbGFjZSgvXihbQS1aXSkvLCBtID0+IG0udG9Mb3dlckNhc2UoKSk7XG59XG4iXX0=
|
|
@@ -2,12 +2,6 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Component, ChangeDetectionStrategy, Input, HostBinding, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/platform-browser';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Hyphenated to UpperCamelCase
|
|
7
|
-
*/
|
|
8
|
-
function toUpperCamelCase(str) {
|
|
9
|
-
return toCapitalCase(toPropertyName(str));
|
|
10
|
-
}
|
|
11
5
|
/**
|
|
12
6
|
* Hyphenated to lowerCamelCase
|
|
13
7
|
*/
|
|
@@ -17,12 +11,6 @@ function toPropertyName(str) {
|
|
|
17
11
|
.replace(/[^a-zA-Z\d]/g, '')
|
|
18
12
|
.replace(/^([A-Z])/, m => m.toLowerCase());
|
|
19
13
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Capitalizes the first letter of a string
|
|
22
|
-
*/
|
|
23
|
-
function toCapitalCase(str) {
|
|
24
|
-
return str.charAt(0).toUpperCase() + str.substr(1);
|
|
25
|
-
}
|
|
26
14
|
|
|
27
15
|
class IconService {
|
|
28
16
|
/** Access the icons in the class. */
|
|
@@ -48,15 +36,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
48
36
|
}] });
|
|
49
37
|
|
|
50
38
|
class NgIconComponent {
|
|
51
|
-
constructor(
|
|
52
|
-
this.elementRef = elementRef;
|
|
39
|
+
constructor(sanitizer, iconService) {
|
|
53
40
|
this.sanitizer = sanitizer;
|
|
54
41
|
this.iconService = iconService;
|
|
55
42
|
this._size = '1em';
|
|
56
43
|
}
|
|
57
44
|
/** Define the name of the icon to display */
|
|
58
45
|
set name(name) {
|
|
59
|
-
name =
|
|
46
|
+
name = toPropertyName(name);
|
|
60
47
|
// if there is no icon with this name warn the user as they probably forgot to import it
|
|
61
48
|
if (!this.iconService.icons.hasOwnProperty(name)) {
|
|
62
49
|
console.warn(`No icon named ${name} was found. You may need to import it using the withIcons function.`);
|
|
@@ -74,12 +61,12 @@ class NgIconComponent {
|
|
|
74
61
|
return this._size;
|
|
75
62
|
}
|
|
76
63
|
}
|
|
77
|
-
NgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, deps: [{ token:
|
|
64
|
+
NgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, deps: [{ token: i1.DomSanitizer }, { token: IconService }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
65
|
NgIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NgIconComponent, isStandalone: true, selector: "ng-icon", inputs: { name: "name", size: "size", strokeWidth: "strokeWidth", color: "color" }, host: { properties: { "innerHTML": "this.template", "style.--ng-icon__size": "this.size", "style.--ng-icon__stroke-width": "this.strokeWidth", "style.color": "this.color" } }, ngImport: i0, template: '', isInline: true, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
79
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, decorators: [{
|
|
80
67
|
type: Component,
|
|
81
68
|
args: [{ selector: 'ng-icon', template: '', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"] }]
|
|
82
|
-
}], ctorParameters: function () { return [{ type:
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: IconService }]; }, propDecorators: { name: [{
|
|
83
70
|
type: Input
|
|
84
71
|
}], template: [{
|
|
85
72
|
type: HostBinding,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-icons-core.mjs","sources":["../../../../packages/core/src/lib/utils/format.ts","../../../../packages/core/src/lib/icon.service.ts","../../../../packages/core/src/lib/icon.component.ts","../../../../packages/core/src/lib/icon.module.ts","../../../../packages/core/src/lib/icon.provider.ts","../../../../packages/core/src/ng-icons-core.ts"],"sourcesContent":["/**\n * Hyphenated to
|
|
1
|
+
{"version":3,"file":"ng-icons-core.mjs","sources":["../../../../packages/core/src/lib/utils/format.ts","../../../../packages/core/src/lib/icon.service.ts","../../../../packages/core/src/lib/icon.component.ts","../../../../packages/core/src/lib/icon.module.ts","../../../../packages/core/src/lib/icon.provider.ts","../../../../packages/core/src/ng-icons-core.ts"],"sourcesContent":["/**\n * Hyphenated to lowerCamelCase\n */\nexport function toPropertyName(str: string): string {\n return str\n .replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) =>\n chr ? chr.toUpperCase() : '',\n )\n .replace(/[^a-zA-Z\\d]/g, '')\n .replace(/^([A-Z])/, m => m.toLowerCase());\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n /** Store the available icons. */\n private static icons: Readonly<Record<string, string>> = {};\n\n /** Access the icons in the class. */\n get icons(): Readonly<Record<string, string>> {\n return IconService.icons;\n }\n\n /**\n * Insert icons into the iconset\n */\n static addIcons(icons: Record<string, string>): void {\n IconService.icons = { ...IconService.icons, ...icons };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { IconName } from './icon-name';\nimport { IconService } from './icon.service';\nimport { toPropertyName } from './utils/format';\n\n@Component({\n selector: 'ng-icon',\n template: '',\n standalone: true,\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgIconComponent {\n /** Define the name of the icon to display */\n @Input() set name(name: IconName | string) {\n name = toPropertyName(name);\n\n // if there is no icon with this name warn the user as they probably forgot to import it\n if (!this.iconService.icons.hasOwnProperty(name)) {\n console.warn(\n `No icon named ${name} was found. You may need to import it using the withIcons function.`,\n );\n return;\n }\n\n // insert the SVG into the template\n this.template = this.sanitizer.bypassSecurityTrustHtml(\n this.iconService.icons[name],\n );\n }\n\n /** Store the formatted icon name */\n @HostBinding('innerHTML') template?: SafeHtml;\n\n /** Define the size of the icon */\n @HostBinding('style.--ng-icon__size')\n @Input()\n set size(size: string) {\n // if the size only contains numbers, assume it is in pixels\n this._size = coerceCssPixelValue(size);\n }\n\n get size(): string {\n return this._size;\n }\n\n private _size: string = '1em';\n\n /** Define the stroke-width of the icon */\n @HostBinding('style.--ng-icon__stroke-width')\n @Input()\n strokeWidth?: string | number;\n\n /** Define the color of the icon */\n @HostBinding('style.color')\n @Input()\n color?: string;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly iconService: IconService,\n ) {}\n}\n\nfunction coerceCssPixelValue(value: string): string {\n if (value == null) {\n return '';\n }\n\n return /^\\d+$/.test(value) ? `${value}px` : value;\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgIconComponent } from './icon.component';\nimport { IconService } from './icon.service';\n\n/**\n * A barrel export of all directives for use in standalone apps\n */\nconst NgIconComponents = [NgIconComponent];\n\n// This is a temporary workaround for ng-packagr issue #2398\n@NgModule({\n imports: [NgIconComponents],\n exports: [NgIconComponents],\n})\nexport class NG_ICON_DIRECTIVES {}\n\n@NgModule({\n imports: [NgIconComponents],\n exports: [NgIconComponents],\n})\nexport class NgIconsModule {\n constructor(private readonly iconService: IconService) {\n if (Object.keys(this.iconService.icons).length === 0) {\n throw new Error(\n 'No icons have been provided. Ensure to include some icons by importing them using NgIconsModule.withIcons({ ... }).',\n );\n }\n }\n\n /**\n * Define the icons that will be included in the application. This allows unused icons to\n * be tree-shaken away to reduce bundle size\n * @param icons The object containing the required icons\n */\n static withIcons(\n icons: Record<string, string>,\n ): ModuleWithProviders<NgIconsModule> {\n IconService.addIcons(icons);\n\n return { ngModule: NgIconsModule };\n }\n}\n","import { Provider } from '@angular/core';\nimport { IconService } from './icon.service';\n\nexport function provideIcons(icons: Record<string, string>): Provider[] {\n IconService.addIcons(icons);\n\n return [];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.IconService","i1.IconService"],"mappings":";;;;AAAA;;AAEG;AACG,SAAU,cAAc,CAAC,GAAW,EAAA;AACxC,IAAA,OAAO,GAAG;SACP,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAC1C,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAC7B;AACA,SAAA,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;AAC3B,SAAA,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/C;;MCLa,WAAW,CAAA;;AAKtB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,WAAW,CAAC,KAAK,CAAC;KAC1B;AAED;;AAEG;IACH,OAAO,QAAQ,CAAC,KAA6B,EAAA;QAC3C,WAAW,CAAC,KAAK,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAW,CAAC,KAAK,CAAA,EAAK,KAAK,CAAE,CAAC;KACxD;;AAbD;AACe,WAAK,CAAA,KAAA,GAAqC,EAAG,CAAA;wGAFjD,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCcY,eAAe,CAAA;IA8C1B,WACmB,CAAA,SAAuB,EACvB,WAAwB,EAAA;AADxB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AACvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAdnC,QAAA,IAAK,CAAA,KAAA,GAAW,KAAK,CAAC;KAe1B;;IA/CJ,IAAa,IAAI,CAAC,IAAuB,EAAA;AACvC,QAAA,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;;QAG5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAChD,YAAA,OAAO,CAAC,IAAI,CACV,iBAAiB,IAAI,CAAA,mEAAA,CAAqE,CAC3F,CAAC;YACF,OAAO;AACR,SAAA;;AAGD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAC7B,CAAC;KACH;;IAMD,IAEI,IAAI,CAAC,IAAY,EAAA;;AAEnB,QAAA,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;KACxC;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;4GAhCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,uUALhB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAKD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,YACT,EAAE,EAAA,UAAA,EACA,IAAI,EAEC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,CAAA;0HAIlC,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAkBoB,QAAQ,EAAA,CAAA;sBAAjC,WAAW;uBAAC,WAAW,CAAA;gBAKpB,IAAI,EAAA,CAAA;sBAFP,WAAW;uBAAC,uBAAuB,CAAA;;sBACnC,KAAK;gBAeN,WAAW,EAAA,CAAA;sBAFV,WAAW;uBAAC,+BAA+B,CAAA;;sBAC3C,KAAK;gBAMN,KAAK,EAAA,CAAA;sBAFJ,WAAW;uBAAC,aAAa,CAAA;;sBACzB,KAAK;;AASR,SAAS,mBAAmB,CAAC,KAAa,EAAA;IACxC,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AAED,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,EAAG,KAAK,CAAI,EAAA,CAAA,GAAG,KAAK,CAAC;AACpD;;ACxEA;;AAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;AAE3C;MAKa,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,OAAA,EAAA,CAPL,eAAe,CAAA,EAAA,OAAA,EAAA,CAAf,eAAe,CAAA,EAAA,CAAA,CAAA;AAO5B,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAGf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC5B,CAAA;;MAOY,aAAa,CAAA;AACxB,IAAA,WAAA,CAA6B,WAAwB,EAAA;AAAxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACnD,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACpD,YAAA,MAAM,IAAI,KAAK,CACb,qHAAqH,CACtH,CAAC;AACH,SAAA;KACF;AAED;;;;AAIG;IACH,OAAO,SAAS,CACd,KAA6B,EAAA;AAE7B,QAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE5B,QAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;KACpC;;0GApBU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,OAAA,EAAA,CAbA,eAAe,CAAA,EAAA,OAAA,EAAA,CAAf,eAAe,CAAA,EAAA,CAAA,CAAA;AAa5B,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAGf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC5B,CAAA;;;AChBK,SAAU,YAAY,CAAC,KAA6B,EAAA;AACxD,IAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE5B,IAAA,OAAO,EAAE,CAAC;AACZ;;ACPA;;AAEG;;;;"}
|
|
@@ -25,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
25
25
|
}]
|
|
26
26
|
}] });
|
|
27
27
|
|
|
28
|
-
/**
|
|
29
|
-
* Hyphenated to UpperCamelCase
|
|
30
|
-
*/
|
|
31
|
-
function toUpperCamelCase(str) {
|
|
32
|
-
return toCapitalCase(toPropertyName(str));
|
|
33
|
-
}
|
|
34
28
|
/**
|
|
35
29
|
* Hyphenated to lowerCamelCase
|
|
36
30
|
*/
|
|
@@ -40,23 +34,16 @@ function toPropertyName(str) {
|
|
|
40
34
|
.replace(/[^a-zA-Z\d]/g, '')
|
|
41
35
|
.replace(/^([A-Z])/, m => m.toLowerCase());
|
|
42
36
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Capitalizes the first letter of a string
|
|
45
|
-
*/
|
|
46
|
-
function toCapitalCase(str) {
|
|
47
|
-
return str.charAt(0).toUpperCase() + str.substr(1);
|
|
48
|
-
}
|
|
49
37
|
|
|
50
38
|
class NgIconComponent {
|
|
51
|
-
constructor(
|
|
52
|
-
this.elementRef = elementRef;
|
|
39
|
+
constructor(sanitizer, iconService) {
|
|
53
40
|
this.sanitizer = sanitizer;
|
|
54
41
|
this.iconService = iconService;
|
|
55
42
|
this._size = '1em';
|
|
56
43
|
}
|
|
57
44
|
/** Define the name of the icon to display */
|
|
58
45
|
set name(name) {
|
|
59
|
-
name =
|
|
46
|
+
name = toPropertyName(name);
|
|
60
47
|
// if there is no icon with this name warn the user as they probably forgot to import it
|
|
61
48
|
if (!this.iconService.icons.hasOwnProperty(name)) {
|
|
62
49
|
console.warn(`No icon named ${name} was found. You may need to import it using the withIcons function.`);
|
|
@@ -74,12 +61,12 @@ class NgIconComponent {
|
|
|
74
61
|
return this._size;
|
|
75
62
|
}
|
|
76
63
|
}
|
|
77
|
-
NgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, deps: [{ token:
|
|
64
|
+
NgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, deps: [{ token: i1.DomSanitizer }, { token: IconService }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
65
|
NgIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NgIconComponent, isStandalone: true, selector: "ng-icon", inputs: { name: "name", size: "size", strokeWidth: "strokeWidth", color: "color" }, host: { properties: { "innerHTML": "this.template", "style.--ng-icon__size": "this.size", "style.--ng-icon__stroke-width": "this.strokeWidth", "style.color": "this.color" } }, ngImport: i0, template: '', isInline: true, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
79
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgIconComponent, decorators: [{
|
|
80
67
|
type: Component,
|
|
81
68
|
args: [{ selector: 'ng-icon', template: '', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"] }]
|
|
82
|
-
}], ctorParameters: function () { return [{ type:
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: IconService }]; }, propDecorators: { name: [{
|
|
83
70
|
type: Input
|
|
84
71
|
}], template: [{
|
|
85
72
|
type: HostBinding,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-icons-core.mjs","sources":["../../../../packages/core/src/lib/icon.service.ts","../../../../packages/core/src/lib/utils/format.ts","../../../../packages/core/src/lib/icon.component.ts","../../../../packages/core/src/lib/icon.module.ts","../../../../packages/core/src/lib/icon.provider.ts","../../../../packages/core/src/ng-icons-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n /** Store the available icons. */\n private static icons: Readonly<Record<string, string>> = {};\n\n /** Access the icons in the class. */\n get icons(): Readonly<Record<string, string>> {\n return IconService.icons;\n }\n\n /**\n * Insert icons into the iconset\n */\n static addIcons(icons: Record<string, string>): void {\n IconService.icons = { ...IconService.icons, ...icons };\n }\n}\n","/**\n * Hyphenated to
|
|
1
|
+
{"version":3,"file":"ng-icons-core.mjs","sources":["../../../../packages/core/src/lib/icon.service.ts","../../../../packages/core/src/lib/utils/format.ts","../../../../packages/core/src/lib/icon.component.ts","../../../../packages/core/src/lib/icon.module.ts","../../../../packages/core/src/lib/icon.provider.ts","../../../../packages/core/src/ng-icons-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n /** Store the available icons. */\n private static icons: Readonly<Record<string, string>> = {};\n\n /** Access the icons in the class. */\n get icons(): Readonly<Record<string, string>> {\n return IconService.icons;\n }\n\n /**\n * Insert icons into the iconset\n */\n static addIcons(icons: Record<string, string>): void {\n IconService.icons = { ...IconService.icons, ...icons };\n }\n}\n","/**\n * Hyphenated to lowerCamelCase\n */\nexport function toPropertyName(str: string): string {\n return str\n .replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) =>\n chr ? chr.toUpperCase() : '',\n )\n .replace(/[^a-zA-Z\\d]/g, '')\n .replace(/^([A-Z])/, m => m.toLowerCase());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { IconName } from './icon-name';\nimport { IconService } from './icon.service';\nimport { toPropertyName } from './utils/format';\n\n@Component({\n selector: 'ng-icon',\n template: '',\n standalone: true,\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgIconComponent {\n /** Define the name of the icon to display */\n @Input() set name(name: IconName | string) {\n name = toPropertyName(name);\n\n // if there is no icon with this name warn the user as they probably forgot to import it\n if (!this.iconService.icons.hasOwnProperty(name)) {\n console.warn(\n `No icon named ${name} was found. You may need to import it using the withIcons function.`,\n );\n return;\n }\n\n // insert the SVG into the template\n this.template = this.sanitizer.bypassSecurityTrustHtml(\n this.iconService.icons[name],\n );\n }\n\n /** Store the formatted icon name */\n @HostBinding('innerHTML') template?: SafeHtml;\n\n /** Define the size of the icon */\n @HostBinding('style.--ng-icon__size')\n @Input()\n set size(size: string) {\n // if the size only contains numbers, assume it is in pixels\n this._size = coerceCssPixelValue(size);\n }\n\n get size(): string {\n return this._size;\n }\n\n private _size: string = '1em';\n\n /** Define the stroke-width of the icon */\n @HostBinding('style.--ng-icon__stroke-width')\n @Input()\n strokeWidth?: string | number;\n\n /** Define the color of the icon */\n @HostBinding('style.color')\n @Input()\n color?: string;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly iconService: IconService,\n ) {}\n}\n\nfunction coerceCssPixelValue(value: string): string {\n if (value == null) {\n return '';\n }\n\n return /^\\d+$/.test(value) ? `${value}px` : value;\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgIconComponent } from './icon.component';\nimport { IconService } from './icon.service';\n\n/**\n * A barrel export of all directives for use in standalone apps\n */\nconst NgIconComponents = [NgIconComponent];\n\n// This is a temporary workaround for ng-packagr issue #2398\n@NgModule({\n imports: [NgIconComponents],\n exports: [NgIconComponents],\n})\nexport class NG_ICON_DIRECTIVES {}\n\n@NgModule({\n imports: [NgIconComponents],\n exports: [NgIconComponents],\n})\nexport class NgIconsModule {\n constructor(private readonly iconService: IconService) {\n if (Object.keys(this.iconService.icons).length === 0) {\n throw new Error(\n 'No icons have been provided. Ensure to include some icons by importing them using NgIconsModule.withIcons({ ... }).',\n );\n }\n }\n\n /**\n * Define the icons that will be included in the application. This allows unused icons to\n * be tree-shaken away to reduce bundle size\n * @param icons The object containing the required icons\n */\n static withIcons(\n icons: Record<string, string>,\n ): ModuleWithProviders<NgIconsModule> {\n IconService.addIcons(icons);\n\n return { ngModule: NgIconsModule };\n }\n}\n","import { Provider } from '@angular/core';\nimport { IconService } from './icon.service';\n\nexport function provideIcons(icons: Record<string, string>): Provider[] {\n IconService.addIcons(icons);\n\n return [];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.IconService","i1.IconService"],"mappings":"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"}
|
package/lib/icon.component.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { ElementRef } from '@angular/core';
|
|
2
1
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
3
2
|
import { IconName } from './icon-name';
|
|
4
3
|
import { IconService } from './icon.service';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
export declare class NgIconComponent {
|
|
7
|
-
private readonly elementRef;
|
|
8
6
|
private readonly sanitizer;
|
|
9
7
|
private readonly iconService;
|
|
10
8
|
/** Define the name of the icon to display */
|
|
@@ -19,7 +17,7 @@ export declare class NgIconComponent {
|
|
|
19
17
|
strokeWidth?: string | number;
|
|
20
18
|
/** Define the color of the icon */
|
|
21
19
|
color?: string;
|
|
22
|
-
constructor(
|
|
20
|
+
constructor(sanitizer: DomSanitizer, iconService: IconService);
|
|
23
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgIconComponent, never>;
|
|
24
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgIconComponent, "ng-icon", never, { "name": "name"; "size": "size"; "strokeWidth": "strokeWidth"; "color": "color"; }, {}, never, never, true>;
|
|
25
23
|
}
|
package/lib/utils/format.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hyphenated to UpperCamelCase
|
|
3
|
-
*/
|
|
4
|
-
export declare function toUpperCamelCase(str: string): string;
|
|
5
1
|
/**
|
|
6
2
|
* Hyphenated to lowerCamelCase
|
|
7
3
|
*/
|
|
8
4
|
export declare function toPropertyName(str: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Capitalizes the first letter of a string
|
|
11
|
-
*/
|
|
12
|
-
export declare function toCapitalCase(str: string): string;
|