{"version":3,"file":"icon-testing.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/icon/testing/fake-icon-registry.ts"],"sourcesContent":["import { Injectable, NgModule, OnDestroy } from '@angular/core';\nimport { SbbIconRegistry } from '@sbb-esta/angular/icon';\nimport { Observable, of as observableOf } from 'rxjs';\n\n// tslint:disable:no-any Impossible to tell param types.\ntype PublicApi<T> = {\n  [K in keyof T]: T[K] extends (...x: any[]) => T ? (...x: any[]) => PublicApi<T> : T[K];\n};\n// tslint:enable:no-any\n\n/**\n * A null icon registry that must be imported to allow disabling of custom\n * icons.\n */\n@Injectable()\nexport class FakeSbbIconRegistry implements PublicApi<SbbIconRegistry>, OnDestroy {\n  addSvgIcon(): this {\n    return this;\n  }\n\n  addSvgIconLiteral(): this {\n    return this;\n  }\n\n  addSvgIconInNamespace(): this {\n    return this;\n  }\n\n  addSvgIconLiteralInNamespace(): this {\n    return this;\n  }\n\n  addSvgIconSet(): this {\n    return this;\n  }\n\n  addSvgIconSetLiteral(): this {\n    return this;\n  }\n\n  addSvgIconSetInNamespace(): this {\n    return this;\n  }\n\n  addSvgIconSetLiteralInNamespace(): this {\n    return this;\n  }\n\n  registerFontClassAlias(): this {\n    return this;\n  }\n\n  classNameForFontAlias(alias: string): string {\n    return alias;\n  }\n\n  getDefaultFontSetClass() {\n    return ['sbb-icons'];\n  }\n\n  getSvgIconFromUrl(): Observable<SVGElement> {\n    return observableOf(this._generateEmptySvg());\n  }\n\n  getNamedSvgIcon(): Observable<SVGElement> {\n    return observableOf(this._generateEmptySvg());\n  }\n\n  setDefaultFontSetClass(): this {\n    return this;\n  }\n\n  hasNamespaceSvgIcon(): boolean {\n    return true;\n  }\n\n  addSvgIconResolver(): this {\n    return this;\n  }\n\n  ngOnDestroy() {}\n\n  private _generateEmptySvg(): SVGElement {\n    const emptySvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n    emptySvg.classList.add('fake-testing-svg');\n    // Emulate real icon characteristics from `SbbIconRegistry` so size remains consistent in tests.\n    emptySvg.setAttribute('fit', '');\n    emptySvg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n    emptySvg.setAttribute('focusable', 'false');\n    return emptySvg;\n  }\n}\n\n/** Import this module in tests to install the null icon registry. */\n@NgModule({\n  providers: [{ provide: SbbIconRegistry, useClass: FakeSbbIconRegistry }],\n})\nexport class SbbIconTestingModule {}\n"],"names":["FakeSbbIconRegistry","addSvgIcon","addSvgIconLiteral","addSvgIconInNamespace","addSvgIconLiteralInNamespace","addSvgIconSet","addSvgIconSetLiteral","addSvgIconSetInNamespace","addSvgIconSetLiteralInNamespace","registerFontClassAlias","classNameForFontAlias","alias","getDefaultFontSetClass","getSvgIconFromUrl","observableOf","_generateEmptySvg","getNamedSvgIcon","setDefaultFontSetClass","hasNamespaceSvgIcon","addSvgIconResolver","ngOnDestroy","emptySvg","document","createElementNS","classList","add","setAttribute","deps","target","i0","ɵɵFactoryTarget","Injectable","decorators","SbbIconTestingModule","NgModule","providers","provide","SbbIconRegistry","useClass","args"],"mappings":";;;;;MAeaA,mBAAmB,CAAA;AAC9BC,EAAAA,UAAUA,GAAA;AACR,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,iBAAiBA,GAAA;AACf,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,qBAAqBA,GAAA;AACnB,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,4BAA4BA,GAAA;AAC1B,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,aAAaA,GAAA;AACX,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,oBAAoBA,GAAA;AAClB,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,wBAAwBA,GAAA;AACtB,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,+BAA+BA,GAAA;AAC7B,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,sBAAsBA,GAAA;AACpB,IAAA,OAAO,IAAI;AACb;EAEAC,qBAAqBA,CAACC,KAAa,EAAA;AACjC,IAAA,OAAOA,KAAK;AACd;AAEAC,EAAAA,sBAAsBA,GAAA;IACpB,OAAO,CAAC,WAAW,CAAC;AACtB;AAEAC,EAAAA,iBAAiBA,GAAA;AACf,IAAA,OAAOC,EAAY,CAAC,IAAI,CAACC,iBAAiB,EAAE,CAAC;AAC/C;AAEAC,EAAAA,eAAeA,GAAA;AACb,IAAA,OAAOF,EAAY,CAAC,IAAI,CAACC,iBAAiB,EAAE,CAAC;AAC/C;AAEAE,EAAAA,sBAAsBA,GAAA;AACpB,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,mBAAmBA,GAAA;AACjB,IAAA,OAAO,IAAI;AACb;AAEAC,EAAAA,kBAAkBA,GAAA;AAChB,IAAA,OAAO,IAAI;AACb;EAEAC,WAAWA;AAEHL,EAAAA,iBAAiBA,GAAA;IACvB,MAAMM,QAAQ,GAAGC,QAAQ,CAACC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC;AAC9EF,IAAAA,QAAQ,CAACG,SAAS,CAACC,GAAG,CAAC,kBAAkB,CAAC;AAE1CJ,IAAAA,QAAQ,CAACK,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;AAChCL,IAAAA,QAAQ,CAACK,YAAY,CAAC,qBAAqB,EAAE,eAAe,CAAC;AAC7DL,IAAAA,QAAQ,CAACK,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;AAC3C,IAAA,OAAOL,QAAQ;AACjB;;;;;UA3EWrB,mBAAmB;AAAA2B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAnB/B;AAAmB,GAAA,CAAA;;;;;;QAAnBA,mBAAmB;AAAAgC,EAAAA,UAAA,EAAA,CAAA;UAD/BD;;;MAmFYE,oBAAoB,CAAA;;;;;UAApBA,oBAAoB;AAAAN,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAI;AAAA,GAAA,CAAA;;;;;UAApBD;AAAoB,GAAA,CAAA;;;;;UAApBA,oBAAoB;AAAAE,IAAAA,SAAA,EAFpB,CAAC;AAAEC,MAAAA,OAAO,EAAEC,eAAe;AAAEC,MAAAA,QAAQ,EAAEtC;KAAqB;AAAC,GAAA,CAAA;;;;;;QAE7DiC,oBAAoB;AAAAD,EAAAA,UAAA,EAAA,CAAA;UAHhCE,QAAQ;AAACK,IAAAA,IAAA,EAAA,CAAA;AACRJ,MAAAA,SAAS,EAAE,CAAC;AAAEC,QAAAA,OAAO,EAAEC,eAAe;AAAEC,QAAAA,QAAQ,EAAEtC;OAAqB;KACxE;;;;;;"}