{"version":3,"file":"mobicloud-core-devextreme.mjs","sources":["../../devextreme/devextreme-send-request-factory.ts","../../devextreme/mobicloud-devextreme.module.ts"],"sourcesContent":["// Based on https://github.com/DevExpress/DevExtreme.AspNet.Data/blob/experiment/ng-http-client/experiments/ng-http-client-helper.js\n\nimport { Deferred } from 'devextreme/core/utils/deferred';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\nimport devextremeAjaxJs from  \"devextreme/esm/core/utils/ajax\";\nimport { MobicloudConfigService } from \"mobicloud-core\";\n\nexport function sendRequestFactory(httpClient: HttpClient, configService: MobicloudConfigService) {\n  return (options:any) => {\n    if(configService.log_httptrafic > 1){\n      console.log(\"options.url\",options.url);\n      console.log(\"configService.getApiSiteUrl()\",configService.getApiSiteUrl());\n      console.log(\"startsWith ApiSiteUrl\",options.url.toLowerCase().startsWith(configService.getApiSiteUrl().toLowerCase()));\n    }\n    if((options.url && configService.getApiSiteUrl()) && options.url.toLowerCase().startsWith(configService.getApiSiteUrl().toLowerCase())){\n      if(configService.log_httptrafic > 1){\n        console.log(\"sendRequestFactory_custom\",options);\n      }\n      return sendRequestFactory_custom(httpClient, options);\n    }\n    else{\n      if(configService.log_httptrafic > 1){\n        console.log(\"sendRequestFactory_basic\", options);\n      }\n      return sendRequestFactory_basic(httpClient, options);\n    }    \n  }\n}\n\nexport function sendRequestFactory_basic(httpClient: HttpClient, options: any) {\n  const d = Deferred();\n  var injector_ref = devextremeAjaxJs;        \n  injector_ref.callBase(options);\n  return d.promise();\n}\n\nexport function sendRequestFactory_custom(httpClient: HttpClient, options: any) {\n  const URLENCODED = 'application/x-www-form-urlencoded';\n  const CONTENT_TYPE = 'Content-Type';\n\n  let nonce = Date.now();\n\n  function assignResponseProps(xhrSurrogate:any, response:any) {\n    function getResponseHeader(name:any) {\n      return response.headers.get(name);\n    }\n\n    function makeResponseText() {\n      const body = 'error' in response ? response.error : response.body;\n\n      if (typeof body !== 'string' || String(getResponseHeader(CONTENT_TYPE)).indexOf('application/json') === 0) {\n          return JSON.stringify(body);\n      }\n\n      return body;\n    }\n\n    Object.assign(xhrSurrogate, {\n      status: response.status,\n      statusText: response.statusText,\n      getResponseHeader,\n      responseText: makeResponseText()\n    });\n    \n    return xhrSurrogate;\n  }\n\n  function getAcceptHeader(options:any) {\n    const dataType = options.dataType;\n    const accepts = options.accepts;\n    const fallback = ',*/*;q=0.01';\n\n    if (dataType && accepts && accepts[dataType]) {\n      return accepts[dataType] + fallback;\n    }\n\n    switch (dataType) {\n      case 'json': return 'application/json, text/javascript' + fallback;\n      case 'text': return 'text/plain' + fallback;\n      case 'xml': return 'application/xml, text/xml' + fallback;\n      case 'html': return 'text/html' + fallback;\n      case 'script': return 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript' + fallback;\n    }\n\n    return '*/*';\n  }\n\n  const d = Deferred();\n\n  const method = (options.method || 'get').toLowerCase();\n  const isGet = method === 'get';\n  const headers = { ...options.headers };\n  const data = options.data;\n  const upload = options.upload;\n  const beforeSend = options.beforeSend;\n  const xhrFields = options.xhrFields;\n\n  if (options.cache === false && isGet && data) {\n    data._ = nonce++;\n  }\n\n  if (!headers.Accept) {\n    headers.Accept = getAcceptHeader(options);\n  }\n\n  if (!upload && !isGet && !headers[CONTENT_TYPE]) {\n    headers[CONTENT_TYPE] = options.contentType || URLENCODED + ';charset=utf-8';\n  }\n\n  let params;\n  let body;\n\n  if (isGet) {\n      params = data;\n  } else {\n      if (!upload && typeof data === 'object' && headers[CONTENT_TYPE].indexOf(URLENCODED) === 0) {\n          body = new HttpParams();\n          // tslint:disable-next-line:forin\n          for (const key in data) {\n              body = body.set(key, data[key]);\n          }\n          body = body.toString();\n      } else {\n          body = data;\n      }\n  }\n\n  const xhrSurrogate = { };\n\n  if (beforeSend) {\n    beforeSend(xhrSurrogate);\n  }\n\n  httpClient\n    .request(\n      method,\n      options.url,\n      {\n        params,\n        body,\n        responseType: options.dataType,\n        headers,\n        withCredentials: xhrFields && xhrFields.withCredentials,\n        observe: 'response'\n      }\n    )\n    .subscribe(\n      (response) => d.resolve(response.body, 'success', assignResponseProps(xhrSurrogate, response)),\n      (response) => d.reject(assignResponseProps(xhrSurrogate, response), 'error')\n    );\n\n  return d.promise();\n}","import { NgModule, Inject, LOCALE_ID } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient  } from '@angular/common/http';\n\nimport { locale, loadMessages, formatMessage } from \"devextreme/localization\";\n\nimport devextremeAjaxJs from  \"devextreme/esm/core/utils/ajax\";\nimport { sendRequestFactory } from \"./devextreme-send-request-factory\";\n// import devex_da from \"./assets/localization/devex_da.json\";\nimport { EdmLiteral } from \"devextreme/data/odata/utils\";\n\nimport * as devextremeConfig  from \"devextreme/core/config\";\nimport DataGrid from \"devextreme/ui/data_grid\";\nimport DateBox  from \"devextreme/ui/date_box\";\n\nimport { MobicloudConfigService } from \"mobicloud-core\";\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule,\n  ],\n  exports: []\n})\nexport class MobiCloudDevextremeModule {  \n  constructor(httpClient: HttpClient, configService: MobicloudConfigService, @Inject(LOCALE_ID) public localeId: string) {    \n    devextremeAjaxJs.inject({ sendRequest: sendRequestFactory(httpClient, configService) });\n    if(configService.log_httptrafic > 1){\n      console.log(\"devextremeAjaxJs.inject\", configService);\n    }    \n    this.enableDefaultStyles(httpClient);\n  }\n\n  enableDefaultStyles(httpClient: HttpClient){\n\n    //'outlined' | 'underlined' | 'filled'\n    \n    devextremeConfig.default(\n      {\n        editorStylingMode: 'outlined',\n        forceIsoDateParsing: true\n      }\n    );\n\n    let default_dateformat = 'M/d/yyyy';\n    let default_timeformat = 'hh:mm a';\n    let default_datetimeformat = 'M/d/yyyy hh:mm';\n\n    if(this.localeId == \"da\"){\n      locale('da');\n      // loadMessages(devex_da);\n      httpClient.get('/assets/localization/devex_da.json').subscribe({\n        next: (devex_da: any) => {\n          loadMessages(devex_da);\n        },\n        error: (err:any) => {\n          console.warn('Failed to load Danish localization(devex_da.json):', err);\n        }\n      });\n\n      default_dateformat = 'dd-MM-yyyy';\n      default_timeformat = 'HH:mm';\n      default_datetimeformat = 'dd-MM-yyyy HH:mm';\n    }\n\n    //DataGrid\n    DataGrid.defaultOptions({        \n      options: {\n        height: '100%',\n        width: '100%',\n        columnResizingMode: \"widget\",\n        columnWidth: 100,\n        customizeColumns: (columns: any[])=>\n        {\n          var dateColumns = columns.filter((col:any) => col.dataType === \"datetime\" || col.dataType === \"date\");\n          if(dateColumns){\n            dateColumns.forEach((column:any)=> {\n              column.serializeValue = (val:any) => {  \n                return val;  \n              } \n              column.calculateFilterExpression = (filterValue:any, selectedFilterOperation:any) => {\n                const filterExpression = column.defaultCalculateFilterExpression(filterValue, selectedFilterOperation);  \n                if (filterExpression) {  \n                  if (Array.isArray(filterExpression[0])) {  \n                    filterExpression[0][2] = new EdmLiteral(filterExpression[0][2].toISOString());\n                    filterExpression[2][2] = new EdmLiteral(filterExpression[2][2].toISOString()); \n                  }  \n                  else {  \n                    filterExpression[2] = new EdmLiteral(filterExpression[2].toISOString());        \n                  }  \n                }\n                return filterExpression; \n              } \n              if(!column.editorOptions){\n                column.editorOptions = {};\n              }\n              \n              if(!column.editorOptions.displayFormat){\n                if(column.editorOptions.type == \"time\"){                        \n                  if(!column.format || column.format == \"shortDate\")\n                  column.format = default_timeformat;\n                  if(!column.editorOptions.displayFormat)\n                  column.editorOptions.displayFormat = default_timeformat;\n                }\n                else if(column.editorOptions.type == \"datetime\"){\n                  if(!column.format || column.format == \"shortDate\")\n                  column.format = default_datetimeformat;\n                  if(!column.editorOptions.displayFormat)\n                  column.editorOptions.displayFormat = default_datetimeformat;\n                }\n                else{\n                  if(!column.format || column.format == \"shortDate\")\n                  column.format = default_dateformat;\n                  if(!column.editorOptions.displayFormat)\n                  column.editorOptions.displayFormat = default_dateformat;\n                }\n              }                          \n            });\n          }\n        }\n      }\n    });\n\n    DateBox.defaultOptions({\n      options: {\n        onInitialized: function (e:any) {\n          var type = e.component.option(\"type\"); \n          var displayFormat =  e.component.option(\"displayFormat\");\n          if(!displayFormat) {\n            if(type == \"time\"){\n              e.component.option(\"displayFormat\", default_timeformat);\n            }\n            else if(type == \"datetime\"){\n              e.component.option(\"displayFormat\", default_datetimeformat);\n            }\n            else{\n              e.component.option(\"displayFormat\", default_dateformat); \n            }   \n          }                                 \n          // console.log(\"DATEBOX\", type);\n        }\n      }\n    });      \n\n    \n  }\n\n}\n"],"names":[],"mappings":"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"}