@ng-icons/core 13.0.0 → 13.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -90
- package/esm2020/index.mjs +3 -4
- package/esm2020/lib/icon.component.mjs +67 -75
- package/esm2020/lib/icon.module.mjs +33 -39
- package/esm2020/lib/icon.service.mjs +25 -0
- package/esm2020/lib/utils/format.mjs +22 -0
- package/esm2020/ng-icons-core.mjs +4 -4
- package/fesm2015/ng-icons-core.mjs +134 -111
- package/fesm2015/ng-icons-core.mjs.map +1 -1
- package/fesm2020/ng-icons-core.mjs +134 -107
- package/fesm2020/ng-icons-core.mjs.map +1 -1
- package/index.d.ts +2 -3
- package/lib/icon.component.d.ts +24 -33
- package/lib/icon.module.d.ts +17 -16
- package/lib/icon.service.d.ts +13 -0
- package/lib/utils/format.d.ts +12 -0
- package/ng-icons-core.d.ts +5 -5
- package/package.json +3 -5
- package/esm2020/lib/icon.token.mjs +0 -3
- package/lib/icon.token.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,90 +1,100 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
13
|
-
- [
|
|
14
|
-
- [
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
17
|
-
- [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Ng Icons
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
1
|
+
|
|
2
|
+
<img width="847" alt="logo" src="https://user-images.githubusercontent.com/20795331/142078474-da890691-b524-4144-9640-2f7f9da3a3a3.png">
|
|
3
|
+
|
|
4
|
+
# Ng Icons
|
|
5
|
+
|
|
6
|
+
The all-in-one icon library for Angular. This allows you to use icons from multiple icon sets with a single icon component.
|
|
7
|
+
Containing over 17000+ icons for you to use in your projects.
|
|
8
|
+
|
|
9
|
+
Currently, we support the following libraries:
|
|
10
|
+
|
|
11
|
+
- [Bootstrap Icons](https://icons.getbootstrap.com/)
|
|
12
|
+
- [Heroicons](https://heroicons.com/)
|
|
13
|
+
- [Ionicons](https://ionic.io/ionicons)
|
|
14
|
+
- [Material Icons](https://fonts.google.com/icons?selected=Material+Icons)
|
|
15
|
+
- [CSS.gg](https://css.gg/)
|
|
16
|
+
- [Feather Icons](https://feathericons.com/)
|
|
17
|
+
- [Jam Icons](https://jam-icons.com/)
|
|
18
|
+
- [Octicons](https://github.com/primer/octicons)
|
|
19
|
+
- [Radix UI Icons](https://icons.modulz.app/)
|
|
20
|
+
- [Tabler Icons](https://tabler-icons.io/)
|
|
21
|
+
- [Akar Icons](https://akaricons.com/)
|
|
22
|
+
|
|
23
|
+
Got suggestions for additional iconsets? Create an issue and we can consider adding them!
|
|
24
|
+
|
|
25
|
+
## Supported Versions
|
|
26
|
+
|
|
27
|
+
| Angular Version | Ng Icon Version |
|
|
28
|
+
| --------------- | ------------------ |
|
|
29
|
+
| 11.x.x | 12.x.x |
|
|
30
|
+
| 12.x.x | 13.x.x (or 12.x.x) |
|
|
31
|
+
| 13.x.x | 13.x.x |
|
|
32
|
+
|
|
33
|
+
> 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.
|
|
34
|
+
|
|
35
|
+
## Installation
|
|
36
|
+
|
|
37
|
+
You must install the `@ng-icons/core` package, however you only need to install the iconset libraries you intend to use.
|
|
38
|
+
|
|
39
|
+
E.g:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm i @ng-icons/core @ng-icons/heroicons ...
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
or
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
yarn add @ng-icons/core @ng-icons/heroicons ...
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Packages
|
|
52
|
+
|
|
53
|
+
The following packages are available:
|
|
54
|
+
|
|
55
|
+
| Package | License |
|
|
56
|
+
| --------------------------- | ---------- |
|
|
57
|
+
| `@ng-icons/core` | MIT |
|
|
58
|
+
| `@ng-icons/bootstrap-icons` | MIT |
|
|
59
|
+
| `@ng-icons/heroicons` | MIT |
|
|
60
|
+
| `@ng-icons/ionicons` | MIT |
|
|
61
|
+
| `@ng-icons/material-icons` | Apache 2.0 |
|
|
62
|
+
| `@ng-icons/css.gg` | MIT |
|
|
63
|
+
| `@ng-icons/feather-icons` | MIT |
|
|
64
|
+
| `@ng-icons/jam-icons` | MIT |
|
|
65
|
+
| `@ng-icons/octicons` | MIT |
|
|
66
|
+
| `@ng-icons/radix-icons` | MIT |
|
|
67
|
+
| `@ng-icons/tabler-icons` | MIT |
|
|
68
|
+
| `@ng-icons/akar-icons` | MIT |
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
|
|
72
|
+
Import the `NgIconsModule` and register the icons you wish to use:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { NgIconsModule } from '@ng-icons/core';
|
|
76
|
+
import { FeatherAirplay } from '@ng-icons/feather-icons';
|
|
77
|
+
import { HeroUsers } from '@ng-icons/heroicons';
|
|
78
|
+
|
|
79
|
+
@NgModule({
|
|
80
|
+
imports: [
|
|
81
|
+
BrowserModule,
|
|
82
|
+
NgIconsModule.withIcons({ FeatherAirplay, HeroUsers }),
|
|
83
|
+
],
|
|
84
|
+
})
|
|
85
|
+
export class AppModule {}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
You can register icons in multiple modules, this allows icons to be lazy loaded in child modules.
|
|
89
|
+
|
|
90
|
+
You can then use the icon in your templates:
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<ng-icon name="feather-airplay"></ng-icon>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
| Name | Type | Description |
|
|
97
|
+
| ----------- | -------------------- | ---------------------------------------------------------------------------------- |
|
|
98
|
+
| size | `string` | Define the size of the icon. This defaults to the current font size. |
|
|
99
|
+
| color | `string` | Define the color of the icon. This defaults to the current text color. |
|
|
100
|
+
| strokeWidth | `string` \| `number` | Define the stroke-width of the icon. This only works on iconsets that use strokes. |
|
package/esm2020/index.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from './lib/icon.component';
|
|
2
|
-
export * from './lib/icon.module';
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24udG9rZW4nO1xuIl19
|
|
1
|
+
export * from './lib/icon.component';
|
|
2
|
+
export * from './lib/icon.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9pY29uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24ubW9kdWxlJztcclxuIl19
|
|
@@ -1,75 +1,67 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import * as
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.
|
|
11
|
-
|
|
12
|
-
this.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
type: Input
|
|
69
|
-
}], strokeWidth: [{
|
|
70
|
-
type: HostBinding,
|
|
71
|
-
args: ['style.--ng-icon__stroke-width']
|
|
72
|
-
}, {
|
|
73
|
-
type: Input
|
|
74
|
-
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDOzs7QUFRbkUsTUFBTSxPQUFPLGFBQWE7SUFtQ3hCLFlBQ21CLFVBQW1DLEVBQ25DLFNBQXVCLEVBQ0gsS0FBK0I7UUFGbkQsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUNILFVBQUssR0FBTCxLQUFLLENBQTBCO1FBbEJ0RSxrQ0FBa0M7UUFHbEMsU0FBSSxHQUFXLEtBQUssQ0FBQztJQWdCbEIsQ0FBQztJQXRDSiw2Q0FBNkM7SUFDN0MsSUFBYSxJQUFJLENBQUMsSUFBWTtRQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLHdGQUF3RjtRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEMsT0FBTyxDQUFDLElBQUksQ0FDVixpQkFBaUIsSUFBSSxxRUFBcUUsQ0FDM0YsQ0FBQztZQUNGLE9BQU87U0FDUjtRQUVELG1DQUFtQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFlRCwyQkFBMkI7SUFDM0IsSUFBSSxPQUFPO1FBQ1QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBUUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLEdBQVc7UUFDaEMsT0FBTyxHQUFHO2FBQ1AsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUM5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM3QjthQUNBLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQzNCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQUMsR0FBVztRQUMvQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDOzswR0FqRVUsYUFBYSx3RUFzQ2QsVUFBVTs4RkF0Q1QsYUFBYSxzUUFKZCxFQUFFOzJGQUlELGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsU0FBUyxZQUNULEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTTs7MEJBd0M1QyxNQUFNOzJCQUFDLFVBQVU7NENBcENQLElBQUk7c0JBQWhCLEtBQUs7Z0JBZ0JvQixRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVc7Z0JBS3hCLElBQUk7c0JBRkgsV0FBVzt1QkFBQyx1QkFBdUI7O3NCQUNuQyxLQUFLO2dCQU1OLFdBQVc7c0JBRlYsV0FBVzt1QkFBQywrQkFBK0I7O3NCQUMzQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbnNUb2tlbiB9IGZyb20gJy4vaWNvbi50b2tlbic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWljb24nLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQge1xuICAvKiogRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBpY29uIHRvIGRpc3BsYXkgKi9cbiAgQElucHV0KCkgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbmFtZSA9IHRoaXMudG9VcHBlckNhbWVsQ2FzZShuYW1lKTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIG5vIGljb24gd2l0aCB0aGlzIG5hbWUgd2FybiB0aGUgdXNlciBhcyB0aGV5IHByb2JhYmx5IGZvcmdvdCB0byBpbXBvcnQgaXRcbiAgICBpZiAoIXRoaXMuaWNvbnNldC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTm8gaWNvbiBuYW1lZCAke25hbWV9IHdhcyBmb3VuZC4gWW91IG1heSBuZWVkIHRvIGltcG9ydCBpdCB1c2luZyB0aGUgd2l0aEljb25zIGZ1bmN0aW9uLmAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGluc2VydCB0aGUgU1ZHIGludG8gdGhlIHRlbXBsYXRlXG4gICAgdGhpcy50ZW1wbGF0ZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuaWNvbnNldFtuYW1lXSk7XG4gIH1cblxuICAvKiogU3RvcmUgdGhlIGZvcm1hdHRlZCBpY29uIG5hbWUgKi9cbiAgQEhvc3RCaW5kaW5nKCdpbm5lckhUTUwnKSB0ZW1wbGF0ZT86IFNhZmVIdG1sO1xuXG4gIC8qKiBEZWZpbmUgdGhlIHNpemUgb2YgdGhlIGljb24gKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLW5nLWljb25fX3NpemUnKVxuICBASW5wdXQoKVxuICBzaXplOiBzdHJpbmcgPSAnMWVtJztcblxuICAvKiogRGVmaW5lIHRoZSBzdHJva2Utd2lkdGggb2YgdGhlIGljb24gKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLW5nLWljb25fX3N0cm9rZS13aWR0aCcpXG4gIEBJbnB1dCgpXG4gIHN0cm9rZVdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKiBGbGF0dGVuIHRoZSBpY29uc2V0cyAqL1xuICBnZXQgaWNvbnNldCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgLi4udGhpcy5pY29ucyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgQEluamVjdChJY29uc1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10sXG4gICkge31cblxuICAvKipcbiAgICogSHlwaGVuYXRlZCB0byBVcHBlckNhbWVsQ2FzZVxuICAgKi9cbiAgcHJpdmF0ZSB0b1VwcGVyQ2FtZWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b0NhcGl0YWxDYXNlKHRoaXMudG9Qcm9wZXJ0eU5hbWUoc3RyKSk7XG4gIH1cblxuICAvKipcbiAgICogSHlwaGVuYXRlZCB0byBsb3dlckNhbWVsQ2FzZVxuICAgKi9cbiAgcHJpdmF0ZSB0b1Byb3BlcnR5TmFtZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0clxuICAgICAgLnJlcGxhY2UoLyhbXmEtekEtWjAtOV0pKyguKT8vZywgKF8sIF9fLCBjaHIpID0+XG4gICAgICAgIGNociA/IGNoci50b1VwcGVyQ2FzZSgpIDogJycsXG4gICAgICApXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVpcXGRdL2csICcnKVxuICAgICAgLnJlcGxhY2UoL14oW0EtWl0pLywgbSA9PiBtLnRvTG93ZXJDYXNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcGl0YWxpemVzIHRoZSBmaXJzdCBsZXR0ZXIgb2YgYSBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgdG9DYXBpdGFsQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHIoMSk7XG4gIH1cbn1cbiJdfQ==
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import { toUpperCamelCase } from './utils/format';
|
|
4
|
+
import { IconService } from './icon.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/platform-browser";
|
|
7
|
+
import * as i2 from "./icon.service";
|
|
8
|
+
export class IconComponent {
|
|
9
|
+
constructor(elementRef, sanitizer, iconService) {
|
|
10
|
+
this.elementRef = elementRef;
|
|
11
|
+
this.sanitizer = sanitizer;
|
|
12
|
+
this.iconService = iconService;
|
|
13
|
+
this._size = '1em';
|
|
14
|
+
}
|
|
15
|
+
/** Define the name of the icon to display */
|
|
16
|
+
set name(name) {
|
|
17
|
+
name = toUpperCamelCase(name);
|
|
18
|
+
// if there is no icon with this name warn the user as they probably forgot to import it
|
|
19
|
+
if (!this.iconService.icons.hasOwnProperty(name)) {
|
|
20
|
+
console.warn(`No icon named ${name} was found. You may need to import it using the withIcons function.`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// insert the SVG into the template
|
|
24
|
+
this.template = this.sanitizer.bypassSecurityTrustHtml(this.iconService.icons[name]);
|
|
25
|
+
}
|
|
26
|
+
/** Define the size of the icon */
|
|
27
|
+
set size(size) {
|
|
28
|
+
// if the size only contains numbers, assume it is in pixels
|
|
29
|
+
this._size = coerceCssPixelValue(size);
|
|
30
|
+
}
|
|
31
|
+
get size() {
|
|
32
|
+
return this._size;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: IconComponent, 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
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'ng-icon', template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-block;width:var(--ng-icon__size);height:var(--ng-icon__size)}\n"] }]
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: i2.IconService }]; }, propDecorators: { name: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], template: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ['innerHTML']
|
|
45
|
+
}], size: [{
|
|
46
|
+
type: HostBinding,
|
|
47
|
+
args: ['style.--ng-icon__size']
|
|
48
|
+
}, {
|
|
49
|
+
type: Input
|
|
50
|
+
}], strokeWidth: [{
|
|
51
|
+
type: HostBinding,
|
|
52
|
+
args: ['style.--ng-icon__stroke-width']
|
|
53
|
+
}, {
|
|
54
|
+
type: Input
|
|
55
|
+
}], color: [{
|
|
56
|
+
type: HostBinding,
|
|
57
|
+
args: ['style.color']
|
|
58
|
+
}, {
|
|
59
|
+
type: Input
|
|
60
|
+
}] } });
|
|
61
|
+
function coerceCssPixelValue(value) {
|
|
62
|
+
if (value == null) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
return /^\d+$/.test(value) ? `${value}px` : value;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVE3QyxNQUFNLE9BQU8sYUFBYTtJQThDeEIsWUFDbUIsVUFBbUMsRUFDbkMsU0FBdUIsRUFDdkIsV0FBd0I7UUFGeEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWZuQyxVQUFLLEdBQVcsS0FBSyxDQUFDO0lBZ0IzQixDQUFDO0lBakRKLDZDQUE2QztJQUM3QyxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzVCLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5Qix3RkFBd0Y7UUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRCxPQUFPLENBQUMsSUFBSSxDQUNWLGlCQUFpQixJQUFJLHFFQUFxRSxDQUMzRixDQUFDO1lBQ0YsT0FBTztTQUNSO1FBRUQsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQzdCLENBQUM7SUFDSixDQUFDO0lBS0Qsa0NBQWtDO0lBQ2xDLElBRUksSUFBSSxDQUFDLElBQVk7UUFDbkIsNERBQTREO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzswR0FoQ1UsYUFBYTs4RkFBYixhQUFhLG1UQUpkLEVBQUU7MkZBSUQsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxTQUFTLFlBQ1QsRUFBRSxtQkFFSyx1QkFBdUIsQ0FBQyxNQUFNO3NKQUlsQyxJQUFJO3NCQUFoQixLQUFLO2dCQWtCb0IsUUFBUTtzQkFBakMsV0FBVzt1QkFBQyxXQUFXO2dCQUtwQixJQUFJO3NCQUZQLFdBQVc7dUJBQUMsdUJBQXVCOztzQkFDbkMsS0FBSztnQkFlTixXQUFXO3NCQUZWLFdBQVc7dUJBQUMsK0JBQStCOztzQkFDM0MsS0FBSztnQkFNTixLQUFLO3NCQUZKLFdBQVc7dUJBQUMsYUFBYTs7c0JBQ3pCLEtBQUs7O0FBVVIsU0FBUyxtQkFBbUIsQ0FBQyxLQUFhO0lBQ3hDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtRQUNqQixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgdG9VcHBlckNhbWVsQ2FzZSB9IGZyb20gJy4vdXRpbHMvZm9ybWF0JztcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuL2ljb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLWljb24nLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcclxuICAvKiogRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBpY29uIHRvIGRpc3BsYXkgKi9cclxuICBASW5wdXQoKSBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIG5hbWUgPSB0b1VwcGVyQ2FtZWxDYXNlKG5hbWUpO1xyXG5cclxuICAgIC8vIGlmIHRoZXJlIGlzIG5vIGljb24gd2l0aCB0aGlzIG5hbWUgd2FybiB0aGUgdXNlciBhcyB0aGV5IHByb2JhYmx5IGZvcmdvdCB0byBpbXBvcnQgaXRcclxuICAgIGlmICghdGhpcy5pY29uU2VydmljZS5pY29ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYE5vIGljb24gbmFtZWQgJHtuYW1lfSB3YXMgZm91bmQuIFlvdSBtYXkgbmVlZCB0byBpbXBvcnQgaXQgdXNpbmcgdGhlIHdpdGhJY29ucyBmdW5jdGlvbi5gLFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaW5zZXJ0IHRoZSBTVkcgaW50byB0aGUgdGVtcGxhdGVcclxuICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcclxuICAgICAgdGhpcy5pY29uU2VydmljZS5pY29uc1tuYW1lXSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogU3RvcmUgdGhlIGZvcm1hdHRlZCBpY29uIG5hbWUgKi9cclxuICBASG9zdEJpbmRpbmcoJ2lubmVySFRNTCcpIHRlbXBsYXRlPzogU2FmZUh0bWw7XHJcblxyXG4gIC8qKiBEZWZpbmUgdGhlIHNpemUgb2YgdGhlIGljb24gKi9cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tbmctaWNvbl9fc2l6ZScpXHJcbiAgQElucHV0KClcclxuICBzZXQgc2l6ZShzaXplOiBzdHJpbmcpIHtcclxuICAgIC8vIGlmIHRoZSBzaXplIG9ubHkgY29udGFpbnMgbnVtYmVycywgYXNzdW1lIGl0IGlzIGluIHBpeGVsc1xyXG4gICAgdGhpcy5fc2l6ZSA9ICBjb2VyY2VDc3NQaXhlbFZhbHVlKHNpemUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nID0gJzFlbSc7XHJcblxyXG4gIC8qKiBEZWZpbmUgdGhlIHN0cm9rZS13aWR0aCBvZiB0aGUgaWNvbiAqL1xyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1uZy1pY29uX19zdHJva2Utd2lkdGgnKVxyXG4gIEBJbnB1dCgpXHJcbiAgc3Ryb2tlV2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gIC8qKiBEZWZpbmUgdGhlIGNvbG9yIG9mIHRoZSBpY29uICovXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5jb2xvcicpXHJcbiAgQElucHV0KClcclxuICBjb2xvcj86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxyXG4gICkge31cclxufVxyXG5cclxuZnVuY3Rpb24gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAodmFsdWUgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIC9eXFxkKyQvLnRlc3QodmFsdWUpID8gYCR7dmFsdWV9cHhgIDogdmFsdWU7XHJcbn1cclxuIl19
|
|
@@ -1,39 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IconComponent } from './icon.component';
|
|
3
|
-
import {
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* be
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
NgIconsModule.ɵ
|
|
25
|
-
NgIconsModule.ɵ
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
type: Optional
|
|
35
|
-
}, {
|
|
36
|
-
type: Inject,
|
|
37
|
-
args: [IconsToken]
|
|
38
|
-
}] }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFHbUIsS0FBK0I7UUFBL0IsVUFBSyxHQUFMLEtBQUssQ0FBMEI7UUFFaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUNiLHFIQUFxSCxDQUN0SCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQ2QsS0FBNkI7UUFFN0IsT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNuRSxDQUFDO0lBQ0osQ0FBQzs7MEdBekJVLGFBQWEsa0JBR2QsVUFBVTsyR0FIVCxhQUFhLGlCQUhULGFBQWEsYUFDbEIsYUFBYTsyR0FFWixhQUFhOzJGQUFiLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCOzswQkFHSSxRQUFROzswQkFDUixNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbnNUb2tlbiB9IGZyb20gJy4vaWNvbi50b2tlbic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0ljb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbSWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nSWNvbnNNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoSWNvbnNUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10sXG4gICkge1xuICAgIGlmICghdGhpcy5pY29ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTm8gaWNvbnMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBFbnN1cmUgdG8gaW5jbHVkZSBzb21lIGljb25zIGJ5IGltcG9ydGluZyB0aGVtIHVzaW5nIE5nSWNvbnNNb2R1bGUud2l0aEljb25zKHsgLi4uIH0pLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGljb25zIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgYXBwbGljYXRpb24uIFRoaXMgYWxsb3dzIHVudXNlZCBpY29ucyB0b1xuICAgKiBiZSB0cmVlLXNoYWtlbiBhd2F5IHRvIHJlZHVjZSBidW5kbGUgc2l6ZVxuICAgKiBAcGFyYW0gaWNvbnMgVGhlIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBpY29uc1xuICAgKi9cbiAgc3RhdGljIHdpdGhJY29ucyhcbiAgICBpY29uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ0ljb25zTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ0ljb25zTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJY29uc1Rva2VuLCBtdWx0aTogdHJ1ZSwgdXNlVmFsdWU6IGljb25zIH1dLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { IconComponent } from './icon.component';
|
|
3
|
+
import { IconService } from './icon.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./icon.service";
|
|
6
|
+
export class NgIconsModule {
|
|
7
|
+
constructor(iconService) {
|
|
8
|
+
this.iconService = iconService;
|
|
9
|
+
if (Object.keys(this.iconService.icons).length === 0) {
|
|
10
|
+
throw new Error('No icons have been provided. Ensure to include some icons by importing them using NgIconsModule.withIcons({ ... }).');
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Define the icons that will be included in the application. This allows unused icons to
|
|
15
|
+
* be tree-shaken away to reduce bundle size
|
|
16
|
+
* @param icons The object containing the required icons
|
|
17
|
+
*/
|
|
18
|
+
static withIcons(icons) {
|
|
19
|
+
IconService.addIcons(icons);
|
|
20
|
+
return { ngModule: NgIconsModule };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
NgIconsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgIconsModule, deps: [{ token: i1.IconService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
NgIconsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgIconsModule, declarations: [IconComponent], exports: [IconComponent] });
|
|
25
|
+
NgIconsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgIconsModule });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NgIconsModule, decorators: [{
|
|
27
|
+
type: NgModule,
|
|
28
|
+
args: [{
|
|
29
|
+
declarations: [IconComponent],
|
|
30
|
+
exports: [IconComponent],
|
|
31
|
+
}]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i1.IconService }]; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTdDLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ25ELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYixxSEFBcUgsQ0FDdEgsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUNkLEtBQTZCO1FBRTdCLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzswR0FwQlUsYUFBYTsyR0FBYixhQUFhLGlCQUhULGFBQWEsYUFDbEIsYUFBYTsyR0FFWixhQUFhOzJGQUFiLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4vaWNvbi5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSWNvbkNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW0ljb25Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdJY29uc01vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UpIHtcclxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmljb25TZXJ2aWNlLmljb25zKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdObyBpY29ucyBoYXZlIGJlZW4gcHJvdmlkZWQuIEVuc3VyZSB0byBpbmNsdWRlIHNvbWUgaWNvbnMgYnkgaW1wb3J0aW5nIHRoZW0gdXNpbmcgTmdJY29uc01vZHVsZS53aXRoSWNvbnMoeyAuLi4gfSkuJyxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0aGUgaWNvbnMgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBhbGxvd3MgdW51c2VkIGljb25zIHRvXHJcbiAgICogYmUgdHJlZS1zaGFrZW4gYXdheSB0byByZWR1Y2UgYnVuZGxlIHNpemVcclxuICAgKiBAcGFyYW0gaWNvbnMgVGhlIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBpY29uc1xyXG4gICAqL1xyXG4gIHN0YXRpYyB3aXRoSWNvbnMoXHJcbiAgICBpY29uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nSWNvbnNNb2R1bGU+IHtcclxuICAgIEljb25TZXJ2aWNlLmFkZEljb25zKGljb25zKTtcclxuXHJcbiAgICByZXR1cm4geyBuZ01vZHVsZTogTmdJY29uc01vZHVsZSB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class IconService {
|
|
4
|
+
/** Access the icons in the class. */
|
|
5
|
+
get icons() {
|
|
6
|
+
return IconService.icons;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Insert icons into the iconset
|
|
10
|
+
*/
|
|
11
|
+
static addIcons(icons) {
|
|
12
|
+
IconService.icons = { ...IconService.icons, ...icons };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Store the available icons. */
|
|
16
|
+
IconService.icons = {};
|
|
17
|
+
IconService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
IconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconService, providedIn: 'root' });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconService, decorators: [{
|
|
20
|
+
type: Injectable,
|
|
21
|
+
args: [{
|
|
22
|
+
providedIn: 'root',
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2ljb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sV0FBVztJQUl0QixxQ0FBcUM7SUFDckMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBNkI7UUFDM0MsV0FBVyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQ3pELENBQUM7O0FBYkQsaUNBQWlDO0FBQ2xCLGlCQUFLLEdBQXFDLEVBQUcsQ0FBQTt3R0FGakQsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uU2VydmljZSB7XHJcbiAgLyoqIFN0b3JlIHRoZSBhdmFpbGFibGUgaWNvbnMuICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgaWNvbnM6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge307XHJcblxyXG4gIC8qKiBBY2Nlc3MgdGhlIGljb25zIGluIHRoZSBjbGFzcy4gKi9cclxuICBnZXQgaWNvbnMoKTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIEljb25TZXJ2aWNlLmljb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5zZXJ0IGljb25zIGludG8gdGhlIGljb25zZXRcclxuICAgKi9cclxuICBzdGF0aWMgYWRkSWNvbnMoaWNvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcclxuICAgIEljb25TZXJ2aWNlLmljb25zID0geyAuLi5JY29uU2VydmljZS5pY29ucywgLi4uaWNvbnMgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hyphenated to UpperCamelCase
|
|
3
|
+
*/
|
|
4
|
+
export function toUpperCamelCase(str) {
|
|
5
|
+
return toCapitalCase(toPropertyName(str));
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Hyphenated to lowerCamelCase
|
|
9
|
+
*/
|
|
10
|
+
export function toPropertyName(str) {
|
|
11
|
+
return str
|
|
12
|
+
.replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) => chr ? chr.toUpperCase() : '')
|
|
13
|
+
.replace(/[^a-zA-Z\d]/g, '')
|
|
14
|
+
.replace(/^([A-Z])/, m => m.toLowerCase());
|
|
15
|
+
}
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFXO0lBQzFDLE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUc7U0FDUCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCO1NBQ0EsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVztJQUN2QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEh5cGhlbmF0ZWQgdG8gVXBwZXJDYW1lbENhc2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1VwcGVyQ2FtZWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gdG9DYXBpdGFsQ2FzZSh0b1Byb3BlcnR5TmFtZShzdHIpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEh5cGhlbmF0ZWQgdG8gbG93ZXJDYW1lbENhc2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1Byb3BlcnR5TmFtZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0clxyXG4gICAgLnJlcGxhY2UoLyhbXmEtekEtWjAtOV0pKyguKT8vZywgKF8sIF9fLCBjaHIpID0+XHJcbiAgICAgIGNociA/IGNoci50b1VwcGVyQ2FzZSgpIDogJycsXHJcbiAgICApXHJcbiAgICAucmVwbGFjZSgvW15hLXpBLVpcXGRdL2csICcnKVxyXG4gICAgLnJlcGxhY2UoL14oW0EtWl0pLywgbSA9PiBtLnRvTG93ZXJDYXNlKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciBvZiBhIHN0cmluZ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvQ2FwaXRhbENhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc3Vic3RyKDEpO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaWNvbnMtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL25nLWljb25zLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|