{"version":3,"file":"ng-elementum-http.mjs","sources":["../../../../libs/ng-elementum/http/src/lib/create-http-client.ts","../../../../libs/ng-elementum/http/src/ng-elementum-http.ts"],"sourcesContent":["import {\n  HttpFeature,\n  HttpFeatureKind,\n  withNoXsrfProtection,\n} from '@angular/common/http';\nimport { XhrFactory } from '@angular/common';\nimport {\n  HttpClient,\n  HttpHandler,\n  provideHttpClient,\n  ɵHttpInterceptorHandler,\n  ɵREQUESTS_CONTRIBUTE_TO_STABILITY,\n} from '@angular/common/http';\nimport {\n  assertInInjectionContext,\n  createEnvironmentInjector,\n  inject,\n  Injectable,\n  Injector,\n  NgZone,\n  PendingTasks,\n} from '@angular/core';\nimport { ɵINJECTOR_SCOPE } from '@angular/core';\n\n@Injectable()\nexport class BrowserXhr implements XhrFactory {\n  build(): XMLHttpRequest {\n    return new XMLHttpRequest();\n  }\n}\n\nclass NoopPendingTasks implements Pick<PendingTasks, keyof PendingTasks> {\n  add(): () => void {\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    return () => {};\n  }\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  run(): void {}\n}\n\nconst platformProviders = [\n  ɵHttpInterceptorHandler,\n  {\n    provide: HttpHandler,\n    useExisting: ɵHttpInterceptorHandler,\n  },\n  {\n    provide: XhrFactory,\n    useClass: BrowserXhr,\n  },\n  {\n    provide: PendingTasks,\n    useClass: NoopPendingTasks,\n  },\n  {\n    provide: ɵREQUESTS_CONTRIBUTE_TO_STABILITY,\n    useValue: false,\n  },\n  {\n    provide: NgZone,\n    useValue: {\n      runOutsideAngular: (fn: () => void) => fn(),\n    },\n  },\n];\n\nexport function createHttpClient(\n  ...features: Array<HttpFeature<HttpFeatureKind>>\n): HttpClient {\n  assertInInjectionContext(createHttpClient);\n\n  const scope = inject(ɵINJECTOR_SCOPE);\n\n  if (\n    scope === 'platform' &&\n    !features.find((f) => f.ɵkind === HttpFeatureKind.CustomXsrfConfiguration)\n  ) {\n    features.push(withNoXsrfProtection());\n  }\n\n  const injector = createEnvironmentInjector(\n    [\n      provideHttpClient(...features),\n      scope === 'platform' ? platformProviders : [],\n    ],\n    inject(Injector) as any\n  );\n\n  return injector.get(HttpClient);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵHttpInterceptorHandler","ɵREQUESTS_CONTRIBUTE_TO_STABILITY","ɵINJECTOR_SCOPE"],"mappings":";;;;;MAyBa,UAAU,CAAA;IACrB,KAAK,GAAA;QACH,OAAO,IAAI,cAAc,EAAE;IAC7B;wGAHW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAV,UAAU,EAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;AAOD,MAAM,gBAAgB,CAAA;IACpB,GAAG,GAAA;;AAED,QAAA,OAAO,MAAK,EAAE,CAAC;IACjB;;AAEA,IAAA,GAAG,KAAU;AACd;AAED,MAAM,iBAAiB,GAAG;IACxBA,uBAAuB;AACvB,IAAA;AACE,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,WAAW,EAAEA,uBAAuB;AACrC,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,QAAQ,EAAE,UAAU;AACrB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,QAAQ,EAAE,gBAAgB;AAC3B,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAEC,iCAAiC;AAC1C,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,QAAQ,EAAE;AACR,YAAA,iBAAiB,EAAE,CAAC,EAAc,KAAK,EAAE,EAAE;AAC5C,SAAA;AACF,KAAA;CACF;AAEK,SAAU,gBAAgB,CAC9B,GAAG,QAA6C,EAAA;IAEhD,wBAAwB,CAAC,gBAAgB,CAAC;AAE1C,IAAA,MAAM,KAAK,GAAG,MAAM,CAACC,eAAe,CAAC;IAErC,IACE,KAAK,KAAK,UAAU;AACpB,QAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,uBAAuB,CAAC,EAC1E;AACA,QAAA,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACvC;IAEA,MAAM,QAAQ,GAAG,yBAAyB,CACxC;QACE,iBAAiB,CAAC,GAAG,QAAQ,CAAC;QAC9B,KAAK,KAAK,UAAU,GAAG,iBAAiB,GAAG,EAAE;AAC9C,KAAA,EACD,MAAM,CAAC,QAAQ,CAAQ,CACxB;AAED,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AACjC;;ACzFA;;AAEG;;;;"}