{"version":3,"file":"devextreme-angular-http.mjs","sources":["../../../dist/http/ajax.ts","../../../dist/http/index.ts","../../../dist/http/devextreme-angular-http.ts"],"sourcesContent":["/*!\n * devextreme-angular\n * Version: 25.2.6\n * Build date: Mon Mar 30 2026\n *\n * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/DevExtreme\n */\n\nimport {\r\n  HttpClient, HttpEventType, HttpParams, HttpEvent, HttpErrorResponse, HttpResponse,\r\n} from '@angular/common/http';\r\nimport { throwError, Subject } from 'rxjs';\r\nimport { takeUntil, timeoutWith } from 'rxjs/operators';\r\nimport { Deferred, DeferredObj } from 'devextreme/core/utils/deferred';\r\nimport { isDefined } from 'devextreme/core/utils/type';\r\nimport { getWindow } from 'devextreme/core/utils/window';\r\nimport {\r\n  isCrossDomain,\r\n  evalCrossDomainScript,\r\n  getRequestOptions,\r\n  getJsonpCallbackName,\r\n  getRequestHeaders as getAjaxRequestHeaders,\r\n  getAcceptHeader,\r\n  getMethod,\r\n  evalScript,\r\n} from 'devextreme/core/utils/ajax_utils';\r\n\r\ntype Result = Promise<any> & { abort: () => void };\r\ntype DeferredResult = DeferredObj<any>;\r\ninterface Options {\r\n  url: string;\r\n  [key: string]: any;\r\n}\r\n\r\ninterface XHRSurrogate {\r\n  type?: string;\r\n  aborted: boolean;\r\n  abort: () => void;\r\n  response?: HttpResponse<object>;\r\n  status?: number;\r\n  statusText?: string;\r\n}\r\n\r\nconst PARSER_ERROR = 'parsererror';\r\nconst SUCCESS = 'success';\r\nconst ERROR = 'error';\r\nconst NO_CONTENT = 'nocontent';\r\nconst TIMEOUT = 'timeout';\r\nconst STATUS_ABORT = 0;\r\nconst CONTENT_TYPE = 'Content-Type';\r\nconst URLENCODED = 'application/x-www-form-urlencoded';\r\n\r\nfunction assignResponseProps(xhrSurrogate: XHRSurrogate, response: HttpResponse<any> | HttpErrorResponse) {\r\n  const getResponseHeader = (name: string) => response.headers.get(name);\r\n\r\n  function makeResponseText() {\r\n    const body = 'error' in response ? response.error : response.body;\r\n\r\n    if (typeof body !== 'string' || String(getResponseHeader(CONTENT_TYPE)).startsWith('application/json')) {\r\n      return JSON.stringify(body);\r\n    }\r\n\r\n    return body;\r\n  }\r\n\r\n  Object.assign(xhrSurrogate, {\r\n    status: response.status,\r\n    statusText: response.statusText,\r\n    getResponseHeader,\r\n    responseText: makeResponseText(),\r\n  });\r\n\r\n  return xhrSurrogate;\r\n}\r\n\r\nfunction isGetMethod(options: Options) {\r\n  return getMethod(options) === 'GET';\r\n}\r\n\r\nfunction isCacheNeed(options: Options) {\r\n  if (options.cache === undefined) {\r\n    return !(isUsedScript(options) || isUsedJSONP(options));\r\n  }\r\n\r\n  return options.cache;\r\n}\r\n\r\nfunction isUsedScript(options: Options) {\r\n  return options.dataType === 'script';\r\n}\r\n\r\nfunction isUsedJSONP(options: Options) {\r\n  return options.dataType === 'jsonp';\r\n}\r\n\r\nfunction getRequestHeaders(options: Options) {\r\n  const headers = getAjaxRequestHeaders(options);\r\n  const { upload } = options;\r\n\r\n  if (!headers.Accept) {\r\n    headers.Accept = getAcceptHeader(options);\r\n  }\r\n\r\n  if (!upload && !isGetMethod(options) && !headers[CONTENT_TYPE]) {\r\n    headers[CONTENT_TYPE] = options.contentType || `${URLENCODED};charset=utf-8`;\r\n  }\r\n\r\n  return Object.keys(headers).reduce((acc, key) => {\r\n    if (isDefined(headers[key])) {\r\n      acc[key] = headers[key];\r\n    }\r\n    return acc;\r\n  }, {});\r\n}\r\n\r\nfunction rejectIfAborted(deferred: DeferredResult, xhrSurrogate: XHRSurrogate, callback?: () => void) {\r\n  if (xhrSurrogate.aborted) {\r\n    deferred.reject({ status: STATUS_ABORT, statusText: 'aborted', ok: false });\r\n    callback?.();\r\n  }\r\n}\r\n\r\nfunction getJsonpParameters(options: Options) {\r\n  const patchedOptions = { ...options };\r\n  const callbackName = getJsonpCallbackName(patchedOptions);\r\n\r\n  return { callbackName, data: patchedOptions.data };\r\n}\r\n\r\nfunction addJsonpCallback(callbackName: string, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\r\n  getWindow()[callbackName] = (data) => deferred.resolve(data, SUCCESS, xhrSurrogate);\r\n}\r\n\r\nfunction sendRequestByScript(url: string, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\r\n  evalCrossDomainScript(url).then(\r\n    () => deferred.resolve(null, SUCCESS, xhrSurrogate),\r\n    () => deferred.reject(xhrSurrogate, ERROR),\r\n  );\r\n}\r\n\r\nfunction getRequestCallbacks(options: Options, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\r\n  return {\r\n    next(response: HttpResponse<any>) {\r\n      if (isUsedJSONP(options)) {\r\n        return options.crossDomain\r\n          ? deferred.resolve(response, 'success', assignResponseProps(xhrSurrogate, response))\r\n          : evalScript(response.body);\r\n      }\r\n\r\n      if (isUsedScript(options)) {\r\n        evalScript(response.body);\r\n      }\r\n\r\n      return deferred.resolve(\r\n        response.body,\r\n        response.body ? 'success' : NO_CONTENT,\r\n        assignResponseProps(xhrSurrogate, response),\r\n      );\r\n    },\r\n    error(error: HttpErrorResponse) {\r\n      error = error && typeof error === 'object' ? error : { error } as unknown as HttpErrorResponse;\r\n      let errorStatus = error?.statusText === TIMEOUT ? TIMEOUT : 'error';\r\n\r\n      errorStatus = options.dataType === 'json' && error?.message?.includes?.('parsing')\r\n        ? PARSER_ERROR\r\n        : errorStatus;\r\n\r\n      return deferred.reject(assignResponseProps(xhrSurrogate, { status: 400, ...error } as HttpErrorResponse), errorStatus, error);\r\n    },\r\n    complete() {\r\n      rejectIfAborted(deferred, xhrSurrogate);\r\n    },\r\n  };\r\n}\r\n\r\nfunction getUploadCallbacks(options: Options, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\r\n  let total = 0;\r\n  let isUploadStarted = false;\r\n\r\n  return {\r\n    next: (event: HttpEvent<object>) => {\r\n      if (!isUploadStarted\r\n          && [HttpEventType.UploadProgress, HttpEventType.Sent].includes(event.type)) {\r\n        options.upload.onloadstart?.(event);\r\n        isUploadStarted = true;\r\n      }\r\n\r\n      if (event.type === HttpEventType.UploadProgress) {\r\n        total += event.loaded;\r\n        options.upload.onprogress?.({ ...event, total });\r\n      } else if (event.type === HttpEventType.Response) {\r\n        xhrSurrogate.status = event.status;\r\n        xhrSurrogate.statusText = event.statusText;\r\n        xhrSurrogate.response = event;\r\n\r\n        const result = options?.dataType === 'json' && typeof event.body === 'object'\r\n          ? event.body\r\n          : xhrSurrogate;\r\n\r\n        return deferred.resolve(result, SUCCESS);\r\n      }\r\n      return null;\r\n    },\r\n    error(error: HttpErrorResponse) {\r\n      error = error && typeof error === 'object' ? error : { error } as unknown as HttpErrorResponse;\r\n      return deferred.reject(assignResponseProps(xhrSurrogate, { status: 400, ...error } as HttpErrorResponse), error.status, error);\r\n    },\r\n    complete() {\r\n      rejectIfAborted(deferred, xhrSurrogate, () => {\r\n        options.upload?.onabort?.(xhrSurrogate);\r\n      });\r\n    },\r\n  };\r\n}\r\n\r\nexport const sendRequestFactory = (httpClient: HttpClient) => (options: Options) => {\r\n  const abort$ = new Subject<void>();\r\n  const deferred: DeferredResult = Deferred();\r\n  const result = deferred.promise() as Result;\r\n  const isGet = isGetMethod(options);\r\n  const isJSONP = isUsedJSONP(options);\r\n  const isScript = isUsedScript(options);\r\n\r\n  options.crossDomain = isCrossDomain(options.url);\r\n  options.cache = isCacheNeed(options);\r\n\r\n  const headers = getRequestHeaders(options);\r\n  const xhrSurrogate: XHRSurrogate = {\r\n    type: 'XMLHttpRequestSurrogate',\r\n    aborted: false,\r\n    abort() {\r\n      this.aborted = true;\r\n      abort$.next();\r\n    },\r\n  };\r\n\r\n  result.abort = () => xhrSurrogate.abort();\r\n\r\n  if (!options.crossDomain && isJSONP) {\r\n    const { callbackName, data } = getJsonpParameters(options);\r\n\r\n    options.data = { ...options.data, ...data };\r\n\r\n    addJsonpCallback(callbackName, deferred, xhrSurrogate);\r\n  }\r\n\r\n  const { url, parameters: data } = getRequestOptions(options, headers);\r\n  const { upload, beforeSend, xhrFields } = options;\r\n\r\n  beforeSend?.(xhrSurrogate);\r\n\r\n  if (options.crossDomain && isScript && !xhrSurrogate.aborted) {\r\n    sendRequestByScript(url, deferred, xhrSurrogate);\r\n    return result;\r\n  }\r\n\r\n  if (options.cache === false && isGet && data) {\r\n    data._ = Date.now() + 1;\r\n  }\r\n\r\n  const makeBody = () => (!upload && typeof data === 'object' && headers[CONTENT_TYPE].indexOf(URLENCODED) === 0\r\n    ? Object.keys(data).reduce(\r\n      (httpParams, key) => httpParams.set(key, data[key]),\r\n      new HttpParams(),\r\n    ).toString()\r\n    : data);\r\n\r\n  const body = isGet ? undefined : makeBody();\r\n  const params = isGet ? data : undefined;\r\n\r\n  const request = options.crossDomain && isJSONP\r\n    ? httpClient.jsonp(url, options.jsonp || 'callback')\r\n    : httpClient.request(\r\n      getMethod(options),\r\n      url,\r\n      {\r\n        params,\r\n        body,\r\n        headers,\r\n        reportProgress: true,\r\n        withCredentials: xhrFields?.withCredentials,\r\n        observe: upload ? 'events' : 'response',\r\n        responseType: options.responseType || (isScript || isJSONP ? 'text' : options.dataType),\r\n      },\r\n    );\r\n\r\n  const subscriptionCallbacks = upload\r\n    ? getUploadCallbacks\r\n    : getRequestCallbacks;\r\n\r\n  request.pipe.apply(request, [\r\n    takeUntil(abort$) as any,\r\n    ...options.timeout\r\n      ? [timeoutWith(options.timeout, throwError({ statusText: TIMEOUT, status: 0, ok: false })) as any]\r\n      : [],\r\n  ]).subscribe(\r\n    subscriptionCallbacks(options, deferred, xhrSurrogate),\r\n  );\r\n\r\n  return result;\r\n};\r\n","/*!\n * devextreme-angular\n * Version: 25.2.6\n * Build date: Mon Mar 30 2026\n *\n * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/DevExtreme\n */\n\nimport { NgModule, Injector, createNgModule } from '@angular/core';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport devextremeAjax from 'devextreme/core/utils/ajax';\r\nimport { sendRequestFactory } from './ajax';\r\n\r\n@NgModule({\r\n  exports: [],\r\n  imports: [],\r\n  providers: [],\r\n})\r\nexport class DxHttpModule {\r\n  constructor(injector: Injector) {\r\n    let httpClient: HttpClient = injector.get(HttpClient, null);\r\n\r\n    if (!httpClient) {\r\n      const moduleRef = createNgModule(HttpClientModule, injector);\r\n\r\n      httpClient = moduleRef.injector.get(HttpClient);\r\n    }\r\n\r\n    devextremeAjax.inject({ sendRequest: sendRequestFactory(httpClient) });\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getAjaxRequestHeaders"],"mappings":"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"}