@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.
@@ -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: "19.2.15", ngImport: i0, type: SvgIconCacheService, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
56
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SvgIconCacheService, providedIn: 'root' }); }
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: "19.2.15", ngImport: i0, type: SvgIconCacheService, decorators: [{
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: "19.2.15", ngImport: i0, type: LcIconComponent, deps: [{ token: SvgIconCacheService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", 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: `
115
- <div
116
- class="icon"
117
- [innerHTML]="svgIcon"
118
- [style.width.px]="size"
119
- [style.height.px]="size"
120
- [style.color]="color"
121
- *ngIf="svgIcon">
122
- </div>
123
- `, isInline: true, styles: [".icon{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
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: "19.2.15", ngImport: i0, type: LcIconComponent, decorators: [{
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
- <div
129
- class="icon"
130
- [innerHTML]="svgIcon"
131
- [style.width.px]="size"
132
- [style.height.px]="size"
133
- [style.color]="color"
134
- *ngIf="svgIcon">
135
- </div>
136
- `, changeDetection: ChangeDetectionStrategy.Default, standalone: false, styles: [".icon{display:flex;align-items:center;justify-content:center}\n"] }]
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: "19.2.15", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
161
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: SafeHtmlPipe, isStandalone: false, name: "safeHtml" }); }
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: "19.2.15", ngImport: i0, type: SafeHtmlPipe, decorators: [{
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: "19.2.15", ngImport: i0, type: LcIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
173
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: LcIconModule, declarations: [LcIconComponent, SafeHtmlPipe], imports: [CommonModule], exports: [LcIconComponent] }); }
174
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LcIconModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule] }); }
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: "19.2.15", ngImport: i0, type: LcIconModule, decorators: [{
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.119",
3
+ "version": "1.1.121",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
- "@angular/common": "19.2.15",
7
- "@angular/core": "19.2.15"
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": "index.d.ts",
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": "./index.d.ts",
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,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@loyalty-cloud/ui-icons" />
5
- export * from './public-api';
@@ -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
- }
@@ -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
- }
@@ -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
@@ -1,2 +0,0 @@
1
- export * from './lib/lc-icon.module';
2
- export * from './lib/lc-icon.component';