{"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":["observableOf"],"mappings":";;;;;MAea,mBAAmB,CAAA;AAC9B,EAAA,UAAU,GAAA;AACR,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,iBAAiB,GAAA;AACf,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,qBAAqB,GAAA;AACnB,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,4BAA4B,GAAA;AAC1B,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,aAAa,GAAA;AACX,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,oBAAoB,GAAA;AAClB,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,wBAAwB,GAAA;AACtB,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,+BAA+B,GAAA;AAC7B,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,sBAAsB,GAAA;AACpB,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,qBAAqB,CAAC,KAAa,EAAA;AACjC,IAAA,OAAO,KAAK;AACd,EAAA;AAEA,EAAA,sBAAsB,GAAA;IACpB,OAAO,CAAC,WAAW,CAAC;AACtB,EAAA;AAEA,EAAA,iBAAiB,GAAA;AACf,IAAA,OAAOA,EAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/C,EAAA;AAEA,EAAA,eAAe,GAAA;AACb,IAAA,OAAOA,EAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/C,EAAA;AAEA,EAAA,sBAAsB,GAAA;AACpB,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,mBAAmB,GAAA;AACjB,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,kBAAkB,GAAA;AAChB,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,WAAW,IAAI;AAEP,EAAA,iBAAiB,GAAA;IACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC;AAC9E,IAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAE1C,IAAA,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;AAChC,IAAA,QAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE,eAAe,CAAC;AAC7D,IAAA,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;AAC3C,IAAA,OAAO,QAAQ;AACjB,EAAA;;;;;UA3EW,mBAAmB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAnB;AAAmB,GAAA,CAAA;;;;;;QAAnB,mBAAmB;AAAA,EAAA,UAAA,EAAA,CAAA;UAD/B;;;MAmFY,oBAAoB,CAAA;;;;;UAApB,oBAAoB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAApB;AAAoB,GAAA,CAAA;;;;;UAApB,oBAAoB;AAAA,IAAA,SAAA,EAFpB,CAAC;AAAE,MAAA,OAAO,EAAE,eAAe;AAAE,MAAA,QAAQ,EAAE;KAAqB;AAAC,GAAA,CAAA;;;;;;QAE7D,oBAAoB;AAAA,EAAA,UAAA,EAAA,CAAA;UAHhC,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;AACR,MAAA,SAAS,EAAE,CAAC;AAAE,QAAA,OAAO,EAAE,eAAe;AAAE,QAAA,QAAQ,EAAE;OAAqB;KACxE;;;;;;"}