@loyalty-cloud/ui-icons 1.1.119 → 1.1.121
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/loyalty-cloud-ui-icons.mjs +35 -32
- package/fesm2022/loyalty-cloud-ui-icons.mjs.map +1 -1
- package/package.json +5 -5
- package/types/loyalty-cloud-ui-icons.d.ts +54 -0
- package/index.d.ts +0 -5
- package/lib/lc-icon.component.d.ts +0 -24
- package/lib/lc-icon.module.d.ts +0 -9
- package/lib/safe-html.pipe.d.ts +0 -10
- package/lib/svg-icon-cache.service.d.ts +0 -14
- package/public-api.d.ts +0 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Input, ChangeDetectionStrategy, Component, Pipe, NgModule } from '@angular/core';
|
|
3
|
-
import * as i2$1 from '@angular/common';
|
|
4
3
|
import { CommonModule } from '@angular/common';
|
|
5
4
|
import { of } from 'rxjs';
|
|
6
5
|
import { map } from 'rxjs/operators';
|
|
@@ -52,10 +51,10 @@ class SvgIconCacheService {
|
|
|
52
51
|
throw new Error(`Invalid SVG content for icon: ${name}`);
|
|
53
52
|
}));
|
|
54
53
|
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
56
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SvgIconCacheService, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SvgIconCacheService, providedIn: 'root' }); }
|
|
57
56
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SvgIconCacheService, decorators: [{
|
|
59
58
|
type: Injectable,
|
|
60
59
|
args: [{
|
|
61
60
|
providedIn: 'root'
|
|
@@ -110,30 +109,34 @@ class LcIconComponent {
|
|
|
110
109
|
}
|
|
111
110
|
});
|
|
112
111
|
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LcIconComponent, deps: [{ token: SvgIconCacheService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: LcIconComponent, isStandalone: false, selector: "lc-icon", inputs: { name: "name", category: "category", size: "size", color: "color", strokeColor: "strokeColor", disabled: "disabled", placeholderIcon: "placeholderIcon" }, usesOnChanges: true, ngImport: i0, template: `
|
|
114
|
+
@if (svgIcon) {
|
|
115
|
+
<div
|
|
116
|
+
class="icon"
|
|
117
|
+
[innerHTML]="svgIcon"
|
|
118
|
+
[style.width.px]="size"
|
|
119
|
+
[style.height.px]="size"
|
|
120
|
+
[style.color]="color"
|
|
121
|
+
>
|
|
122
|
+
</div>
|
|
123
|
+
}
|
|
124
|
+
`, isInline: true, styles: [".icon{display:flex;align-items:center;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
124
125
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LcIconComponent, decorators: [{
|
|
126
127
|
type: Component,
|
|
127
128
|
args: [{ selector: 'lc-icon', template: `
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
129
|
+
@if (svgIcon) {
|
|
130
|
+
<div
|
|
131
|
+
class="icon"
|
|
132
|
+
[innerHTML]="svgIcon"
|
|
133
|
+
[style.width.px]="size"
|
|
134
|
+
[style.height.px]="size"
|
|
135
|
+
[style.color]="color"
|
|
136
|
+
>
|
|
137
|
+
</div>
|
|
138
|
+
}
|
|
139
|
+
`, changeDetection: ChangeDetectionStrategy.Default, standalone: false, styles: [".icon{display:flex;align-items:center;justify-content:center}\n"] }]
|
|
137
140
|
}], ctorParameters: () => [{ type: SvgIconCacheService }, { type: i0.ChangeDetectorRef }], propDecorators: { name: [{
|
|
138
141
|
type: Input
|
|
139
142
|
}], category: [{
|
|
@@ -157,10 +160,10 @@ class SafeHtmlPipe {
|
|
|
157
160
|
transform(value) {
|
|
158
161
|
return this.sanitizer.bypassSecurityTrustHtml(value);
|
|
159
162
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
161
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
164
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: SafeHtmlPipe, isStandalone: false, name: "safeHtml" }); }
|
|
162
165
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
164
167
|
type: Pipe,
|
|
165
168
|
args: [{
|
|
166
169
|
name: 'safeHtml',
|
|
@@ -169,11 +172,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
169
172
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
170
173
|
|
|
171
174
|
class LcIconModule {
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
173
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
174
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LcIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
176
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: LcIconModule, declarations: [LcIconComponent, SafeHtmlPipe], imports: [CommonModule], exports: [LcIconComponent] }); }
|
|
177
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LcIconModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule] }); }
|
|
175
178
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LcIconModule, decorators: [{
|
|
177
180
|
type: NgModule,
|
|
178
181
|
args: [{ declarations: [LcIconComponent, SafeHtmlPipe],
|
|
179
182
|
exports: [LcIconComponent], imports: [CommonModule], providers: [provideHttpClient(withInterceptorsFromDi())] }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loyalty-cloud-ui-icons.mjs","sources":["../../../projects/loyalty-cloud-ui-icons/src/lib/svg-icon-cache.service.ts","../../../projects/loyalty-cloud-ui-icons/src/lib/lc-icon.component.ts","../../../projects/loyalty-cloud-ui-icons/src/lib/safe-html.pipe.ts","../../../projects/loyalty-cloud-ui-icons/src/lib/lc-icon.module.ts","../../../projects/loyalty-cloud-ui-icons/src/public-api.ts","../../../projects/loyalty-cloud-ui-icons/src/loyalty-cloud-ui-icons.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SvgIconCacheService {\n private iconCache = new Map<string, SafeHtml>();\n disabledColor: string = '#98A2B3';\n\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) { }\n\n registerIcon(name: string, url: string, size: number, color: string, disabled: boolean = false, strokeColor:string): Observable<SafeHtml> {\n const cacheKey = `${name}-${size}-${color}-${disabled}-${strokeColor}`; // Unique cache key\n\n if (this.iconCache.has(cacheKey)) {\n return of(this.iconCache.get(cacheKey)!); // Return the cached icon\n }\n\n return this.http.get(url, { responseType: 'text' }).pipe(\n map((svg) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(svg, 'image/svg+xml');\n const svgElement = doc.querySelector('svg');\n\n if (svgElement) {\n // Update size attributes\n svgElement.setAttribute('width', `${size}`);\n svgElement.setAttribute('height', `${size}`);\n\n // Update color only for elements without a 'fill' attribute\n if(!strokeColor) {\n const elementsToUpdate = svgElement.querySelectorAll('path, circle, rect, polygon, ellipse');\n elementsToUpdate.forEach((el) => {\n if (!el.hasAttribute('fill')) {\n el.setAttribute('fill', disabled ? this.disabledColor : color || 'black');\n }\n });\n }\n\n // If color is NOT present but strokeColor is provided, apply it to elements with stroke\n if ((!color || color === 'currentColor') && strokeColor) {\n const elementsWithStroke = svgElement.querySelectorAll('[stroke]');\n elementsWithStroke.forEach((el) => {\n el.setAttribute('stroke', strokeColor);\n });\n }\n\n const serializedSvg = new XMLSerializer().serializeToString(svgElement);\n const sanitizedSvg = this.sanitizer.bypassSecurityTrustHtml(serializedSvg);\n this.iconCache.set(cacheKey, sanitizedSvg); // Cache using the unique key\n return sanitizedSvg;\n }\n\n throw new Error(`Invalid SVG content for icon: ${name}`);\n })\n );\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, SimpleChanges } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { SvgIconCacheService } from './svg-icon-cache.service';\n\n@Component({\n selector: 'lc-icon',\n template: `\n <div \n class=\"icon\"\n [innerHTML]=\"svgIcon\" \n [style.width.px]=\"size\" \n [style.height.px]=\"size\"\n [style.color]=\"color\"\n *ngIf=\"svgIcon\">\n </div>\n `,\n styleUrls: [\n 'lc-icon.component.scss'\n ],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: false\n})\nexport class LcIconComponent implements OnInit {\n @Input() name: string = '';\n @Input() category: string = '';\n @Input() size: number = 24;\n @Input() color: string = 'currentColor';\n @Input() strokeColor: string = '';\n @Input() disabled: boolean = false;\n @Input() placeholderIcon: string = '';\n\n svgIcon: SafeHtml | null | undefined = null;\n disabledColor: string = '#98A2B3';\n\n constructor(\n private iconRegistry: SvgIconCacheService,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.loadIcon();\n }\n\n ngOnInit() {\n this.loadIcon();\n }\n\n private loadIcon() {\n if (!this.name) {\n console.warn('Icon name is required.');\n this.svgIcon = null;\n return;\n }\n\n const iconPath = this.category\n ? `../assets/icons/${this.category}/${this.name}.svg`\n : `../assets/icons/${this.name}.svg`;\n\n this.tryLoadIcon(this.name, iconPath, true);\n }\n\n private tryLoadIcon(name: string, path: string, allowFallback: boolean) {\n this.iconRegistry\n .registerIcon(name, path, this.size, this.color, this.disabled, this.strokeColor)\n .subscribe(\n (icon) => {\n this.svgIcon = icon;\n this.cdr.detectChanges();\n },\n (error) => {\n // console.error(`Error loading icon \"${name}\":`, error);\n \n if (allowFallback && this.placeholderIcon && this.placeholderIcon !== name) {\n const fallbackPath = `../assets/icons/${this.placeholderIcon}.svg`;\n\n this.tryLoadIcon(this.placeholderIcon, fallbackPath, false);\n } else {\n this.svgIcon = null;\n }\n }\n );\n }\n}\n\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n standalone: false\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LcIconComponent } from './lc-icon.component';\nimport { SafeHtmlPipe } from './safe-html.pipe';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\n\n@NgModule({ declarations: [LcIconComponent, SafeHtmlPipe],\n exports: [LcIconComponent], imports: [CommonModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\nexport class LcIconModule {}\n","/*\n * Public API Surface of @loyalty-cloud/ui-icons\n */\n\nexport * from './lib/lc-icon.module';\nexport * from './lib/lc-icon.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SvgIconCacheService","i2"],"mappings":";;;;;;;;;;MASa,mBAAmB,CAAA;IAI9B,WAAoB,CAAA,SAAuB,EAAU,IAAgB,EAAA;QAAjD,IAAS,CAAA,SAAA,GAAT,SAAS;QAAwB,IAAI,CAAA,IAAA,GAAJ,IAAI;AAHjD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAoB;QAC/C,IAAa,CAAA,aAAA,GAAW,SAAS;;AAIjC,IAAA,YAAY,CAAC,IAAY,EAAE,GAAW,EAAE,IAAY,EAAE,KAAa,EAAE,QAAA,GAAoB,KAAK,EAAE,WAAkB,EAAA;AAChH,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,IAAI,IAAI,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,CAAC;QAEvE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,CAAC;;QAG3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE;YAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC;YACxD,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;YAE3C,IAAI,UAAU,EAAE;;gBAEd,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAG,EAAA,IAAI,CAAE,CAAA,CAAC;gBAC3C,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAG,EAAA,IAAI,CAAE,CAAA,CAAC;;gBAG5C,IAAG,CAAC,WAAW,EAAE;oBACf,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,sCAAsC,CAAC;AAC5F,oBAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;wBAC9B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC5B,4BAAA,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,OAAO,CAAC;;AAE7E,qBAAC,CAAC;;;gBAIJ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,cAAc,KAAK,WAAW,EAAE;oBACvD,MAAM,kBAAkB,GAAG,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAClE,oBAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AAChC,wBAAA,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC;AACxC,qBAAC,CAAC;;gBAGJ,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;gBACvE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,aAAa,CAAC;gBAC1E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC3C,gBAAA,OAAO,YAAY;;AAGrB,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAA,CAAE,CAAC;SACzD,CAAC,CACH;;+GAlDQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCcY,eAAe,CAAA;IAY1B,WACU,CAAA,YAAiC,EACjC,GAAsB,EAAA;QADtB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG;QAbJ,IAAI,CAAA,IAAA,GAAW,EAAE;QACjB,IAAQ,CAAA,QAAA,GAAW,EAAE;QACrB,IAAI,CAAA,IAAA,GAAW,EAAE;QACjB,IAAK,CAAA,KAAA,GAAW,cAAc;QAC9B,IAAW,CAAA,WAAA,GAAW,EAAE;QACxB,IAAQ,CAAA,QAAA,GAAY,KAAK;QACzB,IAAe,CAAA,eAAA,GAAW,EAAE;QAErC,IAAO,CAAA,OAAA,GAAgC,IAAI;QAC3C,IAAa,CAAA,aAAA,GAAW,SAAS;;AAOjC,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,EAAE;;IAGT,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB;;AAGF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;cAClB,mBAAmB,IAAI,CAAC,QAAQ,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAM,IAAA;AACrD,cAAE,CAAmB,gBAAA,EAAA,IAAI,CAAC,IAAI,MAAM;QAEtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;;AAGrC,IAAA,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,aAAsB,EAAA;AACpE,QAAA,IAAI,CAAC;aACF,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW;AAC/E,aAAA,SAAS,CACR,CAAC,IAAI,KAAI;AACP,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC1B,SAAC,EACD,CAAC,KAAK,KAAI;;AAGR,YAAA,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;AAC1E,gBAAA,MAAM,YAAY,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,eAAe,MAAM;gBAElE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC;;iBACtD;AACL,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AAEvB,SAAC,CACF;;+GA1DM,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAhBd,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AASX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;;4FAOU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EACT,QAAA,EAAA;;;;;;;;;AASX,EAAA,CAAA,EAAA,eAAA,EAIkB,uBAAuB,CAAC,OAAO,EAAA,UAAA,EACpC,KAAK,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA;qHAGV,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;;;MCtBU,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAE7B,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC;;+GAJ3C,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCGY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAFE,eAAe,EAAE,YAAY,CACd,EAAA,OAAA,EAAA,CAAA,YAAY,aAAxC,eAAe,CAAA,EAAA,CAAA,CAAA;gHAChB,YAAY,EAAA,SAAA,EAD2C,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAA,OAAA,EAAA,CAAvE,YAAY,CAAA,EAAA,CAAA,CAAA;;4FACzC,YAAY,EAAA,UAAA,EAAA,CAAA;kBAFxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,YAAY,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;oBACrD,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE;;;ACRnH;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"loyalty-cloud-ui-icons.mjs","sources":["../../../projects/loyalty-cloud-ui-icons/src/lib/svg-icon-cache.service.ts","../../../projects/loyalty-cloud-ui-icons/src/lib/lc-icon.component.ts","../../../projects/loyalty-cloud-ui-icons/src/lib/safe-html.pipe.ts","../../../projects/loyalty-cloud-ui-icons/src/lib/lc-icon.module.ts","../../../projects/loyalty-cloud-ui-icons/src/public-api.ts","../../../projects/loyalty-cloud-ui-icons/src/loyalty-cloud-ui-icons.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SvgIconCacheService {\n private iconCache = new Map<string, SafeHtml>();\n disabledColor: string = '#98A2B3';\n\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) { }\n\n registerIcon(name: string, url: string, size: number, color: string, disabled: boolean = false, strokeColor:string): Observable<SafeHtml> {\n const cacheKey = `${name}-${size}-${color}-${disabled}-${strokeColor}`; // Unique cache key\n\n if (this.iconCache.has(cacheKey)) {\n return of(this.iconCache.get(cacheKey)!); // Return the cached icon\n }\n\n return this.http.get(url, { responseType: 'text' }).pipe(\n map((svg) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(svg, 'image/svg+xml');\n const svgElement = doc.querySelector('svg');\n\n if (svgElement) {\n // Update size attributes\n svgElement.setAttribute('width', `${size}`);\n svgElement.setAttribute('height', `${size}`);\n\n // Update color only for elements without a 'fill' attribute\n if(!strokeColor) {\n const elementsToUpdate = svgElement.querySelectorAll('path, circle, rect, polygon, ellipse');\n elementsToUpdate.forEach((el) => {\n if (!el.hasAttribute('fill')) {\n el.setAttribute('fill', disabled ? this.disabledColor : color || 'black');\n }\n });\n }\n\n // If color is NOT present but strokeColor is provided, apply it to elements with stroke\n if ((!color || color === 'currentColor') && strokeColor) {\n const elementsWithStroke = svgElement.querySelectorAll('[stroke]');\n elementsWithStroke.forEach((el) => {\n el.setAttribute('stroke', strokeColor);\n });\n }\n\n const serializedSvg = new XMLSerializer().serializeToString(svgElement);\n const sanitizedSvg = this.sanitizer.bypassSecurityTrustHtml(serializedSvg);\n this.iconCache.set(cacheKey, sanitizedSvg); // Cache using the unique key\n return sanitizedSvg;\n }\n\n throw new Error(`Invalid SVG content for icon: ${name}`);\n })\n );\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, SimpleChanges } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { SvgIconCacheService } from './svg-icon-cache.service';\n\n@Component({\n selector: 'lc-icon',\n template: `\n @if (svgIcon) {\n <div\n class=\"icon\"\n [innerHTML]=\"svgIcon\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [style.color]=\"color\"\n >\n </div>\n }\n `,\n styleUrls: [\n 'lc-icon.component.scss'\n ],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: false\n})\nexport class LcIconComponent implements OnInit {\n @Input() name: string = '';\n @Input() category: string = '';\n @Input() size: number = 24;\n @Input() color: string = 'currentColor';\n @Input() strokeColor: string = '';\n @Input() disabled: boolean = false;\n @Input() placeholderIcon: string = '';\n\n svgIcon: SafeHtml | null | undefined = null;\n disabledColor: string = '#98A2B3';\n\n constructor(\n private iconRegistry: SvgIconCacheService,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.loadIcon();\n }\n\n ngOnInit() {\n this.loadIcon();\n }\n\n private loadIcon() {\n if (!this.name) {\n console.warn('Icon name is required.');\n this.svgIcon = null;\n return;\n }\n\n const iconPath = this.category\n ? `../assets/icons/${this.category}/${this.name}.svg`\n : `../assets/icons/${this.name}.svg`;\n\n this.tryLoadIcon(this.name, iconPath, true);\n }\n\n private tryLoadIcon(name: string, path: string, allowFallback: boolean) {\n this.iconRegistry\n .registerIcon(name, path, this.size, this.color, this.disabled, this.strokeColor)\n .subscribe(\n (icon) => {\n this.svgIcon = icon;\n this.cdr.detectChanges();\n },\n (error) => {\n // console.error(`Error loading icon \"${name}\":`, error);\n \n if (allowFallback && this.placeholderIcon && this.placeholderIcon !== name) {\n const fallbackPath = `../assets/icons/${this.placeholderIcon}.svg`;\n\n this.tryLoadIcon(this.placeholderIcon, fallbackPath, false);\n } else {\n this.svgIcon = null;\n }\n }\n );\n }\n}\n\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n standalone: false\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LcIconComponent } from './lc-icon.component';\nimport { SafeHtmlPipe } from './safe-html.pipe';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\n\n@NgModule({ declarations: [LcIconComponent, SafeHtmlPipe],\n exports: [LcIconComponent], imports: [CommonModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\nexport class LcIconModule {}\n","/*\n * Public API Surface of @loyalty-cloud/ui-icons\n */\n\nexport * from './lib/lc-icon.module';\nexport * from './lib/lc-icon.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SvgIconCacheService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loyalty-cloud/ui-icons",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.121",
|
|
4
4
|
"private": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/common": "
|
|
7
|
-
"@angular/core": "
|
|
6
|
+
"@angular/common": "21.0.0",
|
|
7
|
+
"@angular/core": "21.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "^2.3.0"
|
|
11
11
|
},
|
|
12
12
|
"sideEffects": false,
|
|
13
13
|
"module": "fesm2022/loyalty-cloud-ui-icons.mjs",
|
|
14
|
-
"typings": "
|
|
14
|
+
"typings": "types/loyalty-cloud-ui-icons.d.ts",
|
|
15
15
|
"exports": {
|
|
16
16
|
"./package.json": {
|
|
17
17
|
"default": "./package.json"
|
|
18
18
|
},
|
|
19
19
|
".": {
|
|
20
|
-
"types": "./
|
|
20
|
+
"types": "./types/loyalty-cloud-ui-icons.d.ts",
|
|
21
21
|
"default": "./fesm2022/loyalty-cloud-ui-icons.mjs"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit, ChangeDetectorRef, SimpleChanges, PipeTransform } from '@angular/core';
|
|
3
|
+
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
4
|
+
import { HttpClient } from '@angular/common/http';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
import * as i3 from '@angular/common';
|
|
7
|
+
|
|
8
|
+
declare class SvgIconCacheService {
|
|
9
|
+
private sanitizer;
|
|
10
|
+
private http;
|
|
11
|
+
private iconCache;
|
|
12
|
+
disabledColor: string;
|
|
13
|
+
constructor(sanitizer: DomSanitizer, http: HttpClient);
|
|
14
|
+
registerIcon(name: string, url: string, size: number, color: string, disabled: boolean | undefined, strokeColor: string): Observable<SafeHtml>;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SvgIconCacheService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SvgIconCacheService>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
declare class LcIconComponent implements OnInit {
|
|
20
|
+
private iconRegistry;
|
|
21
|
+
private cdr;
|
|
22
|
+
name: string;
|
|
23
|
+
category: string;
|
|
24
|
+
size: number;
|
|
25
|
+
color: string;
|
|
26
|
+
strokeColor: string;
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
placeholderIcon: string;
|
|
29
|
+
svgIcon: SafeHtml | null | undefined;
|
|
30
|
+
disabledColor: string;
|
|
31
|
+
constructor(iconRegistry: SvgIconCacheService, cdr: ChangeDetectorRef);
|
|
32
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
33
|
+
ngOnInit(): void;
|
|
34
|
+
private loadIcon;
|
|
35
|
+
private tryLoadIcon;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LcIconComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LcIconComponent, "lc-icon", never, { "name": { "alias": "name"; "required": false; }; "category": { "alias": "category"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "strokeColor": { "alias": "strokeColor"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholderIcon": { "alias": "placeholderIcon"; "required": false; }; }, {}, never, never, false, never>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare class SafeHtmlPipe implements PipeTransform {
|
|
41
|
+
private sanitizer;
|
|
42
|
+
constructor(sanitizer: DomSanitizer);
|
|
43
|
+
transform(value: string): SafeHtml;
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SafeHtmlPipe, never>;
|
|
45
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SafeHtmlPipe, "safeHtml", false>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
declare class LcIconModule {
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LcIconModule, never>;
|
|
50
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<LcIconModule, [typeof LcIconComponent, typeof SafeHtmlPipe], [typeof i3.CommonModule], [typeof LcIconComponent]>;
|
|
51
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<LcIconModule>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { LcIconComponent, LcIconModule };
|
package/index.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { SafeHtml } from '@angular/platform-browser';
|
|
3
|
-
import { SvgIconCacheService } from './svg-icon-cache.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class LcIconComponent implements OnInit {
|
|
6
|
-
private iconRegistry;
|
|
7
|
-
private cdr;
|
|
8
|
-
name: string;
|
|
9
|
-
category: string;
|
|
10
|
-
size: number;
|
|
11
|
-
color: string;
|
|
12
|
-
strokeColor: string;
|
|
13
|
-
disabled: boolean;
|
|
14
|
-
placeholderIcon: string;
|
|
15
|
-
svgIcon: SafeHtml | null | undefined;
|
|
16
|
-
disabledColor: string;
|
|
17
|
-
constructor(iconRegistry: SvgIconCacheService, cdr: ChangeDetectorRef);
|
|
18
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
19
|
-
ngOnInit(): void;
|
|
20
|
-
private loadIcon;
|
|
21
|
-
private tryLoadIcon;
|
|
22
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LcIconComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LcIconComponent, "lc-icon", never, { "name": { "alias": "name"; "required": false; }; "category": { "alias": "category"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "strokeColor": { "alias": "strokeColor"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholderIcon": { "alias": "placeholderIcon"; "required": false; }; }, {}, never, never, false, never>;
|
|
24
|
-
}
|
package/lib/lc-icon.module.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./lc-icon.component";
|
|
3
|
-
import * as i2 from "./safe-html.pipe";
|
|
4
|
-
import * as i3 from "@angular/common";
|
|
5
|
-
export declare class LcIconModule {
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LcIconModule, never>;
|
|
7
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<LcIconModule, [typeof i1.LcIconComponent, typeof i2.SafeHtmlPipe], [typeof i3.CommonModule], [typeof i1.LcIconComponent]>;
|
|
8
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<LcIconModule>;
|
|
9
|
-
}
|
package/lib/safe-html.pipe.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { PipeTransform } from '@angular/core';
|
|
2
|
-
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SafeHtmlPipe implements PipeTransform {
|
|
5
|
-
private sanitizer;
|
|
6
|
-
constructor(sanitizer: DomSanitizer);
|
|
7
|
-
transform(value: string): SafeHtml;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SafeHtmlPipe, never>;
|
|
9
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<SafeHtmlPipe, "safeHtml", false>;
|
|
10
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class SvgIconCacheService {
|
|
6
|
-
private sanitizer;
|
|
7
|
-
private http;
|
|
8
|
-
private iconCache;
|
|
9
|
-
disabledColor: string;
|
|
10
|
-
constructor(sanitizer: DomSanitizer, http: HttpClient);
|
|
11
|
-
registerIcon(name: string, url: string, size: number, color: string, disabled: boolean | undefined, strokeColor: string): Observable<SafeHtml>;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SvgIconCacheService, never>;
|
|
13
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SvgIconCacheService>;
|
|
14
|
-
}
|
package/public-api.d.ts
DELETED