{"version":3,"file":"ironsource-fusion-ui-components-svg.mjs","sources":["../../../projects/fusion-ui/components/svg/svg-config.ts","../../../projects/fusion-ui/components/svg/svg.component.ts","../../../projects/fusion-ui/components/svg/svg.component.html","../../../projects/fusion-ui/components/svg/svg.module.ts","../../../projects/fusion-ui/components/svg/ironsource-fusion-ui-components-svg.ts"],"sourcesContent":["import {SvgOptions} from './svg-entities';\nimport {InjectionToken} from '@angular/core';\n\nexport const SVG_OPTIONS_DEFAULT_VALUES: SvgOptions = {\n    assetsPath: ''\n};\n\nexport const SVG_OPTIONS_TOKEN = new InjectionToken<SvgOptions>('SVG options');\n","import {Component, Input, ChangeDetectionStrategy, ElementRef, Renderer2, Inject, Optional, AfterViewInit, OnDestroy} from '@angular/core';\nimport {LogService} from '@ironsource/fusion-ui/services/log';\nimport {SVG_OPTIONS_TOKEN} from './svg-config';\nimport {SvgOptions} from './svg-entities';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable, Subject} from 'rxjs';\nimport {finalize, publishReplay, refCount, takeUntil, tap} from 'rxjs/operators';\nimport {StorageService, StorageType} from '@ironsource/fusion-ui/services/stogare';\n\n@Component({\n    selector: 'fusion-svg',\n    templateUrl: './svg.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SvgComponent implements AfterViewInit, OnDestroy {\n    // inputs\n    @Input() set path(value: string) {\n        this.onPathChanged(value);\n    }\n\n    libVersion = 'v3';\n    svgPath = '';\n\n    private onDestroy$ = new Subject<void>();\n\n    static cache: {[key: string]: Observable<any>} = {};\n\n    constructor(\n        private httpClient: HttpClient,\n        public elementRef: ElementRef,\n        public renderer: Renderer2,\n        protected logService: LogService,\n        protected storageService: StorageService,\n        @Optional() @Inject(SVG_OPTIONS_TOKEN) public svgOptions: SvgOptions\n    ) {}\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    public getUrlPath() {\n        let assetPath = '';\n        if (this.svgOptions && this.svgOptions.assetsPath) {\n            assetPath =\n                this.svgOptions.assetsPath === 'https://fusion.ironsrc.net/assets'\n                    ? `${this.svgOptions.assetsPath}/icons/`\n                    : `${this.svgOptions.assetsPath}`;\n        }\n\n        if (this.svgPath === '') {\n            throw new Error(`Asset path-name '${this.svgPath}' not set`);\n        } else if (!this.svgPath.endsWith('.svg')) {\n            // check for .svg if no, add\n            this.svgPath += '.svg';\n        }\n        if (this.svgPath.startsWith('assets/')) {\n            assetPath = assetPath.replace('assets/icons/', '');\n        }\n        return `${assetPath}${this.svgPath}`;\n    }\n\n    ngAfterViewInit() {\n        this.loadSvg();\n    }\n\n    loadSvg() {\n        const svgUrl = this.getUrlPath();\n        if (svgUrl) {\n            const cachedData = this.storageService.get(StorageType.SessionStorage, `${svgUrl}`);\n            if (!!cachedData) {\n                this.elementRef.nativeElement.innerHTML = cachedData;\n            } else {\n                this.getSvgData(svgUrl).subscribe(\n                    response => {\n                        this.storageService.set(StorageType.SessionStorage, `${svgUrl}`, response);\n                        this.elementRef.nativeElement.innerHTML = response;\n                    },\n                    err => {\n                        this.logService.error(new Error(`Error Fetching Svg: ${svgUrl}, ${JSON.stringify(err)}`));\n                    }\n                );\n            }\n        }\n    }\n\n    private getSvgData(svgUrl: string): Observable<any> {\n        if (!SvgComponent.cache[svgUrl]) {\n            SvgComponent.cache[svgUrl] = this.httpClient.get(svgUrl, {responseType: 'text'}).pipe(\n                takeUntil(this.onDestroy$),\n                publishReplay(1),\n                refCount(),\n                finalize(() => {\n                    delete SvgComponent.cache[svgUrl];\n                })\n            );\n        }\n        return SvgComponent.cache[svgUrl];\n    }\n\n    private onPathChanged(value: string): void {\n        this.svgPath = value;\n        if (this.elementRef?.nativeElement) {\n            this.loadSvg();\n        }\n    }\n}\n","<ng-content></ng-content>\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SvgComponent} from './svg.component';\nimport {SvgOptions} from './svg-entities';\nimport {SVG_OPTIONS_DEFAULT_VALUES, SVG_OPTIONS_TOKEN} from './svg-config';\nimport {HttpClientModule, provideHttpClient, withFetch} from '@angular/common/http';\n\n@NgModule({\n    declarations: [SvgComponent],\n    exports: [SvgComponent],\n    imports: [CommonModule, HttpClientModule],\n    providers: [provideHttpClient(withFetch())]\n})\nexport class SvgModule {\n    static forRoot(options?: SvgOptions): ModuleWithProviders<SvgModule> {\n        return {\n            ngModule: SvgModule,\n            providers: [\n                {\n                    provide: SVG_OPTIONS_TOKEN,\n                    useValue: options ? options : SVG_OPTIONS_DEFAULT_VALUES,\n                    ...options\n                }\n            ]\n        };\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;AAGa,MAAA,0BAA0B,GAAe;AAClD,IAAA,UAAU,EAAE,EAAE;EAChB;MAEW,iBAAiB,GAAG,IAAI,cAAc,CAAa,aAAa;;;MCOhE,YAAY,CAAA;;IAErB,IAAa,IAAI,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;aAOM,IAAK,CAAA,KAAA,GAAqC,EAArC,CAAwC,EAAA;IAEpD,WACY,CAAA,UAAsB,EACvB,UAAsB,EACtB,QAAmB,EAChB,UAAsB,EACtB,cAA8B,EACM,UAAsB,EAAA;QAL5D,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAChB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QACM,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAbxE,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEL,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAWrC;IAEJ,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAEM,UAAU,GAAA;QACb,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC/C,SAAS;AACL,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,mCAAmC;AAC9D,sBAAE,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAS,OAAA,CAAA;sBACtC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;AAC7C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,EAAoB,IAAI,CAAC,OAAO,CAAW,SAAA,CAAA,CAAC,CAAC;AAChE,SAAA;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;;AAEvC,YAAA,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;AAC1B,SAAA;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YACpC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACtD,SAAA;AACD,QAAA,OAAO,GAAG,SAAS,CAAA,EAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KACxC;IAED,eAAe,GAAA;QACX,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,OAAO,GAAA;AACH,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACjC,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,CAAC;YACpF,IAAI,CAAC,CAAC,UAAU,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC;AACxD,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAC7B,QAAQ,IAAG;AACP,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,MAAM,CAAA,CAAE,EAAE,QAAQ,CAAC,CAAC;oBAC3E,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;iBACtD,EACD,GAAG,IAAG;oBACF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAuB,oBAAA,EAAA,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;AAC9F,iBAAC,CACJ,CAAC;AACL,aAAA;AACJ,SAAA;KACJ;AAEO,IAAA,UAAU,CAAC,MAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CACjF,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1B,aAAa,CAAC,CAAC,CAAC,EAChB,QAAQ,EAAE,EACV,QAAQ,CAAC,MAAK;AACV,gBAAA,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACrC,CAAC,CACL,CAAC;AACL,SAAA;AACD,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACrC;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;AAClB,SAAA;KACJ;AA3FQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,oBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,YAAY,mNAmBG,iBAAiB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAnBhC,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCdzB,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;;iFDcZ,YAAY,EAAA,CAAA;cALxB,SAAS;2BACI,YAAY,EAAA,eAAA,EAEL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;sBAqB1C,QAAQ;;sBAAI,MAAM;uBAAC,iBAAiB,CAAA;qBAjB5B,IAAI,EAAA,CAAA;kBAAhB,KAAK;;kFAFG,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MEDZ,SAAS,CAAA;IAClB,OAAO,OAAO,CAAC,OAAoB,EAAA;QAC/B,OAAO;AACH,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,0BAA0B;AACxD,oBAAA,GAAG,OAAO;AACb,iBAAA;AACJ,aAAA;SACJ,CAAC;KACL;0EAZQ,SAAS,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAT,SAAS,EAAA,CAAA,CAAA,EAAA;wEAFP,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAA,OAAA,EAAA,CADjC,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAG/B,SAAS,EAAA,CAAA;cANrB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzC,gBAAA,SAAS,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9C,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,SAAS,mBALH,YAAY,CAAA,EAAA,OAAA,EAAA,CAEjB,YAAY,EAAE,gBAAgB,aAD9B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACT1B;;AAEG;;;;"}